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
- Networker備份oracle單節點Oracle
- 將RAC備份集恢復為單例項資料庫單例資料庫
- oracle 增量備份恢復驗證Oracle
- 時序資料庫TDengine的叢集使用經驗分享,附上開源版本資料庫
- Oracle23ai 資料庫的簡單驗證OracleAI資料庫
- 經驗分享:將微服務遷移到Spring WebFlux - allegro.tech微服務SpringWebUX
- 資料庫備份策略資料庫
- 從微服務遷移到工作流的經驗之談微服務
- 功能分支是邪惡的:從SVN遷移到Git經驗Git
- 【rman備份策略】實驗
- 【odoo】[經驗分享]資料遷移注意事項Odoo
- 效能優化資料庫篇-從單機到叢集優化資料庫
- PostgreSQL資料庫PGCM高階認證考試經驗分享SQL資料庫GC
- Oracle資料庫遷移到國產資料庫核心難點解析 | 聯盟釋出Oracle資料庫
- MySQL從庫維護經驗分享MySql
- Oracle資料庫密碼延遲驗證Oracle資料庫密碼
- Velero:備份、遷移Kubernetes叢集資源和PV
- Cloudflare 從 PHP 到 Go:遷移與經驗分享CloudPHPGo
- 記一次資料庫遷移到rac11204資料庫連線scan找不到主機資料庫
- dnf資料庫備份&遷移資料庫
- Networker備份oracle racOracle
- 從庫轉換成PXC叢集的節點
- oracle資料庫備份之exp增量備份Oracle資料庫
- Oracle 例項和RAC叢集下資料庫日誌目錄合集Oracle資料庫
- 「Oracle」Oracle 資料庫備份還原Oracle資料庫
- consul 多節點/單節點叢集搭建
- ORACLE 11.2.0.4 rac for linux 鏈路宕導致的單節點異常當機OracleLinux
- oracle 備份資料庫,匯出資料庫Oracle資料庫
- 拿三個專案,跟你聊聊Oracle資料庫資料遷移的一些經驗Oracle資料庫
- 表單資料驗證
- MySQL資料庫遷移到PostgresMySql資料庫
- 私有IP丟失造成Oracle 12C RAC叢集節點不能啟動Oracle
- Oracle RAC新增節點Oracle
- oracle資料庫跨平臺(AIX)從RAC恢復至(linux)下的單例項Oracle資料庫AILinux單例
- 容器化|自建 MySQL 叢集遷移到 KubernetesMySql
- 從過時的 Windows 機器遷移到 LinuxWindowsLinux