背景:高可用架構(gòu)版本。
主備分別部署在機器A和B上,現(xiàn)在要將其分別遷移到機器C和D上。
思路:
1、首先根據(jù)源實例的備份(云盤上可用snapshot),創(chuàng)建一個mirror實例,mirror包含兩個節(jié)點,分別部署在C和D上。
2、在源實例主節(jié)點hba.conf中增加mirror主節(jié)點的ip的設(shè)置,允許源實例主節(jié)點接受來自mirror主節(jié)點的連接。
3、mirror實例主節(jié)點,創(chuàng)建recovery.conf文件,設(shè)置primary_conninfo指向源主節(jié)點。啟動mirror主節(jié)點,建立源實例主到mirror實例主節(jié)點的復(fù)制關(guān)系。
4、在mirror實例主節(jié)點hba.conf中增加mirror備節(jié)點的ip。允許mirror主節(jié)點接受來自mirror備節(jié)點的連接。
5、mirror實例備節(jié)點,創(chuàng)建recovery.conf文件,設(shè)置primary_conn指向mirror實例主節(jié)點。啟動備節(jié)點,建立mirror實例主節(jié)點到mirror實例備節(jié)點的復(fù)制關(guān)系。
6、提升mirror實例主節(jié)點為cluster master。
postgresql 備提升為主的方式:
pg_ctl方法:在備庫主機執(zhí)行pg_ctl promote shell腳本
觸發(fā)器文件方式:備庫配置recover.conf文件的trigger_file參數(shù),之后在備庫主機上創(chuàng)建觸發(fā)器文件。
補充:Postgresql遷移數(shù)據(jù)文件存放位置
1. POSTGRESQL的安裝
centos7 里面默認的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
安裝成功后進行安裝
yum install postgresql11
yum install postgresql11-server
然后啟動并且設(shè)置為開機啟動
systemctl enable postgresql-11
systemctl start postgresql-11
啟動之后進行數(shù)據(jù)庫初始化
11 以上的系統(tǒng) 還是比較簡單的 直接執(zhí)行
postgresql-setup initdb 就可以初始化數(shù)據(jù)庫
設(shè)置密碼等工作
登錄數(shù)據(jù)庫
修改密碼
ALTER USER postgres WITH PASSWORD 'Test6530' 設(shè)置密碼
\q退出數(shù)據(jù)庫
2. 修改數(shù)據(jù)庫使之能夠被遠程鏈接
數(shù)據(jù)庫的配置文件默認為:
查看服務(wù)狀態(tài)可得
進入 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īng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- postgresql 如何查看pg_wal目錄下xlog文件總大小
- Postgresql去重函數(shù)distinct的用法說明
- postgresql 12版本搭建及主備部署操作
- 開源數(shù)據(jù)庫postgreSQL13在麒麟v10sp1源碼安裝過程詳解
- postgresql初始化之initdb的使用詳解
- postgresql之使用lsn 獲取 wal文件名的實例
- 修改postgresql存儲目錄的操作方式
- Postgresql中xlog生成和清理邏輯操作