数据库版本:

TEST=# select version();
version
----------------------------------------------------------------------------------------------------------------------
KingbaseES V008R006C005B0041 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
(1 row)

主机节点信息:

系统环境准备:(参考金仓官方文档)

https://help.kingbase.com.cn/stage-api/profile/document/kes/v8r6/html/highly/highly-tools/cluster-use/cluster-use-2.html

一、配置主库环境

1、启动数据库服务

[kingbase@node101 ~]$ cd /opt/Kingbase/ES/V8R6_041/Server/bin
[kingbase@node101 bin]$ ./sys_ctl start -D /data/kingbase/v8r6_041/data
waiting for server to start....2022-03-29 22:07:19.775 CST [15822] LOG: sepapower extension initialized
......
server started

2、建立测试数据

[kingbase@node101 bin]$ ./ksql -U SYSTEM TEST
TEST=# create database prod;
CREATE DATABASE
TEST=# \c prod
You are now connected to database "prod" as user "SYSTEM".
prod=# create table t1 (id int ,name varchar(10));
CREATE TABLE prod=# insert into t1 values (generate_series(1,10000),'usr'||generate_series(1,10000));
INSERT 0 10000
prod=# select count(*) from t1;
count
-------
10000
(1 row)

3、配置sys_hba.conf支持远程主机replication

重新加载sys_hba.conf:
TEST=# select sys_reload_conf();
sys_reload_conf
-----------------
t
(1 row)

4、主备流复制参数配置

5、主库创建replication slot

二、配置备库系统环境

1、安装数据库软件(和主库相同版本)

=注意:只需安装软件,不需要创建数据库。=

2、创建备库数据存储目录(尽量和主库一致)

[root@node102 soft]# mkdir -p /data/kingbase/v8r6_041/data
[root@node102 soft]# chown -R kingbase.kingbase /data/kingbase/

三、手工clone流复制备库

1、查看备库端sys_basebackup工具

2、通过sys_basebackup克隆备库

[kingbase@node102 bin]$ ./sys_basebackup -h 192.168.1.101 -U SYSTEM  -D /data/kingbase/v8r6_041/data -P -v -X stream -F p -S slot_node102
Password:
sys_basebackup: initiating base backup, waiting for checkpoint to complete
sys_basebackup: checkpoint completed
sys_basebackup: write-ahead log start point: 0/33000028 on timeline 1
sys_basebackup: starting background WAL receiver
556390/556390 kB (100%), 1/1 tablespace
sys_basebackup: write-ahead log end point: 0/330000F8
sys_basebackup: waiting for background process to finish streaming ...
sys_basebackup: syncing data to disk ...
sys_basebackup: base backup completed

参数说明:
-h 指定所连接的主库的ip
-U 连接数据库主库的用户
-P 显示进度详细信息
-v 显示备份详情
-X 指定wal日志获取模式
-F 备份文件的输出格式(plain或tar)

四、配置备库流复制环境

1、创建备库标识文件

[kingbase@node102 data]$ pwd
/data/kingbase/v8r6_041/data [kingbase@node102 data]$ touch standby.signal

2、编辑备库连接字符串

[kingbase@node102 data]$ cat kingbase.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command. primary_conninfo='host=192.168.1.101 user=system password=123456 port=54321 application_name=node102 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3'
recovery_target_timeline = 'latest'
primary_slot_name = 'slot_node102'

=如上所示,在kingbase.auto.conf中配置明文口令有一点的风险,也可以采取以下方案:=

1)配置主库端sys_hba.conf文件,支持指定的网段做‘replication’采用‘trust’方式认证。

2)在备库kingbase.auto.conf文件中,不指定用户的口令。

五、启动备库流复制服务

1、配置data目录权限

[kingbase@node102 bin]$ chmod 700 /data/kingbase/v8r6_041/data

2、启动备库数据库服务

[kingbase@node102 bin]$ ./sys_ctl start -D /data/kingbase/v8r6_041/data
waiting for server to start....2022-03-29 22:46:49.429 CST [9781] LOG: sepapower extension initialized
......
server started

