1.  

案例环境:

  1. 操作系统:
      [root@node1 ~]# cat /etc/centos-release
    CentOS Linux release 7.2.1511 (Core)

    数据库:
    test=# select version();
                                                          version                                                      
    ------------------------------------------------------------------------------
    KingbaseES V008R006C003B0010 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46), 64-bit
    (1 row)

集群架构:

一、查看当前集群节点状态信息

1、集群节点信息

  1. [kingbase@node3 bin]$ ./repmgr cluster show
    ID | Name   | Role   | Status   | Upstream | Location | Priority | Timeline | Connection string                                                                                                                                
    ----+---------+---------+-----------+----------+----------+----------+----
    1 | node248 | primary | * running |         | default | 100     | 5       | host=192.168.7.248 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
    2 | node249 | standby |   running | node248 | default | 100     | 5       | host=192.168.7.249 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
    3 | node243 | standby |   running | node248 | default | 100     | 5       | host=192.168.7.243 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3

2、主备流复制信息

  1. 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    
    ------+----------+---------+------------------+---------------+-----------
    3403 |   16384 | esrep   | node249         | 192.168.7.249 |                 |       14247 | 2021-03-01 12:03:37.651419+08 |             | streaming | 1/F9005BA0 | 1/F9005BA0 | 1/F9005BA0 | 1/F9005BA0 |           |           |           |             1 | quorum     | 2021-03-01 12:31:56.432910+08
    3419 |   16384 | esrep   | node243         | 192.168.7.243 |                 |       34939 | 2021-03-01 12:03:43.876552+08 |             | streaming | 1/F9005BA0 | 1/F9005BA0 | 1/F9005BA0 | 1/F9005BA0 |           |           |           |             1 | quorum     | 2021-03-01 12:30:42.663663+08
    (2 rows)

3、复制槽信息

  1. 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     |       3403 |     |             | 1/F9005BA0 |
    repmgr_slot_3 |       | physical |       |         | f         | t     |       3419 |     |             | 1/F9005BA0 |
    (2 rows)

二、将standby节点unregister

1、unregister standby node

  1. 在要删除的Standby 节点执行:​
    [kingbase@node3 bin]$ ./repmgr standby unregister;
    INFO: connecting to local standby
    INFO: connecting to primary database
    NOTICE: unregistering node 3
    INFO: try to drop slot "repmgr_slot_3" of node 3 on primary node
    WARNING: replication slot "repmgr_slot_3" is still active on node 3
    INFO: standby unregistration complete

2、查看集群节点信息

  1. [kingbase@node3 bin]$ ./repmgr cluster show
    ID | Name   | Role   | Status   | Upstream | Location | Priority | Timeline | Connection string                                                                                                                                
    ----+---------+---------+-----------+----------+----------+----------+----
    1 | node248 | primary | * running |         | default | 100     | 5       | host=192.168.7.248 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
    2 | node249 | standby |   running | node248 | default | 100     | 5       | host=192.168.7.249 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3

=== 从以上获知,集群节点信息已经没有unregister的节点信息===

三、停止本地集群服务删除复制槽

1、停止本地集群服务

  1. [kingbase@node3 bin]$ ./sys_monitor.sh stoplocal
    Service process "node_export" was killed at process 4928
    Service process "postgres_ex" was killed at process 4929
    2021-03-01 12:33:52 begin to stop repmgrd on "[localhost]".
    2021-03-01 12:33:54 repmgrd on "[localhost]" stop success.
    2021-03-01 12:33:54 begin to stop DB on "[localhost]".
    waiting for server to shut down.... done
    server stopped
    2021-03-01 12:33:55 DB on "[localhost]" stop success.

