背景:高可用架構(gòu)版本。
主備分別部署在機(jī)器A和B上,現(xiàn)在要將其分別遷移到機(jī)器C和D上。
思路:
1、首先根據(jù)源實(shí)例的備份(云盤上可用snapshot),創(chuàng)建一個(gè)mirror實(shí)例,mirror包含兩個(gè)節(jié)點(diǎn),分別部署在C和D上。
2、在源實(shí)例主節(jié)點(diǎn)hba.conf中增加mirror主節(jié)點(diǎn)的ip的設(shè)置,允許源實(shí)例主節(jié)點(diǎn)接受來自mirror主節(jié)點(diǎn)的連接。
3、mirror實(shí)例主節(jié)點(diǎn),創(chuàng)建recovery.conf文件,設(shè)置primary_conninfo指向源主節(jié)點(diǎn)。啟動(dòng)mirror主節(jié)點(diǎn),建立源實(shí)例主到mirror實(shí)例主節(jié)點(diǎn)的復(fù)制關(guān)系。
4、在mirror實(shí)例主節(jié)點(diǎn)hba.conf中增加mirror備節(jié)點(diǎn)的ip。允許mirror主節(jié)點(diǎn)接受來自mirror備節(jié)點(diǎn)的連接。
5、mirror實(shí)例備節(jié)點(diǎn),創(chuàng)建recovery.conf文件,設(shè)置primary_conn指向mirror實(shí)例主節(jié)點(diǎn)。啟動(dòng)備節(jié)點(diǎn),建立mirror實(shí)例主節(jié)點(diǎn)到mirror實(shí)例備節(jié)點(diǎn)的復(fù)制關(guān)系。
6、提升mirror實(shí)例主節(jié)點(diǎn)為cluster master。
postgresql 備提升為主的方式:
pg_ctl方法:在備庫主機(jī)執(zhí)行pg_ctl promote shell腳本
觸發(fā)器文件方式:備庫配置recover.conf文件的trigger_file參數(shù),之后在備庫主機(jī)上創(chuàng)建觸發(fā)器文件。
補(bǔ)充:Postgresql遷移數(shù)據(jù)文件存放位置
1. POSTGRESQL的安裝
centos7 里面默認(rèn)的pgsql的版本是 9.2.4 如果想用更高的版本需要執(zhí)行以下如下的命令
rpm -ivh https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
安裝成功后進(jìn)行安裝
yum install postgresql11
yum install postgresql11-server
然后啟動(dòng)并且設(shè)置為開機(jī)啟動(dòng)
systemctl enable postgresql-11
systemctl start postgresql-11
啟動(dòng)之后進(jìn)行數(shù)據(jù)庫初始化
11 以上的系統(tǒng) 還是比較簡(jiǎn)單的 直接執(zhí)行
postgresql-setup initdb 就可以初始化數(shù)據(jù)庫
設(shè)置密碼等工作
登錄數(shù)據(jù)庫
修改密碼
ALTER USER postgres WITH PASSWORD 'Test6530' 設(shè)置密碼
\q退出數(shù)據(jù)庫
2. 修改數(shù)據(jù)庫使之能夠被遠(yuǎn)程鏈接
數(shù)據(jù)庫的配置文件默認(rèn)為:
查看服務(wù)狀態(tài)可得
![](/d/20211018/157cb910c71c2a9305ae8969dd9b6877.gif)
進(jìn)入 data目錄
/var/lib/pgsql/11/data/
/usr/lib/systemd/system/postgresql-11.service
cd /var/lib/pgsql/11/data/
修改pg_hba.conf 即可
3. 創(chuàng)建新的數(shù)據(jù)目錄
4.關(guān)閉pgsql
systemctl stop postgresql-11
5. 復(fù)制原來的文件
cp -R /var/lib/pgsql/11/data/* /home/pgdata
6.修改權(quán)限
chown -R postgres:postgres /home/pgdata
chmod 750 /home/pgdata -R
7. 修改systemd 里面的配置文件
vim /usr/lib/systemd/system/postgresql-11.service
修改PGDATA的指向
8.執(zhí)行命令重啟
systemctl daemon-reload
systemctl start postgresql-11
9. 刪除原始PGDATA 里面的內(nèi)容 重啟虛擬機(jī)驗(yàn)證。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql 如何查看pg_wal目錄下xlog文件總大小
- Postgresql去重函數(shù)distinct的用法說明
- postgresql 12版本搭建及主備部署操作
- 開源數(shù)據(jù)庫postgreSQL13在麒麟v10sp1源碼安裝過程詳解
- postgresql初始化之initdb的使用詳解
- postgresql之使用lsn 獲取 wal文件名的實(shí)例
- 修改postgresql存儲(chǔ)目錄的操作方式
- Postgresql中xlog生成和清理邏輯操作