Oracle制定定备份策略并部署备份脚本
一、环境
1.确认文件和脚本的路径,操作系统内存和空间大小;保证空间可用,创建对应的路径和权限正确
2.确认数据库的大小和内存,cpu和归档日增量大小;决定启用并行度的多少
3.确认部署的用户;使用oracle用户最好,但是发现有的oracle用户会过期;部署在root用户下也可,例子就是在root下
4.确认数据库的实例名,防止多个实例;
5.10g、11g、19c的备份脚本没有什么区别。
6.检查归档路径,存在归档在多个节点的情况,需要修改归档路径,或者远程备份。
*******
二、备份脚本
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 &
四、注意事项
1.在备份前建议先检查归档保留时间,如果可能清理归档再备份
2.因为要备份部分归档,一定要检查无没有删除归档的脚本
3.确认归档路径。
五、附加
1.修改归档路径
archive log list alter system set log_archive_dest_1='location=+DATADG'; archive log list alter system switch logfile;
2.远程备份命令参考
#!/bin/sh source /home/oracle/.bash_profile export ORACLE_SID=orcl 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 connect 'backupadmin/backuppass@orcl1'; allocate channel d2 type disk connect 'backupadmin/backuppass@orcl2'; #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 like '%/arch1/archivelog/%.arc' delete all input channel d1) (archivelog like '%/arch2/archivelog/%.arc' delete all input channel d2); backup current controlfile format '$backdir1/ctl_%d_%T_%t_%s_%p'; release channel d1; release channel d2; #report obsolete; #delete noprompt obsolete; } EOF
Nothing is trivial at all;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?