一、前期準備
1. 關閉防火墻,selinux
systemctl disable firewalld.service systemctl stop firewalld.service setenforce=0 sed -i '/^SELINUX=/c'SELINUX=disabled /etc/selinux/config
2. 安裝依賴包
yum install libaio-devel -y
3. 創建相關目錄,用戶,組
groupadd dbgrp -g 2000 useradd omm -g 2000 -u 2000 echo "Enmo@123" | passwd --stdin omm mkdir -p /opt/mogdb/software chown -R omm:dbgrp /opt/
4. 上傳并解壓二進制文件
[root@mogdb-kernel-0001 software]# pwd /opt/mogdb/software [root@mogdb-kernel-0001 software]# ls -lrt total 90236 -r-------- 1 root root 92401412 Jun 13 06:14 MogDB-2.0.0-openEuler-64bit.tar.bz2 chown omm:dbgrp MogDB-2.0.0-openEuler-64bit.tar.bz2 su - omm cd /opt/mogdb/software/ tar -xf MogDB-2.0.0-openEuler-64bit.tar.bz2
二、初始化數據庫(單機)
1. 配置環境變量
echo "export GAUSSHOME=/opt/mogdb/software" >> /home/omm/.bashrc && \ echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omm/.bashrc && \ echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omm/.bashrc source /home/omm/.bashrc
2. init數據庫
bin/gs_initdb --pgdata=/opt/mogdb/data --nodename=primary --pwpasswd=Enmo@123 --encoding=UTF-8 --locale=en_US.UTF-8
3. 修改初始化參數
echo "port=26000" >> /opt/mogdb/data/postgresql.conf echo "listen_addresses = '0.0.0.0'" >> /opt/mogdb/data/postgresql.conf echo "password_encryption_type = 0" >> /opt/mogdb/data/postgresql.conf echo "log_directory = 'pg_log'" >> /opt/mogdb/data/postgresql.conf echo "remote_read_mode=non_authentication" >> /opt/mogdb/data/postgresql.conf echo "host all all 0.0.0.0/0 md5" >> /opt/mogdb/data/pg_hba.conf
4. 啟動數據庫
gs_ctl start -D /opt/mogdb/data
至此單機安裝完成
三、主備安裝
1. 主庫操作
- 配置連接通道
echo "replconninfo1='localhost=172.16.0.106 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.245 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004' " >> /opt/mogdb/data/postgresql.conf
localhost為主庫IP,remotehost為備庫IP
- 將主庫以primary方式啟動
gs_ctl restart -D /opt/mogdb/data/ -M primary
2. 備庫操作
- 前期準備工作如上(一)
- 配置環境變量
echo "export GAUSSHOME=/opt/mogdb/software" >> /home/omm/.bashrc && \ echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omm/.bashrc && \ echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omm/.bashrc source /home/omm/.bashrc - 將主庫的配置文件傳到備庫 scp /opt/mogdb/data/pg_hba.conf /opt/mogdb/data/postgresql.conf 172.16.0.245:/opt/mogdb/data/
- 配置連接通道,將localhost和remotehost對調.
sed -i “/^replconninfo1/creplconninfo1=‘localhost=172.16.0.245 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.106 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004’” /opt/mogdb/data/postgresql.conf
localhost為備庫IP,remotehost為主庫IP
- 構建主備關系
gs_ctl build -D /opt/mogdb/data/ -b full -M standby
- 查詢主備狀態
- 主庫
[omm@mogdb-kernel-0001 data]$ gs_ctl query -D /opt/mogdb/data/ [2021-06-13 07:51:41.119][159054][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data HA state: local_role : Primary static_connections : 1 db_state : Normal detail_information : Normal Senders info: sender_pid : 159041 local_role : Primary peer_role : Standby peer_state : Normal state : Streaming sender_sent_location : 0/14000258 sender_write_location : 0/14000258 sender_flush_location : 0/14000258 sender_replay_location : 0/14000258 receiver_received_location : 0/14000258 receiver_write_location : 0/14000258 receiver_flush_location : 0/14000258 receiver_replay_location : 0/14000258 sync_percent : 100% sync_state : Sync sync_priority : 1 sync_most_available : Off channel : 172.16.0.106:26001-->172.16.0.245:60856 Receiver info: No information
- 備庫
[omm@mogdb-kernel-0002 data]$ gs_ctl query -D /opt/mogdb/data/ [2021-06-13 07:51:32.743][123204][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data HA state: local_role : Standby static_connections : 1 db_state : Normal detail_information : Normal Senders info: No information Receiver info: receiver_pid : 123194 local_role : Standby peer_role : Primary peer_state : Normal state : Normal sender_sent_location : 0/14000140 sender_write_location : 0/14000140 sender_flush_location : 0/14000140 sender_replay_location : 0/14000140 receiver_received_location : 0/14000140 receiver_write_location : 0/14000140 receiver_flush_location : 0/14000140 receiver_replay_location : 0/14000140 sync_percent : 100% channel : 172.16.0.245:60856<--172.16.0.106:26001
至此主備已安裝完成
四、主備級聯安裝
1. 主備安裝如上(一,二,三)
2. 添加復制通道
-
主庫操作
gsql -d postgres -p26000 -c “alter system set replconninfo2 to ‘localhost=172.16.0.106 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.127 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004 iscascade=true’;” -
備庫操作
gsql -d postgres -p26000 -c “alter system set replconninfo2 to ‘localhost=172.16.0.245 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.127 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004 iscascade=true’;”
3. 級聯庫操作
- 前期準備工作如上(一)
- 配置環境變量
echo "export GAUSSHOME=/opt/mogdb/software" >> /home/omm/.bashrc && \ echo "export PATH=\$GAUSSHOME/bin:\$PATH " >> /home/omm/.bashrc && \ echo "export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH" >> /home/omm/.bashrc source /home/omm/.bashrc
- 將備庫的配置文件傳到級聯庫
scp /opt/mogdb/data/pg_hba.conf /opt/mogdb/data/postgresql.conf 172.16.0.127:/opt/mogdb/data/
- 配置連接通道
sed -i "/^replconninfo1/creplconninfo1='localhost=172.16.0.127 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.106 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'" /opt/mogdb/data/postgresql.conf sed -i "/replconninfo2/creplconninfo2='localhost=172.16.0.127 localport=26001 localheartbeatport=26005 localservice=26004 remotehost=172.16.0.245 remoteport=26001 remoteheartbeatport=26005 remoteservice=26004'" /opt/mogdb/data/postgresql.conf
localhost為級聯IP,remotehost為主庫IP和備庫IP。
- 構建主備關系
gs_ctl build -D /opt/mogdb/data/ -b full -M cascade_standby
4 查看主備級聯狀態
- 主庫
[omm@mogdb-kernel-0001 ~]$ gs_ctl query -D /opt/mogdb/data [2021-06-13 08:37:03.281][207069][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data HA state: local_role : Primary static_connections : 2 db_state : Normal detail_information : Normal Senders info: sender_pid : 206143 local_role : Primary peer_role : Standby peer_state : Normal state : Streaming sender_sent_location : 0/1A000140 sender_write_location : 0/1A000140 sender_flush_location : 0/1A000140 sender_replay_location : 0/1A000140 receiver_received_location : 0/1A000140 receiver_write_location : 0/1A000140 receiver_flush_location : 0/1A000140 receiver_replay_location : 0/1A000140 sync_percent : 100% sync_state : Sync sync_priority : 1 sync_most_available : Off channel : 172.16.0.106:26001-->172.16.0.245:34586 Receiver info: No information
- 備庫
[omm@mogdb-kernel-0002 ~]$ gs_ctl query -D /opt/mogdb/data [2021-06-13 08:37:09.128][147065][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data HA state: local_role : Standby static_connections : 2 db_state : Normal detail_information : Normal Senders info: sender_pid : 147043 local_role : Standby peer_role : Cascade Standby peer_state : Normal state : Streaming sender_sent_location : 0/1A000140 sender_write_location : 0/1A000140 sender_flush_location : 0/1A000140 sender_replay_location : 0/1A000140 receiver_received_location : 0/1A000140 receiver_write_location : 0/1A000140 receiver_flush_location : 0/1A000140 receiver_replay_location : 0/1A000140 sync_percent : 100% sync_state : Async sync_priority : 0 sync_most_available : Off channel : 172.16.0.245:26001-->172.16.0.127:49110 Receiver info: receiver_pid : 146771 local_role : Standby peer_role : Primary peer_state : Normal state : Normal sender_sent_location : 0/1A000140 sender_write_location : 0/1A000140 sender_flush_location : 0/1A000140 sender_replay_location : 0/1A000140 receiver_received_location : 0/1A000140 receiver_write_location : 0/1A000140 receiver_flush_location : 0/1A000140 receiver_replay_location : 0/1A000140 sync_percent : 100% channel : 172.16.0.245:34586<--172.16.0.106:26001
- 級聯庫
[omm@mogdb-kernel-0003 data]$ gs_ctl query -D /opt/mogdb/data [2021-06-13 08:36:56.223][273241][][gs_ctl]: gs_ctl query ,datadir is /opt/mogdb/data HA state: local_role : Cascade Standby static_connections : 2 db_state : Normal detail_information : Normal Senders info: No information Receiver info: receiver_pid : 273237 local_role : Cascade Standby peer_role : Standby peer_state : Normal state : Normal sender_sent_location : 0/1A000140 sender_write_location : 0/1A000140 sender_flush_location : 0/1A000140 sender_replay_location : 0/1A000140 receiver_received_location : 0/1A000140 receiver_write_location : 0/1A000140 receiver_flush_location : 0/1A000140 receiver_replay_location : 0/1A000140 sync_percent : 100% channel : 172.16.0.127:49110<--172.16.0.245:26001
至此主備級聯安裝完成
最后修改時間:2022-05-26 16:31:03
「喜歡這篇文章,您的關注和贊賞是給作者最好的鼓勵」
關注作者
【版權聲明】本文為墨天輪用戶原創內容,轉載時必須標注文章的來源(墨天輪),文章鏈接,文章作者等基本信息,否則作者和墨天輪有權追究責任。如果您發現墨天輪中有涉嫌抄襲或者侵權的內容,歡迎發送郵件至:contact@modb.pro進行舉報,并提供相關證據,一經查實,墨天輪將立刻刪除相關內容。




