题记:这里分享一下我们Oracle的备份脚本,这些脚本均在生产库运行,正确无误!
环境:SUSE Linux 10sp2 + Oracle 11gR1
说明:小型库一般都是每周做一次全备,大型库每周也做一次全备外,周三做1级增量备份,然后每天晚上都做一次2级增量备份,归档日志每天分不同时段定时备份!
--------------------------------------分割线 --------------------------------------
推荐阅读:
Oracle基础教程之通过RMAN复制数据库
Oracle数据库备份加密 RMAN加密
--------------------------------------分割线 --------------------------------------
小型库全备:
run {
# Hot database level 0 whole backup
allocate channel t1 type disk;
backup
incremental level 0
skip inaccessible
format '/backup/osedb_osedb01/data/back_%s_%p_%T_%d'
#AS COMPRESSED backupset
database plus archivelog
format '/backup/osedb_osedb01/arch/arclogback_%s_%p_%t_%d'
delete input;
delete obsolete;
release CHANNEL t1 ;
}
大库全备:
oracle@subsdb1:~/bin/incre_bakup_cmd> cat backup_db_level0.cmd
run {
# Hot database level 0 whole backup
allocate channel t1 type disk maxpiecesize=50G;
allocate channel t2 type disk maxpiecesize=50G;
allocate channel t3 type disk maxpiecesize=50G;
backup as compressed backupset
incremental level 0 tag 'subsdb_level0'
skip inaccessible
format '/backup/subsdb_subsdb1/data/bak_%d_%T_%s_%p_db_level0'
#AS COMPRESSED backupset
database
plus archivelog
format '/backup/subsdb_subsdb1/arch/arclogback_%s_%p_%t_%d'
delete input;
backup current controlfile format '/backup/subsdb_subsdb1/data/bak_%d_%T_%s_ctl.ctl';
release channel t1;
release channel t2;
release channel t3;
delete noprompt obsolete;
}
1级增量备份:
oracle@subsdb1:~/bin/incre_bakup_cmd> cat backup_db_level1.cmd
run {
# Hot database level 1 whole backup
allocate channel t1 type disk maxpiecesize=50G;
allocate channel t2 type disk maxpiecesize=50G;
allocate channel t3 type disk maxpiecesize=50G;
backup as compressed backupset
incremental level 1 tag 'subsdb_level1'
skip inaccessible
format '/backup/subsdb_subsdb1/data/bak_%d_%T_%s_%p_db_level1'
#AS COMPRESSED backupset
database plus archivelog
format '/backup/subsdb_subsdb1/arch/arclogback_%s_%p_%t_%d'
delete input;
backup current controlfile format '/backup/subsdb_subsdb1/data/bak_%d_%T_%s_ctl.ctl';
release channel t1;
release channel t2;
release channel t3;
delete noprompt obsolete;
}
2级增量备份:
oracle@subsdb1:~/bin/incre_bakup_cmd> cat backup_db_level2.cmd
run {
# Hot database level 2 whole backup
allocate channel t1 type disk maxpiecesize=50G;
allocate channel t2 type disk maxpiecesize=50G;
allocate channel t3 type disk maxpiecesize=50G;
backup as compressed backupset
incremental level 2 tag 'subsdb_level2'
skip inaccessible
format '/backup/subsdb_subsdb1/data/bak_%d_%T_%s_%p_db_level2'
#AS COMPRESSED backupset
database
plus archivelog
format '/backup/subsdb_subsdb1/arch/arclogback_%s_%p_%t_%d'
delete input;
backup current controlfile format '/backup/subsdb_subsdb1/data/bak_%d_%T_%s_ctl.ctl';
release channel t1;
release channel t2;
release channel t3;
delete noprompt obsolete;
}
归档日志备份:
cat backup_arch.cmd
run {
allocate channel t1 type disk;
backup
skip inaccessible
format '/backup/osedb_osedb01/arch/arclogback_%s_%p_%t_%d'
#AS COMPRESSED backupset
(archivelog all delete input);
delete obsolete;
release CHANNEL t1 ;
}