圈子推荐
查看所有吧>>
活跃用户
    vastbase一主两从搭建

    1 主备库操作

    1.1 以root用户修改hosts文件

    $ vi /etc/hosts
    192.168.10.133 master
    192.168.10.130 slave1
    192.168.10.132 slave2

    1.2 创建用户及数据库目录
    --创建用户
    $ useradd -rmU vastbase
    $ mkdir /home/vastbase/vastbase
    $ mkdir -p /data/vastbase
    $ chmod 700 /data/vastbase
    $ chown -R vastbase:vastbase /data/vastbase

    1.3 安装包

    解压Vastbase安装包到/home/vastbase/vastbase目录
    $ tar -xzvf vastbase-installer-el7.x86_64-V2.2.2-20201223.tar.gz -C /home/vastbase/vastbase

    1.4 安装环境检查

    切换到 vastbase 用户,执行脚本安装数据库。第一步是检查安装包是否完整(防篡改)。
    $ chown -R vastbase.vastbase /home/vastbase/ 
    ---请显式地在 /etc/systemd/logind.conf 中设置 RemoveIPC=no
    ---运行命令 systemctl daemon-reload 
    ---运行命令 systemctl restart systemd-logind 
    ---请显式地在 /usr/lib/systemd/system/systemd-logind.service 中设置 RemoveIPC=no
    $ su - vastbase
    $ cd /home/vastbase/vastbase/vastbase-installer
    $ ./vastbase_installer

    检查无误则输入继续。

    1.5 系统配置信息

    打印系统配置信息,输入继续。

    1.6 依赖检查

    检查服务器是否已经安装需要的依赖包,若都已经安装,输入继续。

    1.7 安装数据库选项

    典型安装为安装过程的参数按默认值设置,如需自定义安装输入 2 并输入继续

    1.8 设置数据库超级用户密码

    数据库操作用户密码由大小写字母加数字组成。

    1.9 设置数据库安装路径

    输入前面创建的数据库安装路径,或者输入使用默认路径 (/home/vastbase/local/vastbase)。

    1.10 设置数据库实例化路径

    输入前面创建的数据库实例化路径,或者输入使用默认路径 (/home/vastbase/data/vastbase)。

    1.11 配置监听端口

    输入监听端口,本文设置端口为26000,默认为 5432。

    1.12 配置最大连接数

    输入数据库最大连接数,默认为 500。

    1.13 配置共享内存

    输入共享内存大小,默认为(内存/4)MB。

    1.14 安装选项查看

    查看设置的安装选项,输入继续。

    1.15 安装

    安装过程包括安装数据库、实例化数据库、配置数据库参数和配置用户环境变量。提示 安装完成后输入退出。

    1.16 初始化数据库运行环境

    $ source /home/vastbase/.bashrc 

    1.17 主备之间建立互信

    $ su - vastbase
    $ ssh-keygen -t rsa
    $ ssh-copy-id -i /home/vastbase/.ssh/id_rsa.pub vastbase@192.168.10.133
    $ ssh-copy-id -i /home/vastbase/.ssh/id_rsa.pub vastbase@192.168.10.130
    $ ssh-copy-id -i /home/vastbase/.ssh/id_rsa.pub vastbase@192.168.10.132
    ##验证互信关系
    $ ssh 192.168.10.133
    $ ssh 192.168.10.130
    $ ssh 192.168.10.132
    如果相互之间可以免密ssh连接,则说明互信建立成功。

    1.18 主备设置配置文件
    $ cd /data/vastbase
    $ vi postgresql.conf
    #####Master And Slave Configurations
    wal_level=hot_standby
    hot_standby=on
    enable_remote_excute=off
    replication_type = 1
    application_name = 'master'
    recovery_max_workers = 4
    vastbase_login_info=false
    password_encryption_type=1
    replconninfo1 = 'localhost=192.168.10.133 localport=26002 localheartbeatport=26004 localservice=26006 remotehost=192.168.10.130 remoteport=26002 remoteheartbeatport=26004 remoteservice=26006 remotehost=192.168.10.132 remoteport=26002 remoteheartbeatport=26004 remoteservice=26006'
    synchronous_commit=on
    synchronous_standby_names = 'slave1,slave2'
    remote_read_mode=non_authenticatio


    #####Slave1
    application_name = 'slave1'
    replconninfo1 = 'localhost=192.168.10.130 localport=26002 localheartbeatport=26004 localservice=26006 remotehost=192.168.10.133 remoteport=26002 remoteheartbeatport=26004  remoteservice=26006 remotehost=192.168.10.132 remoteport=26002 remoteheartbeatport=26004  remoteservice=26006


    #####Slave2
    application_name = 'slave2'
    replconninfo1 = 'localhost=192.168.10.132 localport=26002 localheartbeatport=26004 localservice=26006 remotehost=192.168.10.133 remoteport=26002 remoteheartbeatport=26004  remoteservice=26006 remotehost=192.168.10.130 remoteport=26002 remoteheartbeatport=26004  remoteservice=26006'

    2 主库操作
    $ gs_ctl -M primary start 
    $ ps -ef|grep vastbase
    $ pstree -p 21388

    3 备库操作

    $ vb_ctl build
    $ ps -ef|grep vastbase
    $ pstree -p 16588 

    4 主备检查

    4.1 主备库状态检查

    $ vb_ctl query 

    4.2 主备库同步延迟状态检查

    ##主库验证SQL:
    select pid,state,client_addr,pg_size_pretty(pg_xlog_location_diff(pg_current_xlog_insert_location(),sender_sent_location)) sent_delay,pg_size_pretty(pg_xlog_location_diff(pg_current_xlog_insert_location(),receiver_replay_location)) replay_delay,sync_priority,sync_state from pg_stat_replication ;


    ##备库验证SQL
    select pg_xlog_location_diff(pg_current_xlog_location(),receiver_replay_location)from pg_stat_replication;


    select pg_is_in_recovery();   

    • 分享到:
    排序方式:回复时间 共有0条评论