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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Greenplum集群Master与Standby相互切换

發布時間:2023/12/14 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Greenplum集群Master与Standby相互切换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Greenplum集群Master與Standby相互切換

1 概述 1

2 查看集群的基本信息 2

2.1 查看集群的配置信息 2

2.2 快速查看down segments節點 2

2.3 查看Master Standby節點的運行狀態 2

2.4 查看Master與Master Standby的配置 3

3 移除掉Standby 節點 3

3.1 移除掉Standby節點 3

3.2 查看Standby的配制 4

4 在Master節點上創建表 5

4.1 創建一張測試表 5

5 添加Standby節點 5

5.1 添加Standby節點 6

5.2 查看Standby信息 6

5.3 查看Master與Standby同步的進程信息 6

6 移除掉Master節點 7

6.1 移除掉Master節點 7

6.2 查看移除后的集群狀態 7

7 把Standby節點升級為Master 8

7.1 把Standby 節點升級為Master 8

7.2 查看切換后的集群的狀態 8

7.3 查看創建的表 8

8 把當前的Master再次切換成Standby 9

8.1 添加Standby節點 9

8.2 關閉掉當前的master節點 9

8.3 把Standby節點激活為Master節點 9

8.4 查看激活后的集群的配置 9

8.5 備份當前Master節點的數據 9

8.6 添加Standby節點 10

8.7 查看添加之后的集群的配置 10

1 概述

本文檔主要測試Greenplum集群的Master與Standby節點異常后數據同步問題,之相互切換的過程。在操作時通過手動停掉Master節點看Standby節點是否能正常的啟動,期間是否有數據不同步的問題,再通過恢復原Master節點查看集群是否正常運行。在切換期間要注意Master與Standby腦裂的情況的發生。

2 查看集群的基本信息

以下命令全部在Master節點上操作

2.1 查看集群的配置信息

查看集群的mirror配置及同步狀態 gpstate -m 查看集群的primary與mirror的安裝目錄及端口 gpstate -p

2.2 快速查看down segments節點

gpstate -s

2.3 查看Master Standby節點的運行狀態

20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:- Standby address = smdw 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:- Standby data directory = /data/master/gpseg-1 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:- Standby port = 5432 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:- Standby PID = 125235 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:- Standby status = Standby host passive 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:-------------------------------------------------------------- 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:--pg_stat_replication 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:-------------------------------------------------------------- 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:--WAL Sender State: streaming 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:--Sync state: sync 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:--Sent Location: 0/EF0B8570 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:--Flush Location: 0/EF0B8570 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:--Replay Location: 0/EF0A7948 20201012:16:05:59:070782 gpstate:gpmaster:gpadmin-[INFO]:--------------------------------------------------------------注意以上標紅的信息,特別留意每次元數據改變Sent Location / Flush Location / Replay Location 值的變化。

2.4 查看Master與Master Standby的配置

查看master的環境變量信息 cat ~/.bash_profile ************ # greenplum config info source /usr/local/greenplum-db/greenplum_path.sh export MASTER_DATA_DIRECTORY=/data/master/gpseg-1 export GPPORT=5432 export PGPORT=5432 export PGDATABASE=123456查看Master Standby 的配置 cat ~/.bash_profile ************ # greenplum config info source /usr/local/greenplum-db/greenplum_path.sh export MASTER_DATA_DIRECTORY=/data/master/gpseg-1 export GPPORT=5432 export PGPORT=5432 export PGDATABASE=123456需要導入PGPORT的端口號,如果不導入的話再執行角色切換的時候會提示PGPORT不存在

3 移除掉Standby 節點

3.1 移除掉Standby節點

[gpadmin@gpmaster ~]$ gpinitstandby -r 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:------------------------------------------------------ 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Warm master standby removal parameters 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:------------------------------------------------------ 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Greenplum master hostname = gpmaster 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Greenplum master data directory = /data/master/gpseg-1 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Greenplum master port = 5432 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Greenplum standby master hostname = gpsdw1 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Greenplum standby master port = 5432 20201015:11:17:54:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Greenplum standby master data directory = /data/master/gpseg-1 Do you want to continue with deleting the standby master? Yy|Nn (default=N): > y 20201015:11:18:04:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Removing standby master from catalog... 20201015:11:18:04:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Database catalog updated successfully. 20201015:11:18:04:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Stopping standby master on gpsdw1 20201015:11:18:04:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Removing data directory on standby master... 20201015:11:18:06:199737 gpinitstandby:gpmaster:gpadmin-[INFO]:-Successfully removed standby master

3.2 查看Standby的配制

[gpadmin@gpmaster ~]$ gpstate -f 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-Starting gpstate with args: -f 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-local Greenplum Version: 'postgres (Greenplum Database) 6.1.0 build commit:6788ca8c13b2bd6e8976ccffea07313cbab30560' 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-master Greenplum Version: 'PostgreSQL 9.4.24 (Greenplum Database 6.1.0 build commit:6788ca8c13b2bd6e8976ccffea07313cbab30560) on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 6.4.0, 64-bit compiled on Nov 1 2019 22:06:07' 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-Obtaining Segment details from master... 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-Standby master instance not configured 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-------------------------------------------------------------- 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:--pg_stat_replication 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-------------------------------------------------------------- 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:-No entries found. 20201015:11:18:17:199788 gpstate:gpmaster:gpadmin-[INFO]:--------------------------------------------------------------

