RMAN备份脚本

来源:互联网 发布:怎么投诉举报淘宝卖家 编辑:程序博客网 时间:2024/05/16 15:24

一、关于RMAN备份的相关参数介绍:


命令行参数
TARGET #为目标数据库定义的一个连接字符串,当连接到一个目标数据库时,该连续是SYSDBA连接。该用户拥有启动和关闭数据库的权利,必须属于OSDBA组,必须建立一个口令文件允许SYSDBA连接。
CATALOG #连接到恢复目录。
NOCATALOG #不运用恢复目录。与CATALOG参数互斥
CMDFILE #定义了输出命令文件名称的字符串。当运行RMAN时,可以运行命令文件或者交互式运行
LOG & MSGLOG #定义了包含RMAN输出信息的文件的字符串,LOG参数只能特别运用在命令行中。不能在RMAN中启动SPOOLING,当应用日志文件时,输出的信息并不在屏幕上显示
TRACE #类似于log参数,将产生一个显示RMAN输入信息的文件。使用TRACE在屏幕上也显示。
APPEND #特殊用法,如果消息日志文件存在则将消息追加到该文件中。经常与LOG联合使用

1、数据库OPEN时归档模式下RMAN可以备份。
2、数据库OPEN时非归档模式下RMAN只能备份READ ONLY或OFFLINE有表空间或数据文件。

3、归档模式下RMAN全库备份时:在数据库OPEN、MOUNT阶段都可以备份。数据库实例未启动,或者启动到NOMOUNT状态均不能备份。
4、归档模式下RMAN全库备份时:只能在MOUNT状态下备份


二、查看数据库基本信息,是否归档,归档存放地址,快速恢复区大小等 



查看数据库是否归档
SQL> archive log list ;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 92
Next log sequence to archive 94
Current log sequence 94

指定快速恢复分区的大小
SQL> alter system set db_recovery_file_dest_size=4g;


指定快速恢复分区的路径
SQL> alter system set db_recovery_file_dest='/u01/app/backup' scope=both ;

查看快速恢复分区的信息
SQL> show parameter db_recovery_file_dest ;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/backup
db_recovery_file_dest_size big integer 4G


三、写备份脚本的小技巧:



可以在备份前增加备份前--校验归档日志文件
crosscheck archivelog all;
delete noprompt expired archivelog all;
备份后-校验备份集并删除过期及误删除的备份信息
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;

小结:
crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别
delete expired archivelog all; 删除所有过期归档日志:

alter system switch logfile; 对单实例数据库或RAC中的当前实例执行日志切换
alter system archive log current; 会对数据库中的所有实例执行日志切换


四、设置备份策略


RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; #保持所有足够的备份,可以将数据库锡系统恢复到最近7天内的任意时刻。任何超过7天的数据库备份将被标记为obsolete
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/backup/%F' ; #指定控制文件备份路径和文件格式
RMAN> CONFIGURE BACKUP OPTIMIZATION ON; #开启备份优化
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; #开启控制文件自动备份

RMAN> show all ;

RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/backup/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default


五、全库备份


RMAN> backup as compressed backupset database ;

Starting backup at 25-SEP-17
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=133 device type=DISK
skipping datafile 4; already backed up 3 time(s)
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/kmdata01.dbf
input datafile file number=00006 name=/u01/app/oracle/oradata/orcl/kmdata02.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/orcl/kmdata03.dbf
input datafile file number=00008 name=/u01/app/oracle/oradata/orcl/KMPRODUCT_INDEX01.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/orcl/KMUSER_INDEX01.dbf
input datafile file number=00010 name=/u01/app/oracle/oradata/orcl/KMORDER_INDEX01.dbf
input datafile file number=00011 name=/u01/app/oracle/oradata/orcl/KMSEARCH01.dbf
channel ORA_DISK_1: starting piece 1 at 25-SEP-17
channel ORA_DISK_1: finished piece 1 at 25-SEP-17
piece handle=/u01/app/backup/ORCL/backupset/2017_09_25/o1_mf_nnndf_TAG20170925T154853_dwkf75wm_.bkp tag=TAG20170925T154853 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 25-SEP-17

Starting Control File and SPFILE Autobackup at 25-SEP-17
piece handle=/u01/app/backup/c-1482393104-20170925-00 comment=NONE
Finished Control File and SPFILE Autobackup at 25-SEP-17


六、增量备份脚本



创建rman热备目录
[oracle@i-1pbhgm8j scripts]$ mkdir -p /u01/app/backup/rman_hot

创建rman备份脚本
[oracle@i-1pbhgm8j scripts]$ mkdir /u01/app/backup/scripts

备份前RMAN参数设置
RMAN> show all ;
RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcl.f'; # default

2、数据库0级备份脚本


[oracle@i-1pbhgm8j scripts]$ cat rman_0_level.sh
#!/bin/bash

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export TNS_ADMIN=/u01/app/oracle/product/11.2.0/db_1/network/admin

source /home/oracle/.bash_profile

rman target / << EOF

run{

backup incremental level 0 format '/u01/app/backup/rman_hot/db0_%d_%T_%s.bak' database;
backup current controlfile format '/u01/app/backup/rman_hot/control_%d_%T_%s.bak';
backup format '/u01/app/backup/rman_hot/arch_%d_%T_%s.bak' archivelog all;

}

exit

EOF

echo "backup complete!"


3、数据库1级备份脚本


[oracle@i-1pbhgm8j scripts]$ cat rman_1_level.sh
#!/bin/bash

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export TNS_ADMIN=/u01/app/oracle/product/11.2.0/db_1/network/admin

source /home/oracle/.bash_profile

rman target / << EOF

run{

backup incremental level 1 format '/u01/app/backup/rman_hot/db1_%d_%T_%s.bak' database;

backup current controlfile format '/u01/app/backup/rman_hot/control_%d_%T_%s.bak';

backup format '/u01/app/backup/rman_hot/arch_%d_%T_%s.bak' archivelog all;

}

exit

EOF

echo "backup complete!"



4、数据库2级备份脚本


#!/bin/bash

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export TNS_ADMIN=/u01/app/oracle/product/11.2.0/db_1/network/admin

source /home/oracle/.bash_profile

rman target / << EOF

run{

backup incremental level 2 format '/u01/app/backup/rman_hot/db2_%d_%T_%s.bak' database;
backup current controlfile format '/u01/app/backup/rman_hot/control_%d_%T_%s.bak';
backup format '/u01/app/backup/rman_hot/arch_%d_%T_%s.bak' archivelog all;

}

exit

EOF

echo "backup complete!"















原创粉丝点击