作者kb0130 (乌拉拉)
看板Database
标题[讨论] 各位如何在oracle standby作full backup
时间Sun Nov 19 20:58:09 2017
如题,我的疑问在於control file是否要去primary备过来一份 ?
虽然我知道standby 的 control file 还原回来可以用failover的方式active
但如果碰到primary/standby 资料目录不一致的状况,standby control file就不可用了
我这样设计standby的完整备份
1. 在完整备份standby前,先备份primary control file
run {
allocate channel d1 type disk;
backup current controlfile format '/data/orabak/control_primary_%s.ctl';
release channel d1;
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT';
sql 'ALTER SYSTEM ARCHIVE LOG CURRENT'; --因为有三个redo group
}
模拟primary/standby都故障,我的primary还原流程
1. 还原spfile,启动到nomount
2. 还原primary control file,启动到mount
3. 用RMAN注册backup piece(primary controlfile 没有备份资讯)
4. restore database
5. recover database
这边问题来了,我是使用recover database using backup controlfile until cancel;
最後用resetlogs打开DB,原因是在於primary的online redo log也救不回来。
感觉这样的方法比较别扭,若这样的情景些许资料遗失是可接受的
各位都是怎样在standby规划full backup的?
感谢各位解答~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.231.71.161
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1511096292.A.A7C.html
1F:→ kobedisel: 不需要再去primary backup controlfile了,两边若是使 11/20 11:15
2F:→ kobedisel: 用filesystem存放而路径不一样没差,顶多restore前加上 11/20 11:15
3F:→ kobedisel: set newname改回来就好,若使用asm的话他会自己放到他 11/20 11:15
4F:→ kobedisel: 应该放的路径下,另外只要是controlfile是rman restore 11/20 11:15
5F:→ kobedisel: 的一定得open resetlogs,而online redo本来就没有办法 11/20 11:15
6F:→ kobedisel: 备份。 11/20 11:15
7F:→ kobedisel: 若要完全没有data loss风险,按照您的情景只能多个stan 11/20 11:21
8F:→ kobedisel: dby 且先不考虑网路速度与同地异地的问题,只能多套sta 11/20 11:21
9F:→ kobedisel: ndby 切都走LGWR SYNC 且dataguard mode为maximum prot 11/20 11:21
10F:→ kobedisel: ection mode 保证没有data loss 11/20 11:21
11F:→ kobedisel: 最後 建议在standby 的backup 就按照一般的正常的rman 11/20 11:28
12F:→ kobedisel: backup 方式即可但最好有使用catalog,另外再搭配参 11/20 11:28
13F:→ kobedisel: 数让archivelog在容忍的data loss时间范围内至少产生一 11/20 11:28
14F:→ kobedisel: 次archivelog即可。 11/20 11:28
15F:→ kb0130: 碰到高手,学习了,非常感谢! 11/20 11:38
16F:→ kb0130: 另外手动产生archive,是要跑去primary执行吗 11/20 11:39
17F:→ kobedisel: 是的,如果您有metalink帐号 可以上metalink查 how to 11/22 09:23
18F:→ kobedisel: rman backup on adg ,印象中里面有范例,实际上就是 11/22 09:23
19F:→ kobedisel: 写一个shell script从rman 指令呼叫连线到primary swit 11/22 09:23
20F:→ kobedisel: ch logfile 11/22 09:23
21F:→ kb0130: 很清楚的了解了,谢谢K大的指教~ 11/24 21:42