2、关闭cron计划任务:

  1. [kingbase@node2 bin]$ cat /etc/cron.d/KINGBASECRON
  2. #*/1 * * * * kingbase . /etc/profile;/home/kingbase/cluster/R6HA/KHA/kingbase/bin/kbha -A daemon -f /home/kingbase/cluster/R6HA/KHA/kingbase/bin/../etc/repmgr.conf >> /home/kingbase/cluster/R6HA/KHA/kingbase/bin/../kbha.log 2>&1
  3. #*/1 * * * * kingbase /home/kingbase/cluster/kha/db/bin/network_rewind.sh

3、停止hamgr进程:

  1. [kingbase@node2 bin]$ ps -ef |grep repmgr
  2. kingbase 7536 1 0 12:20 ? 00:01:12 /home/kingbase/cluster/R6HA/KHA/kingbase/bin/repmgrd -d -v -f /home/kingbase/cluster/R6HA/KHA/kingbase/bin/../etc/repmgr.conf
  3. kingbase 7955 1 0 12:21 ? 00:00:01 /home/kingbase/cluster/R6HA/KHA/kingbase/bin/kbha -A daemon -f /home/kingbase/cluster/R6HA/KHA/kingbase/bin/../etc/repmgr.conf
  4.  
  5. [kingbase@node2 bin]$ kill -2 7536 7955

4、停止export进程:

  1. [kingbase@node2 bin]$ ps -ef |grep kingbase
  2. kingbase 8190 1 0 12:21 ? 00:00:00 /home/kingbase/cluster/R6HA/KHA/kingbase/bin/../share/node_exporter
  3. kingbase 8191 1 0 12:21 ? 00:00:00 /home/kingbase/cluster/R6HA/KHA/kingbase/bin/../share/postgres_exporter
  4. ......
  5. [kingbase@node2 bin]$ kill -9 8190 8191

5、查看复制槽信息

  1. test=# select * from sys_replication_slots;
  2. slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn
  3. ---------------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
  4. repmgr_slot_2 | | physical | | | f | t | 3403 | | | 1/F9007590 |
  5. repmgr_slot_3 | | physical | | | f | f | | | | 1/F9007590 |
  6. (2 rows)

6、删除复制槽

  1. test=# select sys_drop_replication_slot('repmgr_slot_3');
  2. sys_drop_replication_slot
  3. ---------------------------
  4.  
  5. (1 row)
  1. test=# select * from sys_replication_slots;
  2. slot_name | plugin | slot_type | datoid | database | temporary | active | active_pid | xmin | catalog_xmin | restart_lsn | confirmed_flush_lsn
  3. ---------------+--------+-----------+--------+----------+-----------+--------+------------+------+--------------+-------------+---------------------
  4. repmgr_slot_2 | | physical | | | f | t | 3403 | | | 1/F9007590 |
  5. (1 row)

7、查看流复制信息

  1. test=# select * from sys_stat_replication;
  2. 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
  3. ------+----------+---------+------------------+---------------+-----------------+-------------+-------------------------------+--------------+------
  4. 3403 | 16384 | esrep | node249 | 192.168.7.249 | | 14247 | 2021-03-01 12:03:37.651419+08 | | streaming | 1/F9007590 | 1/F9007590 | 1/F9007590 | 1/F9007590 | | | | 1 | quorum | 2021-03-01 12:35:38.819940+08
  5. (1 row)

