lightdb數據庫 - 高可用部署實踐

說明

    本示例展示將兩個lightdb單節點通過配置及命令操作改造成一主一從高可用節點。

    下文中的

    $LTHOME·表示數據庫的安裝目錄

    $LTDATA 表示數據庫的實例目錄

具體步驟

  1. 分別在兩臺服務器中部署lightdb單實例節點,本示例部署配置如下:
    1. ip: 10.10.1.1  port:5432
    2. ip: 10.10.1.2  port:5432

後續將10.10.1.1設置爲主節點,10.10.1.2設置爲從節點。

2. 分別修改兩個數據庫實例的配置文件$LTDATA/lightdb.conf中的shared_preload_libraries屬性,添加ltcluster例如:

之後重啓數據庫 lt_ctl restart

3. 分別在兩個數據庫中執行以下SQL:

1.	create extension ltcluster;  
2.	create role ltcluster superuser password 'ltcluster' login;  
3.	create database ltcluster owner ltcluster; 
  1. 主節點中的 $LTHOME/etc/ltcluster下創建ltcluster.conf配置文件,內容如下(以下IP、端口、路徑均針對主節點數據庫,此處僅作舉例):
 
node_id=1  
node_name='10.10.1.1:5432'  
conninfo='host=10.10.1.1 port=5432 user=ltcluster dbname=ltcluster connect_timeout=2'  
data_directory='$LTDATA'  
pg_bindir='$LTHOME/bin'  
failover='automatic'  
promote_command='$LTHOME/bin/ltcluster standby promote -f $LTHOME/etc/ltcluster/ltcluster.conf'  
follow_command='$LTHOME/bin/ltcluster standby follow -f $LTHOME/etc/ltcluster/ltcluster.conf  --upstream-node-id=%n'  
restore_command='cp $LTHOME/archive/%f %p'  
monitoring_history=true #(Enable monitoring parameters)  
monitor_interval_secs=2 #(Define monitoring data interval write time parameter)  
connection_check_type='ping'  
reconnect_attempts=3 #(before failover,Number of attempts to reconnect to primary before failover(default 6))  
reconnect_interval=5  
standby_disconnect_on_failover =true  
failover_validation_command='$LTHOME/etc/ltcluster/ltcluster_failover.sh "$LTHOME" "$LTDATA"'  
log_level=INFO  
log_facility=STDERR  
log_file='$LTHOME/etc/ltcluster/ltcluster.log'  
shutdown_check_timeout=1800  
use_replication_slots=true  
check_lightdb_command='$LTHOME/etc/ltcluster/check_lightdb.sh'  
check_lightdb_interval=10  

        需要將$LTHOME$LTDATA替換成絕對路徑

5. 主節點執行如下命令:

ltcluster primary register -f $LTHOME/etc/ltcluster/ltcluster.conf -F    
ltclusterd -d -f $LTHOME/etc/ltcluster/ltcluster.conf -p $LTHOME/etc/ltcluster/ltcluster.pid 

主節點註冊完成

6. 停止從節點服務lt_ctl stop

在從節點$LTHOME/etc/ltcluster目錄下創建ltcluster.conf配置文件,內容如下(以下IP、端口、路徑均針對從節點數據庫,此處僅作舉例):

node_id=2  
node_name='10.10.1.2:5432'  
conninfo='host=10.10.1.2 port=5432 user=ltcluster dbname=ltcluster connect_timeout=2'  
data_directory='$LTDATA'  
pg_bindir='$LTHOME/bin'  
failover='automatic'  
promote_command='$LTHOME/bin/ltcluster standby promote -f $LTHOME/etc/ltcluster/ltcluster.conf'  
follow_command='$LTHOME/bin/ltcluster standby follow -f $LTHOME/etc/ltcluster/ltcluster.conf  --upstream-node-id=%n'  
restore_command='cp $LTHOME/archive/%f %p'  
monitoring_history=true #(Enable monitoring parameters)  
monitor_interval_secs=2 #(Define monitoring data interval write time parameter)  
connection_check_type='ping'  
reconnect_attempts=3 #(before failover,Number of attempts to reconnect to primary before failover(default 6))  
reconnect_interval=5  
standby_disconnect_on_failover =true  
failover_validation_command='$LTHOME/etc/ltcluster/ltcluster_failover.sh "$LTHOME" "$LTDATA"'  
log_level=INFO  
log_facility=STDERR  
log_file='$LTHOME/etc/ltcluster/ltcluster.log'  
shutdown_check_timeout=1800  
use_replication_slots=true  
check_lightdb_command='$LTHOME/etc/ltcluster/check_lightdb.sh'  
check_lightdb_interval=10  

需要將$LTHOME$LTDATA替換成絕對路徑

  1. 配置數據庫登錄免密
    1. 配置路徑:cd $LTDATA
    2. 配置文件:  vim lt_hba.conf
    3. 配置內容:在主庫要配置從庫的IP地址,在從庫要配置主庫的IP地址
host  all  lightdb    IP/32     trust
host  replication ltcluster    IP/32     trust
host  ltcluster   ltcluster    IP/32     trust

改完之後重新加載 lt_ctl reload

8. 備庫克隆,執行如下命令

ltcluster -h $DN1_PRIMARY_IP -p $DN1_PRIMARY_PORT -U ltcluster -d ltcluster f $DN2_5435_HOME/etc/ltcluster/ltcluster.conf standby clone -F 

      替換

    1. $DN1_PRIMARY_IP:主庫ip
    2. $DN1_PRIMARY_PORT 主庫端口
    3. $DN2_5435_HOME  從庫安裝路徑

克隆時間根據主庫大小時間不定,如果主庫和從庫端口號不同的話,從庫需求修改$LTDATA/lightdb.conf,port改爲從庫自己的端口號。

啓動從庫:lt_ctl start

  1. 從節點註冊,在從節點執行以下命令
ltcluster standby register -f $LTHOME/etc/ltcluster/ltcluster.conf -F  
ltclusterd -d -f $LTHOME/etc/ltcluster/ltcluster.conf -p $LTHOME/etc/ltcluster/ltcluster.pid 
  1. 查看主從狀態,主節點執行如下命令:
ltcluster -f $LTHOME/etc/ltcluster/ltcluster.conf cluster show  
ltcluster -f $LTHOME/etc/ltcluster/ltcluster.conf service status  
 

查看:

  1. Role: 是否正確;
  2. status:應該爲running;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章