1. 程式人生 > 資料庫 >postgresql運維之遠端遷移操作

postgresql運維之遠端遷移操作

背景:高可用架構版本。

主備分別部署在機器A和B上,現在要將其分別遷移到機器C和D上。

思路:

1、首先根據源例項的備份(雲盤上可用snapshot),建立一個mirror例項,mirror包含兩個節點,分別部署在C和D上。

2、在源例項主節點hba.conf中增加mirror主節點的ip的設定,允許源例項主節點接受來自mirror主節點的連線。

3、mirror例項主節點,建立recovery.conf檔案,設定primary_conninfo指向源主節點。啟動mirror主節點,建立源例項主到mirror例項主節點的複製關係。

4、在mirror例項主節點hba.conf中增加mirror備節點的ip。允許mirror主節點接受來自mirror備節點的連線。

5、mirror例項備節點,建立recovery.conf檔案,設定primary_conn指向mirror例項主節點。啟動備節點,建立mirror例項主節點到mirror例項備節點的複製關係。

6、提升mirror例項主節點為cluster master。

postgresql 備提升為主的方式:

pg_ctl方法:在備庫主機執行pg_ctl promote shell指令碼

觸發器檔案方式:備庫配置recover.conf檔案的trigger_file引數,之後在備庫主機上建立觸發器檔案。

補充:Postgresql遷移資料檔案存放位置

1. POSTGRESQL的安裝

centos7 裡面預設的pgsql的版本是 9.2.4 如果想用更高的版本需要執行以下如下的命令

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

然後啟動並且設定為開機啟動

systemctl enable postgresql-11 
systemctl start postgresql-11

啟動之後進行資料庫初始化

11 以上的系統 還是比較簡單的 直接執行

postgresql-setup initdb 就可以初始化資料庫

設定密碼等工作

su - postgres

登入資料庫

psql -U postgres

修改密碼

ALTER USER postgres WITH PASSWORD 'Test6530' 設定密碼 

\q退出資料庫

2. 修改資料庫使之能夠被遠端連結

資料庫的配置檔案預設為:

檢視服務狀態可得

postgresql運維之遠端遷移操作

進入 data目錄

/var/lib/pgsql/11/data/
/usr/lib/systemd/system/postgresql-11.service
cd /var/lib/pgsql/11/data/

修改pg_hba.conf 即可

3. 建立新的資料目錄

mkdir /home/pgdata

4.關閉pgsql

systemctl stop postgresql-11

5. 複製原來的檔案

cp -R /var/lib/pgsql/11/data/* /home/pgdata

6.修改許可權

chown -R postgres:postgres /home/pgdata
chmod 750 /home/pgdata -R

7. 修改systemd 裡面的配置檔案

vim /usr/lib/systemd/system/postgresql-11.service

修改PGDATA的指向

8.執行命令重啟

systemctl daemon-reload
systemctl start postgresql-11

9. 刪除原始PGDATA 裡面的內容 重啟虛擬機器驗證。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。