日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

postgresql灾备切换

發布時間:2023/12/29 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgresql灾备切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

演示pg_rewind的使用方法。
主庫在10.0.3.101上,備庫在10.0.3.102上。
這時主庫出問題了,如機器宕機了(我們用強制關機來模擬),我
們現在激活備庫,即在10.0.3.102上執行如下命令:
[postgres@pg02 ~]$ pg_ctl promote
server promoting
現在10.0.3.102庫變成了主庫。
然后把原主庫開機,即在10.0.3.101上執行pg_rewind命令:
[postgres@pg01 ~]$ pg_rewind -D $PGDATA --source-server='host=10.0.3.102 user=postgres password=postgres'
pg_rewind: fatal: target server must be shut down cleanly
我們發現pg_rewind報錯,這時就需要把這個庫啟動一下,然后再
正常關閉。
[postgres@pg01 ~]$ pg_ctl start
pg_ctl: another server might be running; trying to start server anyway
waiting for server to start....
done
server started
[postgres@pg01 ~]$ pg_ctl stop
waiting for server to shut down.... done
server stopped
然后再執行pg_rewind:
[postgres@pg01 ~]$ pg_rewind -D $PGDATA --source-server='host=10.0.3.102 user=postgres password=postgres'
pg_rewind: servers diverged at WAL location 0/18DCD08 on timeline 1
pg_rewind: rewinding from last common checkpoint at 0/18C1DE0 on timeline 1
pg_rewind: Done!
注意,上面的“-D”參數指向本地的目錄。
pg_rewind執行完之后,需要手動建文件“standby.signal”:
touch $PGDATA/standby.signal
并在postgresql.conf中添加如下內容:
primary_conninfo = 'user=postgres password=XXXXXX host=10.0.3.102 port=5432 sslmode=prefer sslcompression=0'
這樣原主庫才能變成新主庫的備庫。
如果是PostgreSQL 12版本之前的數據庫,需要手動創建
recovery.conf文件,內容如下:
standby_mode = 'on'
recovery_target_timeline = 'latest'
primary_conninfo = 'user=osdba password=XXXXXX host=10.0.3.102 port=5432 sslmode=disable sslcompression=1'
注意,上面的命令中比之前多了一
行“recovery_target_timeline='latest'”,這時因為新主庫的時間線與原主庫
的不一樣了,加上這一行命令才能讓原主庫切換到新主庫的時間線上。
這時再在10.0.3.101上啟動數據庫,原主庫就變成了新主庫的備
庫:
[postgres@pg01 ~]$ pg_ctl start
waiting for server to start....
done
server started
注意上面的操作,一定要先建好standby.signal(或是
recovery.conf),再啟動數據庫,否則啟動了數據庫就會進入主庫模
式。如果這樣做了,需要把數據庫停下來,重新運行pg_rewind命令。

總結

以上是生活随笔為你收集整理的postgresql灾备切换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。