Polardb資料庫掛庫後,如何恢復主備關係
一、前言
Polardb-O 主從高可用模式會出現主庫節點主機或是網路卡故障等問題,只要主從發生切換,備庫節點切換成新主庫,而老主庫主機重啟恢復後,無法自動切換成新備庫,甚至影響較大出現主備這間流複製關係失效。因此出現備庫恢復失敗問題,需要全量重建備庫和流複製建立。
二、環境資訊
2.1 主機資訊
Polardb-O 資料庫 |
實際地址IP |
資料庫架構 |
是否開啟readonly(Y/N) |
說明 |
Polardb-O 叢集 |
192.168.58.130 |
主 |
Y |
一主一備架構 |
192.168.58.131 |
備 |
N | ||
|
192.168.58.129 |
VIP |
/ |
|
叢集管理軟體 |
192.168.58.132 |
/ |
/ |
Polardb 叢集管理軟體、 |
2.2 架構圖
三、備庫恢復過程
當主庫因主機或是網路卡其中某中原因要對主庫進行重啟恢復,此時CM 會自動觸發主從切換,自然備庫被切換成新主庫,而老主庫重啟後需要恢復成新備庫,但測試驗證後,發現老主庫主機重啟恢復後,無法恢復成備庫。只能通過手工重建方式來恢復備庫。
3.1、新備庫恢復過程
1、 清除新備庫環境
# 刪除本地配置目錄 sudo rm -rf $PGDATA # 清理 PFS 檔案系統中資料 sudo pfs -C disk rm -r /sdb/pgdata # 建立資料目錄 pfs -C disk mkdir /sdb/polar_data |
2、 主庫同步資料到備庫
使用主庫資料目錄和PFS 初始化備庫資料目錄(在新備庫使用polardb 登入)
polar_basebackup -h 192.168.58.130 -p5432 -U replicator -D $PGDATA --polardata=$PFSDIR --polar_storage_cluster_name=disk --polar_disk_name=$PFSDISK --polar_host_id=2 -X stream --progress --write-recovery-conf -v |
注意主備庫的host_id 不能一致。
3、 啟動和檢查備庫節點
啟動與檢查備節點可驗證資料庫是否連線成功。具體操作如下:
pg_ctl -c start -D $PGDATA psql -h$PGDATA -p$PGPORT |
如果能連通,則證明資料庫安裝成功,並且啟動成功。
3.2、 CM 管理軟體
為了保障主從能正常切換,在CM 中刪除異常備庫節點
curl -H "Content-Type:application/json" -X POST --data "{\"user\":\"polardb\",\"dataPath\":\"/app/polardb_ data\",\"ip\":\" 192.168.58.131 \",\"port\":\"5432\",\"type\":\"Standby\",\"storage_type\":\"local_ssd\",\"sync\":\"SYNC\"}" http://127.0.0.1:5000/v1/remove_ins |
恢復回來的備庫配置需要新增到CM 管理軟體中。
curl -H " Content-Type:application/json" -X POST --data "{\"user\":\"polardb\",\"dataPath\":\"/app/polardb_data\",\"ip\":\" 192.168.58.131 \",\"port\":\"5432\",\"type\":\"Standby\",\"storage_type\":\"local_ssd\",\"sync\":\"SYNC\"}" http://127.0.0.1:5000/v1/add_ins |
3.3、 主備庫流複製狀態
1 、叢集環境檢查
curl -H ""Content-Type:application/json"" http://127.0.0.1:5000/v1/status?type=visual |
2 、檢查主庫流複製程式
ps -ef |grep wal # 主庫 – walwriter ps -ef |grep wal # 備庫 – walreceiver |
3 、檢查主備庫讀寫模式
show transaction_read_only; |
主庫狀態:off, 備庫:on
4 、主庫檢視複製狀態
select * from pg_stat_replication; |
5、
測試資料同步是否正常
在主庫建立一個表,看備庫是否存在 , 如果存在說明資料同步正常。 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2733515/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- 資料庫備份恢復資料庫
- MSSQL-最佳實踐-資料庫恢復模式與備份的關係SQL資料庫模式
- 如何恢復在全備後新增了資料檔案的資料庫資料庫
- 【資料庫資料恢復】如何恢復Oracle資料庫truncate表的資料資料庫資料恢復Oracle
- 3.5 掛起和恢復資料庫資料庫
- Oracle資料庫冷備和恢復Oracle資料庫
- Mysql資料庫備份及恢復MySql資料庫
- 達夢資料庫備份恢復資料庫
- postgresql備份與恢復資料庫SQL資料庫
- 寶塔資料庫恢復 mysql資料庫丟失恢復 mysql資料庫刪除庫恢復 寶塔mysql資料庫恢復資料庫MySql
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 達夢資料庫如何解除主從關係資料庫
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- 【資料庫資料恢復】SAP資料庫資料恢復案例資料庫資料恢復
- 資料庫資料恢復—NTFS分割槽損壞如何恢復SqlServer資料庫資料資料庫資料恢復SQLServer
- 【資料庫資料恢復】Oracle資料庫ASM磁碟組掉線如何恢復資料?資料庫資料恢復OracleASM
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 資料庫備份與恢復技術資料庫
- Mongo 資料庫備份和恢復命令Go資料庫
- pg_dump 備份,恢復資料庫資料庫
- PostgreSql資料庫的備份和恢復SQL資料庫
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- SqlServer資料庫恢復備份資料的方法SQLServer資料庫
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 資料庫資料恢復-oracle資料庫報錯無法開啟的如何恢復資料?資料庫資料恢復Oracle
- vivo 資料庫備份恢復系統演化資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- MySQL-19.資料庫備份與恢復MySql資料庫
- PG-pg_dump備份/恢復資料庫資料庫
- Mongodb資料庫誤刪後的恢復MongoDB資料庫
- 在DG備庫備份資料庫並恢復到一個主機上,報錯RMAN-06820資料庫
- 資料庫修復資料恢復資料庫資料恢復
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復