四、重新启动集群服务测试

  1. [kingbase@node1 bin]$ ./sys_monitor.sh restart
  2. 2021-03-01 12:37:43 Ready to stop all DB ...
  3. Service process "node_export" was killed at process 4546
  4. Service process "postgres_ex" was killed at process 4547
  5. Service process "node_export" was killed at process 4242
  6. Service process "postgres_ex" was killed at process 4243
  7. 2021-03-01 12:37:49 begin to stop repmgrd on "[192.168.7.248]".
  8. 2021-03-01 12:37:50 repmgrd on "[192.168.7.248]" stop success.
  9. 2021-03-01 12:37:50 begin to stop repmgrd on "[192.168.7.249]".
  10. 2021-03-01 12:37:51 repmgrd on "[192.168.7.249]" stop success.
  11. 2021-03-01 12:37:51 begin to stop DB on "[192.168.7.249]".
  12. waiting for server to shut down.... done
  13. server stopped
  14. 2021-03-01 12:37:52 DB on "[192.168.7.249]" stop success.
  15. 2021-03-01 12:37:52 begin to stop DB on "[192.168.7.248]".
  16. waiting for server to shut down..... done
  17. server stopped
  18. 2021-03-01 12:37:53 DB on "[192.168.7.248]" stop success.
  19. 2021-03-01 12:37:53 Done.
  20. 2021-03-01 12:37:53 Ready to start all DB ...
  21. 2021-03-01 12:37:53 begin to start DB on "[192.168.7.248]".
  22. waiting for server to start.... done
  23. server started
  24. 2021-03-01 12:37:55 execute to start DB on "[192.168.7.248]" success, connect to check it.
  25. 2021-03-01 12:37:56 DB on "[192.168.7.248]" start success.
  26. 2021-03-01 12:37:56 Try to ping trusted_servers on host 192.168.7.248 ...
  27. 2021-03-01 12:37:59 Try to ping trusted_servers on host 192.168.7.249 ...
  28. 2021-03-01 12:38:01 begin to start DB on "[192.168.7.249]".
  29. waiting for server to start.... done
  30. server started
  31. 2021-03-01 12:38:03 execute to start DB on "[192.168.7.249]" success, connect to check it.
  32. 2021-03-01 12:38:04 DB on "[192.168.7.249]" start success.
  33. ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string
  34. ----+---------+---------+-----------+----------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------
  35. 1 | node248 | primary | * running | | default | 100 | 5 | host=192.168.7.248 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
  36. 2 | node249 | standby | running | node248 | default | 100 | 5 | host=192.168.7.249 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=3
  37. 2021-03-01 12:38:04 The primary DB is started.
  38. 2021-03-01 12:38:08 Success to load virtual ip [192.168.7.240/24] on primary host [192.168.7.248].
  39. 2021-03-01 12:38:08 Try to ping vip on host 192.168.7.248 ...
  40. 2021-03-01 12:38:11 Try to ping vip on host 192.168.7.249 ...
  41. 2021-03-01 12:38:13 begin to start repmgrd on "[192.168.7.248]".
  42. [2021-03-01 12:38:14] [NOTICE] using provided configuration file "/home/kingbase/cluster/R6HA/KHA/kingbase/bin/../etc/repmgr.conf"
  43. [2021-03-01 12:38:14] [NOTICE] redirecting logging output to "/home/kingbase/cluster/R6HA/KHA/kingbase/hamgr.log"
  44.  
  45. 2021-03-01 12:38:14 repmgrd on "[192.168.7.248]" start success.
  46. 2021-03-01 12:38:14 begin to start repmgrd on "[192.168.7.249]".
  47. [2021-03-01 12:38:45] [NOTICE] using provided configuration file "/home/kingbase/cluster/R6HA/KHA/kingbase/bin/../etc/repmgr.conf"
  48. [2021-03-01 12:38:45] [NOTICE] redirecting logging output to "/home/kingbase/cluster/R6HA/KHA/kingbase/hamgr.log"
  49.  
  50. 2021-03-01 12:38:15 repmgrd on "[192.168.7.249]" start success.
  51. ID | Name | Role | Status | Upstream | repmgrd | PID | Paused? | Upstream last seen
  52. ----+---------+---------+-----------+----------+---------+-------+---------+--------------------
  53. 1 | node248 | primary | * running | | running | 14373 | no | n/a
  54. 2 | node249 | standby | running | node248 | running | 12219 | no | n/a
  55. 2021-03-01 12:38:23 Done.

=== 重新启动集群服务,启动后集群节点状态正常,standby节点删除成功===

