說明
Postgres-XL集群各個組件的手工配置很麻煩且容易出錯。Postgres-XL集群工具pgxc_ctl
可簡化 Postgres-XL 組件的配置,初始化, 開始, 停用, 監控和故障切換 。
構建和安裝pgxc_ctl
pgxc_ctl源碼附帶Postgres-XL源碼。在構建 pgxc_ctl之前,你應該先構建Postgres-XL二進制文件,如:
$ cd your Postgres-XL build directory
$ ./configure your configuration option
$ make
請注意,可以不安裝Postgres-XL而直接安裝 pgxc_ctl。也請注意,Postgres-XL 頂層make和make install不會附帶安裝pgxc_ctl,你應該分別構建安裝它。
因此,你可以用以下方法安裝:
$ cd contrib/pgxc_ctl
$ make
$ make install
pgxc_ctl commands
創建
add gtm master name host port dir
add gtm slave name host port dir
add gtm_proxy name host port dir
add coordinator master name host port pooler dir extraServerConf extraPgHbaConf
add coordinator slave name host port pooler dir archDir
add datanode master name host port pooler dir xlogdir extraServerConf extraPgHbaConf
add datanode slave name host port pooler dir xlogdir archDir
初始化
init [force] all
init [force] nodename ...
init [force] gtm [ master | slave | all ]
init [force] gtm_proxy [ all | nodename ... ]
init [force] coordinator nodename ...
init [force] coordinator [ master | slave ] [ all | nodename ... ]
init [force] datanode nodename ...
init [force] datanode [ master | slave ] [ all | nodename ... ]
初始化過程中,每個組件的工作目錄如果不存在,將會被創建。如果指定[force],將會工作目錄下的所有內容將會被移除。不使用[force],則不會清除已經存在目錄下的內容。
kill
kill all
kill nodename ...
kill gtm [ master | slave | all ]
kill gtm_proxy [ all | nodename ... ]
kill coordinator nodename ...
kill coordinator [ master | slave ] [ all | nodename ... ]
kill datanode nodename ...
kill datanode [ master | slave ] [ all | nodename ... ]
如果被指定kill的節點有master和slave,則兩個節點將會被關閉。
日志
log [ variable | var ] *varname*
log [ message | msg ] *message_body*
Prints the specified contents to the log file. Variable or var option writes specified variable name and its value. Message or msg option writes specified message.
monitor all
monitor nodename ...
monitor gtm [ master | slave | all ]
monitor gtm_proxy [ all | nodename ... ]
monitor coordinator nodename ...
monitor coordinator [ master | slave ] [ all | nodename ... ]
monitor datanode nodename ...
monitor datanode [ master | slave ] [ all | nodename ... ]
監控指定節點是否行動
reconnect gtm_proxy [ all | nodename ... ]
當failover到slave GTM之后,需要執行重新連接指定的節點的操作。
刪除節點
remove gtm master [ clean ]
remove gtm slave [ clean ]
remove gtm_proxy nodename [ clean ]
remove coordinator [ master| slave ] nodename [ clean ]
remove datanode [ master| slave ] nodename [ clean ]
開始節點
start all
start nodename ...
start gtm [ master | slave | all ]
start gtm_proxy [ all | nodename ... ]
start coordinator nodename ...
start coordinator [ master | slave ] [ all | nodename ... ]
start datanode nodename ...
start datanode [ master | slave ] [ all | nodename ... ]
暫停節點
stop [ -m smart | fast | immediate ] all
stop gtm [ master | slave | all ]
stop gtm_proxy [ all | nodename ... ]
stop [ -m smart | fast | immediate ] coordinator nodename ...
stop [ -m smart | fast | immediate ] coordinator [ master | slave ] [ all | nodename ... ]
stop [ -m smart | fast | immediate ] datanode nodename ...
stop [ -m smart | fast | immediate ] datanode [ master | slave ] [ all | nodename ... ]
取消GTM中的注冊節點
當節點崩潰啟動新節點時,可能需要注銷在GTM中注冊的節點。
unregister unregister_option ...
# unregister_option有以下參數:
-n name: #指定需要注冊的節點
-Z { gtm | gtm_proxy | gtm_proxy_postmaster | coordinator | datanode } # 指定節點類別