rman_oracle数据库备份脚本整理
1、Linux-rman-backup
1.1 开启归档日志
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
mkdir -p /u01/arch
SQL> alter system set log_archive_dest_1='location=/u01/arch';
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;
1.1 一级备份(每天一次)
cat bak0.sh
#!/bin/bash
source ~/.bash_profile
/u01/oracle/product/11.2.0/db_1/bin/rman target / nocatalog log /orabak/logs/bak0_`date +%Y%m%d`.log <<EOF
run{
crosscheck backup;
crosscheck archivelog all;
delete expired archivelog all;
allocate channel c1 device type disk;
backup as compressed backupset database format '/orabak/db0_%d_%T_%U.bak' plus archivelog format '/orabak/ar0_%d_%T_%U.bak';
backup current controlfile format '/orabak/control0_%d_%T_%U.bak';
report obsolete device type disk;
delete noprompt obsolete device type disk;
delete noprompt expired backup device type disk;
delete archivelog all completed before 'sysdate - 1';
release channel c1;
}
EOF
exit
1.2 二级备份(每周一次)
cat bak1.sh
#!/bin/bash
source ~/.bash_profile
/u01/oracle/product/11.2.0/db_1/bin/rman target / nocatalog log /orabak/logs/bak1_`date +%Y%m%d`.log <<EOF
run{
crosscheck backup;
delete obsolete;
crosscheck archivelog all;
delete expired archivelog all;
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
allocate channel c5 device type disk;
allocate channel c6 device type disk;
allocate channel c7 device type disk;
allocate channel c8 device type disk;
backup as compressed backupset incremental level 1 database format '/orabak/db1_%d_%T_%U.bak';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format '/orabak/ar1_%d_%T_%U.bak' delete all input;
backup current controlfile format '/orabak/control1_%d_%T_%U.bak';
report obsolete device type disk;
delete noprompt obsolete device type disk;
delete archivelog all completed before 'sysdate - 1';
delete noprompt expired backup device type disk;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
release channel c7;
release channel c8;
}
EOF
exit
1.3 定时任务
crontab -e
00 23 * * * sh bak0.sh
00 23 * * 0 sh bak1.sh
2.win-rman-backup
2.1 开启归档日志
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> alter system set log_archive_dest_1='location=E:\arch';
SQL> alter database archivelog;
SQL> alter database open;
SQL> archive log list;
2.1 一级备份(每天一次)
cat bat0.bat
rman target SYSTEM/******@SID cmdfile 'E:\servers\bak01.txt' log 'E:\orabak\logs\bak0_`date +%Y%m%d`.log'
cat bat01.txt
run{
crosscheck backup;
crosscheck archivelog all;
delete expired archivelog all;
allocate channel c1 device type disk;
backup as compressed backupset database format 'E:\orabak\db0_%d_%T_%U.bak' plus archivelog format 'E:\orabak\ar0_%d_%T_%U.bak';
backup current controlfile format 'E:\orabak\control0_%d_%T_%U.bak';
report obsolete device type disk;
delete noprompt obsolete device type disk;
delete noprompt expired backup device type disk;
delete archivelog all completed before 'sysdate - 1';
release channel c1;
}
exit
2.2 二级备份(每周一次)
cat bak1.bat
rman target SYSTEM/******@SID cmdfile 'E:\servers\bak11.txt' log 'E:\orabak\logs\bak1_`date +%Y%m%d`.log'
cat bak11.bat
run{
crosscheck backup;
delete obsolete;
crosscheck archivelog all;
delete expired archivelog all;
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
allocate channel c5 device type disk;
allocate channel c6 device type disk;
allocate channel c7 device type disk;
allocate channel c8 device type disk;
backup as compressed backupset incremental level 1 database format 'E:\orabak\db1_%d_%T_%U.bak';
sql 'alter system archive log current';
backup as compressed backupset archivelog all format 'E:\orabak\ar1_%d_%T_%U.bak' delete all input;
backup current controlfile format 'E:\orabak\control1_%d_%T_%U.bak';
report obsolete device type disk;
delete noprompt obsolete device type disk;
delete archivelog all completed before 'sysdate - 1';
delete noprompt expired backup device type disk;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
release channel c7;
release channel c8;
}
exit
2.3 定时任务
在cmd下输入taskschd.msc---》右击任务计划程序库,创建基本任务逐步操作,然后根据提示操作即可!
注:该备份脚本仅用于自己操作,大佬们如果用,可做参考,出现问题,概不负责!
本文地址:https://blog.csdn.net/weixin_41761624/article/details/108979915