作者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/m.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