参考文档
使用sys_basebackup搭建主备流复制集群环境 - 问答 - 金仓社区
https://help.kingbase.com.cn/login#id0
主从搭建,数据库版本KingbaseEsR3
组网信息:
主机os: 192.168.81.128
备机os: 192.168.81.129
准备工作,两台机器上都需要提前安装好kingbaseesR3
一、物理同步的步骤
1、配置主机kingbase.conf文件,修改以下几项:
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 10 #wal发送进程的最大数量,需大于等于要连接的备机数量
max_replication_slots = 10 #复制槽的最大数量,需大于等于要连接的备机数量
hot_standby = on #主要用来备库配置,主库配置无影响
wal_keep_segments = 32
wal_log_hints = on
full_page_writes = on
2、配置主机sys_hba.conf文件(主要是对replication privilege),修改以下几项:
local replication system md5
host replication system 127.0.0.1/32 md5
host replication system ::1/128 md5
host replication system 0.0.0.0/0 md5 #新增行
3、使用sys_basebackup命令创建备机(在备用机器上执行)
./bin/sys_basebackup -D slave -F p -X stream -v -P -U system -W 123456 -p [主机端口号]
./sys_basebackup -D /opt/Kingbase/ES/V8/data -F p -X stream -v -P -h 192.168.81.128 -U SYSTEM -W 123456 -p 54321
4、配置recovery.conf文件,放入备机的数据目录下,修改以下几项:
recovery_target_timeline = 'latest' #说明这个物理同步到最新的数据
standby_mode = on #说明此节点是从服务器
primary_conninfo = 'host=192.168.45.131 port=54321 user=system password=
MTIzNDU2Cg== application_name=node1'
#MTIzNDU2Cg==为主库登陆密码加密
后的值
primary_slot_name = 'slot_node1' #复制槽名称
Note
配置primary_conninfo时,password需要进行base64加密,加密方法为:echo password|base64
5、启动备机数据库,使用ksql连接主机数据库,查看同步是否成功
#启动备机数据库
./bin/sys_ctl -D slave start
./sys_ctl stop -D /opt/Kingbase/ES/V8/data
./sys_ctl start -D /opt/Kingbase/ES/V8/data
./sys_ctl status -D /opt/Kingbase/ES/V8/data
#连接主机数据库
./bin/ksql -d TEST -U system -W 123456 -p [主机端口号]
#连接进主机后,执行以下SQL查看流复制
select * from sys_stat_replication;
附(简单命令):
https://help.kingbase.com.cn/doc-view-4383.html
在安装路径下的Server下的bin下
su - kingbase
kingbase -V
netstat -an|grep 54321
ps aux |grep Kingbase
ps -ef|grep kingbase
//启动数据库
./kingbase -D /usr/local/kingbase/data
./kingbase -D /opt/Kingbase/ES/V7/data&
//sys_ctl启动数据库
或 sys_ctl start -l logfile
//停止与查看状态
sys_ctl stop -D /usr/local/kingbase/data
sys_ctl status -D /opt/Kingbase/ES/V7/data
./sys_ctl stop -D /opt/Kingbase/ES/V8/data
./sys_ctl start -D /opt/Kingbase/ES/V8/data
./sys_ctl status -D /opt/Kingbase/ES/V8/data
//连接
./ksql -USYSTEM -W123456 -p54321 TEST
./isql -h 127.0.0.1 -U SYSTEM -W 1q2w3e -p 54321 -d testdb
// 创建用户与赋予角色
CREATE USER cs CONNECTION LIMIT - 1 PASSWORD '123456';
ALTER USER cs SUPERUSER;
ALTER USER cs CREATEDB;
ALTER USER cs CREATEROLE;
ALTER USER cs LOGIN;
ALTER USER cs REPLICATION;
//创建数据库
create database testgov with owner='SYSTEM' ENCODING UTF8;
//逻辑备份
./sys_dump -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -f
/home/KingbaseES/V8R3/bin/dumpfile.dmp TEST
./sys_dumpall -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -f
/home/KingbaseES/V8R3/bin/dumpfile.dmp TEST
//还原备份文件中的所有内容
./ksql -USYSTEM -WSYSTEM -dDEMO2 -p54321 -f G:\2020\bak\dumpfile.dmp
./sys_restore -h 192.168.1.8 -p 54321 -U SYSTEM -W MANAGER -d TEST2 c:\dumpfile.dmp
select version();
List of databases;
select datname from sys_database;
select * from sys_user;
select table_name,num_rows from user_tables;
select * from all_tables;
./sys_basebackup -D /opt/Kingbase/ES/V8/data -F p -X stream -v -P -h 192.168.81.128 -U SYSTEM -W 123456 -p 54321