3、查看备库数据库进程

[kingbase@node102 bin]$ ps -ef |grep kingbase
/opt/Kingbase/ES/V8R6_041/KESRealPro/V008R006C005B0041/Server/bin/kingbase -D /data/kingbase/v8r6_041/data
kingbase 9782 9781 0 22:46 ? 00:00:00 kingbase: logger
kingbase 9783 9781 0 22:46 ? 00:00:00 kingbase: startup waiting for 000000010000000000000034
kingbase 9784 9781 0 22:46 ? 00:00:00 kingbase: checkpointer
kingbase 9785 9781 0 22:46 ? 00:00:00 kingbase: background writer
kingbase 9786 9781 0 22:46 ? 00:00:00 kingbase: stats collector

六、验证主备流复制

1、查看replication slots

test=# select * from sys_replication_slots;
slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed
_flush_lsn
--------------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+----------
-----------
slot_node102 | | physical | | | f | t | 21977 | | | 0/34000130 |
slot_node101 | | physical | | | f | f | | | | |
(2 rows)

2、查看主备流复制状态

test=# select * from sys_stat_replication;
pid | usesysid | usename | application_name | client_addr | client_hostname | client_port | backend_start | backend
_xmin | state | sent_lsn | write_lsn | flush_lsn | replay_lsn | write_lag | flush_lag | replay_lag | sync_priority | sync_state
| reply_time
-------+----------+---------+------------------+---------------+-----------------+-------------+-------------------------------+-------- 21977 | 10 | system | node102 | 192.168.1.102 | | 48657 | 2022-03-29 23:29:53.857475+08 |
| streaming | 0/34000130 | 0/34000130 | 0/34000130 | 0/34000130 | | | | 0 | async
| 2022-03-29 23:20:02.074682+08
(1 row)

3、测试数据同步

主库执行DML:

备库查看:

七、配置主备同步模式

=默认创建主备流复制后,同步模式为‘async’。=

1、配置主库kingbase.conf

注意:此备库节点名称要和备库中kingbase.auto.con中配置一致。

2、reload conf文件

[kingbase@node101 bin]$ ./sys_ctl reload -D /data/kingbase/v8r6_041/data
server signaled

3、查看主备流复制同步模式

八、配置故障问题

1、当在备库kingbase.auto.conf中配置加密口令连接主库

加密口令的明文信息:
[kingbase@node102 sys_log]$ echo 'MTIzNDU2' |base64 -d
123456

2、备库日志提示“用户认证失败”错误,明文口令无此错误。

并且在主备库已经配置了.encpwd:

九、总结

对于KingbaseES R6单机环境手工配置主备流复制有一定的复杂度,和KingbaseES R3配置略有不同。

