Oracle制定定备份策略并部署备份脚本
一、环境
1.确认文件和脚本的路径,操作系统内存和空间大小;保证空间可用,创建对应的路径和权限正确
2.确认数据库的大小和内存配置;决定启用并行度的多少
3.确认部署的用户;使用oracle用户最好,但是发现有的oracle用户会过期;部署在root用户下也可,例子就是在root下
4.确认数据库的实例名,防止多个实例;
5.10g、11g、19c的备份脚本没有什么区别。
*******
二、备份脚本
mkdir -p /backup/rman/orcl/log chown -R oracle:oinstall rman 1.每周日零点全备,周一到周六增量备份 #backup orcl 0 0 * * 0 /backup/rman/orcl/rman_0_level_full_p.sh 0 0 * * 1-6 /backup/rman/orcl/rman_1_level_incremental_p.sh vi /backup/rman/orcl/rman_0_level_full_p.sh #!/bin/sh su - oracle -c "/backup/rman/orcl/rman_0_level_full.sh" vi /backup/rman/orcl/rman_0_level_full.sh #!/bin/sh source /home/oracle/.bash_profile export ORACLE_SID=orclcdb1 DAY_TAG=`date +"%Y-%m-%d"` backdir1=/backup/rman/orcl rman target / nocatalog msglog /backup/rman/orcl/log/fullback_$DAY_TAG.log<<EOF run{ crosscheck backup; delete noprompt expired backup; allocate channel d1 type disk; allocate channel d2 type disk; #crosscheck archivelog all; #delete noprompt expired archivelog all; #crosscheck backup; #delete noprompt expired backup; backup incremental level 0 as compressed backupset database format '$backdir1/full_%d_%T_%t_%s_%p'; sql 'alter system archive log current'; backup as compressed backupset filesperset 10 format '$backdir1/arch_%d_%T_%t_%s_%p' archivelog all delete all input; backup current controlfile format '$backdir1/ctl_%d_%T_%t_%s_%p'; release channel d1; release channel d2; #report obsolete; #delete noprompt obsolete; } EOF
2.周一到周六,针对周末的0级全备,每天进行1级增量备份
vi /backup/rman/orcl/rman_1_level_incremental_p.sh #!/bin/sh su - oracle -c "/backup/rman/orcl/rman_1_level_incremental.sh" vi /backup/rman/orcl/rman_1_level_incremental.sh #!/bin/sh source /home/oracle/.bash_profile export ORACLE_SID=orclcdb1 DAY_TAG=`date +"%Y-%m-%d"` backdir1=/backup/rman/orcl rman target / nocatalog msglog /backup/rman/orcl/log/inc_back_$DAY_TAG.log<<EOF run{ crosscheck backup; delete noprompt expired backup; allocate channel d1 type disk; allocate channel d2 type disk; crosscheck archivelog all; delete noprompt expired archivelog all; #crosscheck backup; #delete noprompt expired backup; backup incremental level 1 as compressed backupset database format '$backdir1/inc_%d_%T_%t_%s_%p'; sql 'alter system archive log current'; backup as compressed backupset filesperset 10 format '$backdir1/arch_%d_%T_%t_%s_%p' archivelog all delete all input; backup current controlfile format '$backdir1/ctl_%d_%T_%t_%s_%p'; release channel d1; release channel d2; #report obsolete; #delete noprompt obsolete; } EOF
三、测试
chmod +x *.sh nohup sh XXXX.sh &