一、写备份脚本的小技巧:
(1)备份前添加:增加校验归档日志文件
crosscheck archivelog all;
delete noprompt expired archivelog all;
(2)备份添加:校验备份集并删除过期及误删除的备份信息
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete; (noprompt 是不需要提示,直接删除)
二、配置RMAN文件
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name SRQ are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oracle/rmanbak/%F.ctl';--备份路径,在脚本中单独设置压缩,也可以用不此设置
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;--压缩备份,在脚本中单独设置压缩,也可以用不此设置
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/oracle/rmanbak/%T_%n_%s_%d_%c.bkp';
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 RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/SRQ/121/dbs/snapcf_SRQ.f'; # default
三、全量备份
1、单通道:备份SRQ,用时1小时16分
#!/bin/bash su - orasrq -c " rman target / log=/scripts/log_full.log<<EOF echo "12" run{ allocate channel c1 device type disk; #allocate channel c2 device type disk; #allocate channel c3 device type disk; #allocate channel c4 device type disk; sql 'alter system archive log current'; backup as compressed backupset full database format '/oracle/rmanbak/db_%T_%n_%s_%d_%c.bak'; #backup database format '/oracle/rmanbak/db_%T_%n_%s_%d_%c.bak'; sql 'alter system archive log current'; backup archivelog all format '/oracle/rmanbak/arch_%d_%T_%s_%p_%c.bak' delete input ; #backup current controlfile format '/data/rmanbak/ctl_%F.bak'; release channel c1; #release channel c2; #release channel c3; #release channel c4; crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; delete noprompt expired archivelog all; } EOF
2、多通道:4通道,用时40分钟;7通道用时36分钟
#!/bin/bash su - orasrq -c " rman target / log=/scripts/log_full.log<<EOF run{ allocate channel c1 device type disk; allocate channel c2 device type disk; allocate channel c3 device type disk; allocate channel c4 device type disk; sql 'alter system archive log current'; backup as compressed backupset full database format '/oracle/rmanbak/db_%T_%n_%s_%d_%c.bak'; #backup database format '/oracle/rmanbak/db_%T_%n_%s_%d_%c.bak'; sql 'alter system archive log current'; backup archivelog all format '/oracle/rmanbak/arch_%d_%T_%s_%p_%c.bak' delete input ; #backup current controlfile format '/data/rmanbak/ctl_%F.bak'; release channel c1; release channel c2; release channel c3; release channel c4; crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; delete noprompt expired archivelog all; } EOF
四、增量备份
差异备份Differential
2、累积增量备份Cumulative
backup incremental level 0 database; --这是一个0级备份
backup incremental level 1 database; --差异1级
backup incremental level 2 database; --差异2级
backup incremental level 1 cumulative database; --累积1级
backup incremental level 2 cumulative database; --累积2级
1、增量备份(0级备份)
#!/bin/bash su - orasrq -c " rman target / log=/scripts/log_level_0.log<<EOF run{ allocate channel c1 device type disk; allocate channel c2 device type disk; allocate channel c3 device type disk; allocate channel c4 device type disk; backup as compressed backupset incremental level 0 format '/oracle/rmanbak/db_level0_%d_%T_%s.bak' database; backup current controlfile format '/oracle/rmanbak/control_%d_%T_%s.bak'; backup archivelog all format '/oracle/rmanbak/arch_%d_%T_%s_%p_%c.bak' delete input ; release channel c1; release channel c2; release channel c3; release channel c4; crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; delete noprompt expired archivelog all; } EOF "
2、增量备份(差异1级)
#!/bin/bash su - orasrq -c " rman target / log=/scripts/log_level_1.log<<EOF run{ allocate channel c1 device type disk; allocate channel c2 device type disk; allocate channel c3 device type disk; allocate channel c4 device type disk; backup as compressed backupset incremental level 1 format '/oracle/rmanbak/db_level1_%d_%T_%s.bak' database; backup current controlfile format '/oracle/rmanbak/control_%d_%T_%s.bak'; backup archivelog all format '/oracle/rmanbak/arch_%d_%T_%s_%p_%c.bak' delete input ; release channel c1; release channel c2; release channel c3; release channel c4; crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; delete noprompt expired archivelog all; } EOF "
3、增量备份(差异2级)
#!/bin/bash su - orasrq -c " rman target / log=/scripts/log_level_2.log<<EOF run{ allocate channel c1 device type disk; allocate channel c2 device type disk; allocate channel c3 device type disk; allocate channel c4 device type disk; backup as compressed backupset incremental level 2 format '/oracle/rmanbak/db_level2_%d_%T_%s.bak' database; backup current controlfile format '/oracle/rmanbak/control_%d_%T_%s.bak'; backup archivelog all format '/oracle/rmanbak/arch_%d_%T_%s_%p_%c.bak' delete input ; release channel c1; release channel c2; release channel c3; release channel c4; crosscheck backup; crosscheck archivelog all; delete noprompt obsolete; delete noprompt expired backup; delete noprompt expired archivelog all; } EOF "
文章评论