4 在Master節點上創建表

4.1 創建一張測試表

[gpadmin@gpmaster ~]$ psql -d postgres psql (9.4.24) Type "help" for help. postgres=# create table test (id int) DISTRIBUTED BY(id); CREATE TABLE postgres=# insert into test select generate_series(1,50000,1); INSERT 0 50000 postgres=# select count(*) from test;count -------50000 (1 row) 創建了一張test表并插入到5W數據。

5 添加Standby節點

在master上執行添加standby操作,并查看添加后時候即使同步了元數據信息。

5.1 添加Standby節點

[gpadmin@gpmaster ~]$ gpinitstandby -s smdw smdw : standby節點的主機名字

5.2 查看Standby信息

[gpadmin@gpmaster ~]$ gpstate -f *************************** 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:--pg_stat_replication 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:-------------------------------------------------------------- 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:--WAL Sender State: streaming 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:--Sync state: sync 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:--Sent Location: 1/2800DE68 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:--Flush Location: 1/2800DE68 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:--Replay Location: 1/2800DDB0 20201015:12:16:09:207211 gpstate:gpmaster:gpadmin-[INFO]:--------------------------------------------------------------在以上可以看到數據已經元數據已經更新為了2800DDB0版本了說明元數據以及時更新了。

5.3 查看Master與Standby同步的進程信息

[gpadmin@gpmaster ~]$ ps -ef|grep streaming gpadmin 204223 204143 0 12:06 ? 00:00:04 postgres: 7001, wal receiver process streaming 1/1DF892A8 gpadmin 204224 204150 0 12:06 ? 00:00:00 postgres: 6001, wal sender process gpadmin 192.168.58.16(21448) streaming 1/1E361700 gpadmin 204225 204148 0 12:06 ? 00:00:00 postgres: 6002, wal sender process gpadmin 192.168.58.16(38264) streaming 1/1E16D648 gpadmin 204226 204146 0 12:06 ? 00:00:04 postgres: 7002, wal receiver process streaming 1/1DF7BB18 gpadmin 204227 204149 0 12:06 ? 00:00:00 postgres: 6000, wal sender process gpadmin 192.168.58.16(12705) streaming 1/1E839380 gpadmin 204228 204147 0 12:06 ? 00:00:00 postgres: 6003, wal sender process gpadmin 192.168.58.16(34466) streaming 1/1DB314C0 gpadmin 204229 204145 0 12:06 ? 00:00:04 postgres: 7003, wal receiver process streaming 1/1E1C8B90 gpadmin 204231 204144 0 12:06 ? 00:00:04 postgres: 7000, wal receiver process streaming 1/1EAD05F8 gpadmin 207140 204234 0 12:15 ? 00:00:00 postgres: 5432, wal sender process gpadmin 192.168.58.16(53979) streaming 1/293CB8B0 gpadmin 227768 201661 0 14:06 pts/23 00:00:00 grep --color=auto streaming在以上可以看出master以sender process進程向standby發送WAL同步日志。Standby節點正在以wal receiver process進程接受WAL日志。

6 移除掉Master節點

6.1 移除掉Master節點

$ pg_ctl stop -D /data/master/gpseg-1 waiting for server to shut down.... done server stopped

6.2 查看移除后的集群狀態

$ gpstate -f ***************Is the server running on host "localhost" (::1) and acceptingTCP/IP connections on port 5432? could not connect to server: Connection refusedIs the server running on host "localhost" (127.0.0.1) and acceptingTCP/IP connections on port 5432? ') exiting...

7 把Standby節點升級為Master

7.1 把Standby 節點升級為Master

在standby節點上執行以下命令 $ gpactivatestandby -d /data/master/gpseg-1

7.2 查看切換后的集群的狀態

$ gpstate -s ************** ****** Master host = smdw ****** Master postgres process ID = 208590 ****** Master data directory = /data/master/gpseg-1 ****** Master port = 5432 ****** Master current role = dispatch ****** Greenplum initsystem version = 6.1.0 build commit:6788ca8c13b2bd6e8976ccffea07313cbab30560 ****** Postgres version = 9.4.24 ****** Master standby = No master standby configured

7.3 查看創建的表

postgres=# select count(*) from test;count -------50000 (1 row)

8 把當前的Master再次切換成Standby

8.1 添加Standby節點

在原始master機器上備份master數據的目錄 $ mv /data/master/gpseg-1 /data/master/gpseg-1-back 在當前的master的節點上執行以下命令 $ gpinitstandby -s mdw ***************************** [INFO]:-Successfully created standby master on gpmaster

8.2 關閉掉當前的master節點

$ pg_ctl stop -D /data/master/gpseg-1 waiting for server to shut down.... done server stopped

8.3 把Standby節點激活為Master節點

$ gpactivatestandby -d /data/master/gpseg-1

8.4 查看激活后的集群的配置

$ gpstate -s

8.5 備份當前Master節點的數據

在當前master機器上備份master數據的目錄 $ mv /data/master/gpseg-1 /data/master/gpseg-1-back

8.6 添加Standby節點

$ gpinitstandby -s smdw

8.7 查看添加之后的集群的配置

$ gpstate - f

?

總結

以上是生活随笔為你收集整理的Greenplum集群Master与Standby相互切换的全部內容,希望文章能夠幫你解決所遇到的問題。

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