ORACLE——RMAN——数据库备份之十——备份策略(脚本实现)——SRM系列

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

(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
"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值