案例说明:

目前KingbaseES V8R6的Windows版本不支持数据库sys_rman的物理备份,可以考虑通过建立主备流复制实现数据库的异机物理备份。本案例详细介绍了,在Windows环境下建立流复制的过程,备库的创建可以在同一主机完成,也可以异机创建流复制。

适用版本:

Windows KingbaseES V8R6

系统环境:

主备节点数据存储结构:

# 主库:
Data目录: D:\Program Files\Kingbase\ES\V8\data
archive目录:d:\\kes_arch
port:54321 # 备库:
Data目录: E:\kes\data
archive目录:e:\kes\arch
port:54322

一、配置主库归档及节点通讯

1、主库配置

# kingbase.conf配置

port=54321
archive_mode = on
archive_command = 'copy "%p" "d:\\kes_arch\\%f"'
wal_level = replica
max_wal_senders = 10
wal_keep_segments = 100 # kingbase.auto.conf 配置 # Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'user=system password=123456 connect_timeout=10 host=127.0.0.1 port=54322
keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
application_name=node01'
recovery_target_timeline = 'latest'
primary_slot_name = 'repmgr_slot_1'
wal_retrieve_retry_interval = '5000'

二、通过sys_basebackup克隆备库

Tips:

备节点的数据,可以通过sys_basebackup在线clone方式创建,或主库数据库服务正常关闭后,拷贝数据到备库。

D:\Program Files\Kingbase\ES\V8\Server\bin>sys_basebackup -h 127.0.0.1 -U system -W
-C -S "repmgr_slot_2" -R -F p -X stream -v -P -D "e:\kes\data"
Password:
sys_basebackup: initiating base backup, waiting for checkpoint to complete
已复制 1 个文件。
sys_basebackup: checkpoint completed
sys_basebackup: write-ahead log start point: 0/7000028 on timeline 1
sys_basebackup: starting background WAL receiver
sys_basebackup: created replication slot "repmgr_slot_2"
60041/60041 kB (100%), 1/1 tablespace
sys_basebackup: write-ahead log end point: 0/70000F8
sys_basebackup: waiting for background process to finish streaming ...
已复制 1 个文件。
已复制 1 个文件。
sys_basebackup: syncing data to disk ...
sys_basebackup: base backup completed

如下所示:备库数据文件

配置备库流复制:

# kingbase.conf配置

port=54322
archive_mode = on
archive_command = 'copy "%p" "e:\\kes\\arch\\%f"'
wal_level = replica
max_wal_senders = 10
wal_keep_segments = 100 # kingbase.auto.conf 配置 # Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 'user=system password=123456 connect_timeout=10 host=127.0.0.1
port=54321 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
application_name=node02'
recovery_target_timeline = 'latest'
primary_slot_name = 'repmgr_slot_2'
wal_retrieve_retry_interval = '5000'

三、启动主备库数据库服务

1、启动数据库服务

# 主库
D:\Program Files\Kingbase\ES\V8\Server\bin>sys_ctl restart -D "D:\Program Files\Kingbase\ES\V8\data"
......
server started # 备库
D:\Program Files\Kingbase\ES\V8\Server\bin>sys_ctl restart -D "e:\kes\data"
.....
server started

2、查看复制槽信息

D:\Program Files\Kingbase\ES\V8\Server\bin>ksql -U system -W test
口令:
ksql (V8.0)
输入 "help" 来获取帮助信息. 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
---------------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
repmgr_slot_2 | | physical | | | f | t | 18324 | | | 0/5019BE0 |
repmgr_slot_1 | | physical | | | f | f | | | | |
(2 行记录)

四、查看主备流复制状态

D:\Program Files\Kingbase\ES\V8\Server\bin>ksql -U system -W test
口令:
ksql (V8.0)
输入 "help" 来获取帮助信息. 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
-------+----------+---------+------------------+-------------+-----------------+-------------+-------------------------------+--------------+-----------+-----------+-----------+-----------+------------+-----------+-----------+------------+---------------+------------+-------------------------------
18324 | 10 | system | node02 | 127.0.0.1 | | 54411 | 2022-08-16 14:57:31.810737+08 | | streaming | 0/50001A8 | 0/50001A8 | 0/50001A8 | 0/50001A8 | | | | 0 | async | 2022-08-16 14:57:42.327673+08
(1 行记录)

五、测试数据同步

1、主库DML操作

D:\Program Files\Kingbase\ES\V8\Server\bin>ksql -U system -W prod
口令:
ksql (V8.0)
输入 "help" 来获取帮助信息. test=# create database prod;
CREATE DATABASE
test=# \c prod
口令:
您现在已经连接到数据库 "prod",用户 "system". prod=# create table t1 (id int);
CREATE TABLE
prod=# insert into t1 values (10),(20),(30);
INSERT 0 3 prod=# select * from t1;
id
----
10
20
30
(3 行记录)

2、备库查询

D:\Program Files\Kingbase\ES\V8\Server\bin>ksql -U system -W -p 54322 test
口令:
ksql (V8.0)
输入 "help" 来获取帮助信息. test=# show port;
port
-------
54322
(1 行记录) test=# \c prod
口令:
您现在已经连接到数据库 "prod",用户 "system".
prod=# select * from t1;
id
----
10
20
30
(3 行记录)

