一、写备份脚本的小技巧:
(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
"
文章评论