KingbaseES R6 集群在线删除standby节点的更多相关文章

  1. KingbaseES R3集群在线删除数据节点案例

    案例说明: kingbaseES R3集群一主多从的架构,一般有两个节点是集群的管理节点,所有的节点都可以为数据节点:对于非管理节点的数据节点可以在线删除:但是对于管理节点,无法在线删除,如果删除管理 ...

  2. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)

    KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...

  3. KingbaseES R6 集群 recovery 参数对切换的影响

    案例说明:在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库节点系统恢复正常后,如何对原主库节点进行处理,保证集群数据的一致性和安全,可以通过对repmg ...

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

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

  5. KingbaseES R6 集群修改data目录

    案例说明: 本案例是在部署完成KingbaseES R6集群后,由于业务的需求,集群需要修改data(数据存储)目录的测试.本案例分两种修改方式,第一种是离线修改data目录,即关闭整个集群后,修改数 ...

  6. KingbaseES R6 集群创建流复制只读副本库案例

    一.环境概述 [kingbase@node2 bin]$ ./ksql -U system test ksql (V8.0) Type "help" for help. test= ...

  7. KingbaseES R6 集群修改物理IP和VIP案例

    在用户的实际环境里,可能有时需要修改主机的IP,这就涉及到集群的配置修改.以下以例子的方式,介绍下KingbaseES R6集群如何修改IP. 一.案例测试环境 操作系统: [KINGBASE@nod ...

  8. KingbaseES R6 集群sys_monitor.sh change_password一键修改集群用户密码

    案例说明: kingbaseES R6集群用户密码修改,需要修改两处: 1)修改数据库用户密码(alter user): 2)修改.encpwd文件中用户密码: 可以通过sys_monitor.sh ...

  9. KingbaseES R6 集群启动‘incorrect command permissions for the virtual ip’故障案例

    案例说明: KingbaseES R6集群启动时,出现"incorrect command permissions for the virtual ip"故障,本案例介绍了如何分析 ...

随机推荐

  1. 过年了,基于Vue做一个消息通知组件

    前言 今天除夕,在这里祝大家新年快乐!!!今天在这个特别的日子里我们做一个消息通知组件,好,我们开始行动起来吧!!!项目一览 效果很简单,就是这种的小卡片似的效果. 我们先开始写UI页面,可自定义消息 ...

  2. SpringBoot + JWT + Redis 开源知识社区系统

    「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识.准备 Java 面试,首选 JavaGuide!:https://javaguide.cn/ 你好,我是 Guide!这 ...

  3. 【WPF】CAD工程图纸转WPF可直接使用的xaml代码技巧

    前言:随着工业化的进一步发展,制造业.工业自动化等多领域,都可能用到上位监控系统.而WPF在上位监控系统方面,应该算是当下最流行的前端框架之一了.而随着监控体系的不断完善与更新迭代,监控画面会变得越来 ...

  4. ms08-067漏洞复现

    一.环境说明 kali linux 靶机是 XP (xp启动445) 二.nmap扫描主机存在的漏洞 root@kali:~# nmap --script smb-vuln* 192.168.244. ...

  5. linux系统漏洞lynis扫描

    1.下载lynis https://cisofy.com/downloads/lynis/ 或者 yum --enablerepo=epel -y install lynis 2. rz上传压缩包解压 ...

  6. .NET混合开发解决方案24 WebView2对比CefSharp的超强优势

    系列目录     [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NE ...

  7. 从UI Designer上面动态创建下拉列表

    在UI Desigher上创建一个新的列表 并创建2个值,code 和value 添加一个EventHandler 在EventHandler上面添加一个Operation 类型为script$dat ...

  8. API概述,使用步骤和Scanner概述及其API文档的使用

    API概述 API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档.这些类将底 ...

  9. vue 调用nginx服务跨越的问题

    server { listen 80; server_name api.xxxx.com; add_header Access-Control-Allow-Origin '*' ; proxy_set ...

  10. github碰到的问题

    下载问题 自己编译一下 mvn clear mvn compile mvn package 自己编译之后的文件,然后解压即可,第一次自己傻傻的,直接用源码跑,少报错! 项目预览问题 添加1s即可 下载 ...