Oracle資料庫從Linux x86單機遷移到Solaries雙節點RAC叢集經驗分享-備份策略驗證
本文分享了一次真實的遷移案例,將某業務系統生產環境Oracle資料庫進行遷移,資料庫版本為11.2.0.4。資料庫遷移之前部署在RedHat6.5作業系統中,以單機單例項檔案系統部署;遷移之後部署在Solaries11作業系統中,以ASM雙節點RAC叢集部署。本文分享的主要內容是遷移過程中對生產環境的變更和調整思路,以及遷移過程中遇到問題的解決方案,整個遷移過程包括測試環境驗證、備份策略驗證、生產環境切換等三大步驟,並未涉及資料庫的安裝部署。希望文章的整體處理思路對讀者有幫助。
備份策略驗證的目的如下:
(1)調整生產資料庫引數。
(2)增加控制檔案、日誌檔案。
(3)部署RMAN備份策略
(4)模擬故障演練
目錄結構搶先看
1.線上重做日誌調整
2.控制檔案調整
3.記憶體引數調整
4.調整其他引數
5.開啟資料庫歸檔
6.定義RMAN備份策略
7.部署備份指令碼和crontab
8.手工執行RMAN全量備份
9.控制檔案損壞測試
10.spfile檔案損壞測試
11.重做日誌損壞測試
12.資料損壞測試
13.其他問題處理
下面是操作全流程:
1.線上重做日誌調整
(注: 每組一個,增加組數為8,調整大小為1G)
SQL> set linesize 300;SQL> col member for a50; SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_ ---------- ------- ------- -------------------------------------------------- --- 2 ONLINE +DATADG/cams/onlinelog/group_2.292.989624633 NO 1 ONLINE +DATADG/cams/onlinelog/group_1.256.989624629 NO 3 ONLINE +DATADG/cams/onlinelog/group_3.296.989624869 NO 4 ONLINE +DATADG/cams/onlinelog/group_4.295.989624875 NO 5 ONLINE +DATADG/cams/onlinelog/group_5 NO 6 ONLINE +DATADG/cams/onlinelog/group_6 NO 7 ONLINE +DATADG/cams/onlinelog/group_7 NO 8 ONLINE +DATADG/cams/onlinelog/group_8 NO 8 rows selected. SQL> select GROUP#,BYTES,MEMBERS,STATUS from v$log; GROUP# BYTES MEMBERS STATUS ---------- ---------- ---------- ---------------- 1 1073741824 1 INACTIVE 2 1073741824 1 INACTIVE 3 1073741824 1 CURRENT 4 1073741824 1 INACTIVE 5 1073741824 1 CURRENT 6 1073741824 1 INACTIVE 7 1073741824 1 INACTIVE 8 1073741824 1 INACTIVE 8 rows selected.
2.控制檔案調整
(注: 調整控制檔案為3個,存在在不同路徑下)
SQL> set linesize 300;SQL> col name for a55; SQL> select * from v$controlfile; STATUS NAME IS_ BLOCK_SIZE FILE_SIZE_BLKS ------- ------------------------------------------------------- --- ---------- -------------- +DATADG/cams/controlfile/controlfile1/controlfile1 NO 16384 1128 +DATADG/cams/controlfile/controlfile2/controlfile2 NO 16384 1128 +DATADG/cams/controlfile/current.303.989624627 NO 16384 1128
3.記憶體引數調整
(注:每個節點的記憶體都為64G,開啟AMM)
SQL> show parameter memory;NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 32256M memory_target big integer 32256M shared_memory_address integer 0 SQL> show parameter sga; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 32256M sga_target big integer 0 SQL> show parameter pga; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ pga_aggregate_target big integer 0
4.調整其他引數
調整
job_queue_processes,
log_buffer,
db_block_checking,
processes,
session_cached_cursors,
open_cursors,
undo_retention
等引數,符合生產規範。
5. 開啟資料庫歸檔
SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination +DATADG Oldest online log sequence 8 Next log sequence to archive 11 Current log sequence 11
6.定義RMAN備份策略
(1)設定資料庫自動備份控制檔案
(2)每週日做RMAN 0級全庫備份
(3)每日(除週日)做RMAN 1級增量備份
(4)在主伺服器上只保留2周的全庫備份、增量備份
(5)將兩週前的全庫備份、增量備份copy至其他環境中
7. 部署備份指令碼和crontab
(注:按照客戶要求,這裡將RMAN備份到ASM磁碟中)
先建立RMAN備份目錄“+DATADG/CAMS/RMAN”
指令碼存放目錄:/u01/app/oracle/backup/rman
日誌存放目錄:/u01/app/oracle/backup/rman/logs
在oracle使用者下執行:crontab -e,每天凌晨3點執行備份
0 3 * * 0-6 /u01/app/oracle/backup/rman/start_rman.sh >> /u01/app/oracle/backup/rman/start_rman.log
8.手工執行RMAN全量備份
手工執行RMAN 0級備份指令碼,對資料庫做全量RMAN備份。
9.控制檔案損壞測試
(1)關閉資料庫
(2)修改其中一個控制檔名字
(3)啟動資料庫(提示錯誤資訊)
(4)使用RMAN恢復控制檔案
(5)啟動資料庫
(6)檢查控制檔案資訊
10. spfile檔案損壞測試
(1)關閉資料庫
(2)修改spfile檔名字
(3)啟動資料庫(提示錯誤資訊)
(4)使用RMAN恢復spfile檔案
(5)重啟資料庫
(6)檢查資料庫狀態
11. 重做日誌損壞測試
(1)關閉資料庫
(2)修改redo檔名字
(3)啟動資料庫(提示錯誤資訊)
(4)使用RMAN完全恢復
(5)在sqlplus中recover資料庫
(6)開啟資料庫
(7)檢查資料庫狀態
12. 資料損壞測試
(1)完全恢復
RMAN>startup mount; RMAN>restore database; RMAN>recover database; RMAN>alter database open;
(2)不完全恢復
oracle@cwgsdb1:~$ srvctl stop database -d cams oracle@cwgsdb1:~$ srvctl start database -d cams -o mount oracle@cwgsdb1:~$ export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" $ rman target / RMAN>restore database until time "to_date('2018-10-25 01:07:18','yyyy-mm-dd hh24:mi:ss')"; RMAN>recover database until time "to_date('2018-10-25 01:08:06','yyyy-mm-dd hh24:mi:ss')"; RMAN>alter database open resetlogs; RMAN>exit
13.其它問題處理
Solaries系統時間與網際網路時間不一致,因為是測試環境,切換時會清理後重新匯入生產資料,所以直接修改系統時間解決。
如果生產環境發現該問題,建議將硬體與系統時間同步關掉,停庫一天,等時間超過當前時間,然後開系統,時間同步,然後再起資料庫。
至此,備份策略驗證完畢。下一步的工作是進行生產環境資料庫切換 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31394774/viewspace-2219306/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫從Linux x86單機遷移到Solaries雙節點RAC叢集經驗分享-測試環境驗證Oracle資料庫Linux
- Oracle資料庫從Linux x86單機遷移到Solaries雙節點RAC叢集經驗分享-生產環境切換Oracle資料庫Linux
- 規劃單節點遷移到rac
- RAC資料庫的RMAN備份異機恢復到單節點資料庫資料庫
- 從MySQL遷移到VoltDB的一點經驗MySql
- 【RAC】刪除RAC資料庫節點(六)——刪除Oracle叢集服務資料庫Oracle
- 【RAC】刪除RAC資料庫節點(七)——刪除Oracle叢集軟體資料庫Oracle
- 單例項資料庫expdp遷移到RAC庫單例資料庫
- oracle遷移資料經驗Oracle
- 時序資料庫TDengine的叢集使用經驗分享,附上開源版本資料庫
- Oracle RAC恢復成單節點資料庫Oracle資料庫
- 【RAC】將單例項備份集恢復為rac資料庫單例資料庫
- 【RAC】將RAC備份集恢復為單例項資料庫單例資料庫
- Oracle資料庫學習應用:經驗分享Oracle資料庫
- 將資料庫遷移到ASM的實驗記錄資料庫ASM
- Oracle RAC 10g叢集節點增加Oracle
- 將RAC備份集恢復為單例項資料庫單例資料庫
- Oracle DataBase單例項遷移到Oracle RACOracleDatabase單例
- oracle 10g rac hacmp 遷移到asm實驗步驟Oracle 10gACMASM
- oracle 增量備份恢復驗證Oracle
- 驗證oracle 11g資料庫的RMAN備份的有效性Oracle資料庫
- 單例項資料遷移到RAC補充單例
- RAC 雙節點 轉單節點流程
- 【odoo】[經驗分享]資料遷移注意事項Odoo
- 2 Day DBA-管理方案物件-執行備份和恢復-備份資料庫-驗證備份並測試你的備份策略物件資料庫
- 從微服務遷移到工作流的經驗之談微服務
- 功能分支是邪惡的:從SVN遷移到Git經驗Git
- Networker備份oracle單節點Oracle
- 將pentaho資料庫遷移到oracle資料庫資料庫Oracle
- Oracle11g使用rman從rac遷移到racOracle
- 【rman備份策略】實驗
- 資料庫備份策略資料庫
- 【OCR】OCR備份策略及備份介質有效性驗證
- RAC叢集資料庫搭建資料庫
- Oracle11g使用rman從單例項遷移到racOracle單例
- 經驗分享:將微服務遷移到Spring WebFlux - allegro.tech微服務SpringWebUX
- 效能優化資料庫篇-從單機到叢集優化資料庫
- PostgreSQL資料庫PGCM高階認證考試經驗分享SQL資料庫GC