KingbaseES R6 手工创建主备流复制案例的更多相关文章

  1. KingbaseES V8R6集群部署案例之---Windows环境配置主备流复制(异机复制)

    案例说明: 目前KingbaseES V8R6的Windows版本不支持数据库sys_rman的物理备份,可以考虑通过建立主备流复制实现数据库的异机物理备份.本案例详细介绍了,在Windows环境下建 ...

  2. KingbaseES V8R6集群部署案例之---Windows环境配置主备流复制(同一主机)

    案例说明: 目前KingbaseES V8R6的Windows版本不支持数据库sys_rman的物理备份,可以考虑通过建立主备流复制实现数据库的异机物理备份.本案例详细介绍了,在Windows环境下建 ...

  3. KingbaseES R6 主备流复制集群创建级联复制案例

    案例环境: 数据库: test=# select version(); version -------------------------------------------------------- ...

  4. PostgreSQL主备流复制机制

    原文出处 http://mysql.taobao.org/monthly/2015/10/04/ PostgreSQL在9.0之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...

  5. PgSQL · 特性分析 · PG主备流复制机制

    原文地址:http://mysql.taobao.org/monthly/2015/10/04/ PostgreSQL在9.0之后引入了主备流复制机制,通过流复制,备库不断的从主库同步相应的数据,并在 ...

  6. KingbaseES R6 集群“双主”故障解决案例

    实际工作中,可能会碰到集群脑裂的情况,在脑裂时,会出现双 primary情况.这时,需要用户介入,人工判断哪个节点的数据最新,减少数据丢失. 一.测试环境信息 操作系统: [kingbase@node ...

  7. [原创] PostgreSQL Plus Advanced Server在Windows中配置双机热备流复制

    一.系统环境 操作系统:Windows Server 2003/2008 两个节点分别为master与slave. 主节点master:172.27.19.28 备机点slave:172.27.19. ...

  8. pgpool-II主备流复制的架设

    1.环境 OS: CentOS release 6.4 (Final) DB: postgresql 9.3.6 pgpool服务器: pgpool 172.16.0.240 数据库主服务器:mast ...

  9. KingbaseES R6 集群通过备库clone在线添加新节点

    案例说明: KingbaseES R6集群可以通过图形化方式在线添加新节点,但是在添加新节点clone环节时,是从主库copy数据到新的节点,这样在生产环境,如果数据量大,将会对主库的网络I/O造成压 ...

随机推荐

  1. VisionPro · C# · 加载与保存取像工具

    VisionPro 项目程序设计,取像工具可被包含在工具包内被调用,一般,为了满足程序取像可以实现单次取像,循环取像,实时取像等多方面应用,会将取像工具独立打包. 加载代码: 1 using Syst ...

  2. 又拍云 Redis 的改进之路

    作为推出国内首创可编程 CDN 服务的专业云服务提供商,又拍云利用 CDN 边缘网络规模和性能,允许客户自定义编写规则来满足常用业务场景.而为了保证这些源数据,如边缘重定向.请求限速.自定义错误页面. ...

  3. HashMap的实现原理?如何保证HashMap线程安全?

    A:HashMap简单说就是它根据建的hashcode值存储数据的,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历的顺序是不确定的. B:HashMap基于哈希表,底层结构由数组来实 ...

  4. 面试官:Redis 过期删除策略和内存淘汰策略有什么区别?

    作者:小林coding 计算机八股文网站:https://xiaolincoding.com 大家好,我是小林. Redis 的「内存淘汰策略」和「过期删除策略」,很多小伙伴容易混淆,这两个机制虽然都 ...

  5. C#请求HTTPS地址的故障分析和TLS知识点总结

    背景介绍 近期收到同事反馈,在C#程序中通过HTTPClient请求一个HTTPS的地址时,在本地开发环境和测试环境均能正常执行,而部署到生产环境后发生异常且稳定复现,异常提示为:[请求被中止: 未能 ...

  6. throw关键字和Objects非空判断_requireNonNull方法

    作用: 可以使用throw关键字在指定的方法中抛出指定的异常 使用格式: throw new xxxException("异常产生的原因") 注意: 1.throw关键字必须写在方 ...

  7. SpringCloudAlibaba分布式事务解决方案Seata实战与源码分析-上

    概述 定义 Spring Cloud Alibaba Seata 官网地址 https://seata.io/zh-cn/ 最新版本1.5.2 Spring Cloud Alibaba Seata 文 ...

  8. Java双重校验单例模式详解

    单例模式双重检测java实现: public class Singleton { private volatile static Singleton instance = null; //#1 pub ...

  9. wcf连接数据库用sqlhelper,连接数一直没有释放反而增加

    找了一天,发现原因是配置的连接字符串没有加上最大连接数,所以每次请求都是一直增加,而MariaDB默认的连接数是151,为了本地多项目测试已改成以前. 下面是配置的连接字符串:  <add na ...

  10. 【亲测有效】Tecnomatix PDPS 软件安装及常见问题!附授权文件

    据说,每个学习 Siemens PLM 仿真的同学,都要先被 TecnoMatix PDPS 软件的安装给折磨过! 经过几天的安装过程,果然,此话不虚~~~ 把自己的安装步骤贴出来,免得大家再走弯路. ...