=如上所示,备库已经同步主库的数据,主备流复制创建成功。=

六、总结

对于在KingbaseES V8R6的Windows环境,创建主备流复制与Linux环境基本相同,对于Windows环境不支持sys_rman的物理备份,可以考虑通过物理的流复制建立异机的备份。

KingbaseES V8R6集群部署案例之---Windows环境配置主备流复制(同一主机)的更多相关文章

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

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

  2. KingbaseES V8R6集群维护案例之---停用集群node_export进程

    案例说明: 在KingbaseES V8R6集群启动时,会启动node_exporter进程,此进程主要用于向kmonitor监控服务输出节点状态信息.在系统安全漏洞扫描中,提示出现以下安全漏洞: 对 ...

  3. KingbaseES V8R6集群维护案例之---将securecmdd通讯改为ssh案例

    案例说明: 在KingbaseES V8R6的后期版本中,为了解决有的主机之间不允许root用户ssh登录的问题,使用了securecmdd作为集群部署分发和通讯的服务,有生产环境通过漏洞扫描,在88 ...

  4. KingbaseES V8R6集群维护案例之--修改securecmdd工具服务端口

    案例说明: 在一些生产环境,为了系统安全,不支持ssh互信,或限制root用户使用ssh登录,KingbaseES V8R6可以使用securecmdd工具支持主机之间的通讯.securecmdd工具 ...

  5. KingbaseES V8R6集群维护案例之--单实例数据迁移到集群案例

    案例说明: 生产环境是单实例,测试环境是集群,现需要将生产环境的数据迁移到集群中运行,本文档详细介绍了从单实例环境恢复数据到集群环境的操作步骤,可以作为生产环境迁移数据的参考. 适用版本: Kingb ...

  6. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

  7. KingbaseES V8R6集群管理运维案例之---repmgr standby switchover故障

    案例说明: 在KingbaseES V8R6集群备库执行"repmgr standby switchover"时,切换失败,并且在执行过程中,伴随着"repmr stan ...

  8. kingbaseES V8R6集群备份恢复案例之---备库作为repo主机执行物理备份

    ​ 案例说明: 此案例是在KingbaseES V8R6集群环境下,当主库磁盘空间不足时,执行sys_rman备份,将集群的备库节点作为repo主机,执行备份,并将备份存储在备库的磁盘空间. 集群架构 ...

  9. KingbaseES V8R6集群外部备份案例

    案例说明: 本案例采用sys_backup.sh执行物理备份,备份使用如下逻辑架构:集群采用CentOS 7系统,repo采用kylin V10 Server. 一主一备+外部备份 此场景为主备双机常 ...

随机推荐

  1. python基础知识-day7(文件操作)

    1.文件IO操作: 1)操作文件使用的函数是open() 2)操作文件的模式: a.r:读取文件 b.w:往文件里边写内容(先删除文件里边已有的内容) c.a:是追加(在文件基础上写入新的内容) d. ...

  2. hive完整搭建

    安装 MySQL 服务的详细步骤如下: 1. 解压安装包 现在已经为大家下载好了 MySQL 5.7.25 的安装包,存放在 /root/software 目录下.首先进入此目录下,然后使用tar - ...

  3. 在VMware Workstation 16上安装Windows7虚拟机以及VMware tools安装失败解决方法

    安装VMware Workstation 16 搜素"VMware Workstation下载" 下载 VMware Workstation Pro 下载Windows7系统镜像 ...

  4. 文本处理工具-vim编辑器的常见用法

    文本编辑工具分类: (1)全屏编辑器: nano(字符编辑器).vi.vim (2)行编辑器: sed:可以逐行改文件 vi编辑器 全名:Visual editor,linux系统自带的文本编辑工具 ...

  5. Java 将HTML转为Word

    本文以Java代码为例介绍如何实现将HTML文件转为Word文档(.docx..doc).在实际开发场景中可参考此方法来转换.下面详细方法及步骤. 在编辑代码前,请先在程序中导入Spire.Doc.j ...

  6. centos系统和Ubuntu系统命令区别以及常见操作

    目录 一.前言 二.系统环境 三.命令区别 3.1 使用习惯和命令区别 3.2 服务管理的区别 3.3 软件包信息区别 四.Ubuntu系统常见操作 4.1 Ubuntu系统apt和apt-get的区 ...

  7. 数组基础篇(对应C++ Primer plus 4.10)

    概要:数组是由一组同类型的元素组成的集合,在内存上是一片连续的存储空间.C++提供了三种数组的表示方法:普通数组,模板类vector(C++98 新增的标准模板库STL提供该模板类)和模板类array ...

  8. 字符串压缩(二)之LZ4

    本文来自博客园,作者:T-BARBARIANS,转载请注明原文链接:https://www.cnblogs.com/t-bar/p/16451185.html 谢谢! 上一篇对google精品ZSTD ...

  9. ConcurrentHashMap树化链表treeifyBin

    private final void treeifyBin(Node<K,V>[] tab, int index) { Node<K,V> b; int n, sc; if ( ...

  10. Node.js精进(9)——性能监控(上)

    市面上成熟的 Node.js 性能监控系统,监控的指标有很多. 以开源的 Easy-Monitor 为例,在系统监控一栏中,指标包括内存.CPU.GC.进程.磁盘等. 这些系统能全方位的监控着应用的一 ...