#备集群扩缩容

YashanDB支持通过yasboot工具对共享集群部署中的备集群进行在线扩容或缩容,且扩容期间不影响整个集群的使用。

Note:

# 在线增加备集群

新备集群的每个实例由单独1台服务器承载(后文将称之为“新服务器”),新服务器的操作系统版本建议与现有服务器保持一致。

  1. 准备扩容所需的新服务器和存储设备,并参照安装前准备检查并确保新服务器系统的各项环境已满足要求。

    新备集群中实例数不得超过GV$LOGFILE视图中的THREAD#最大值(可执行SELECT MAX(thread#) AS max_thread# FROM V$LOGFILE;查询确认)。

  2. 以安装用户登录数据库的现有节点所在服务器。

  3. 根据此次扩容前的部署规模完成以下准备工作:

    1. )需正确配置主备集群通信地址,应为当前节点的IP地址和未占用端口(例如1690)。
    # 以sys用户免密登录
    
    $ yasql / as sysdba
    # 或以用DBA用户登录数据库
    
    $ yasql sales/********@192.168.1.2:1688
    
    -- 查看REPLICATION_ADDR参数值
    
    SQL> show parameter REPLICATION_ADDR
    
    NAME                                                              VALUE
    ----------------------------------------------------------------  ----------------------------------------------------------------
    REPLICATION_ADDR
    
    -- 若参数值为空或不正确,需修改配置
    
    SQL> ALTER SYSTEM SET REPLICATION_ADDR=192.168.1.2:1690 scope=spfile;
    
    SQL> exit
    
    # 以用sys用户或DBA用户登录其他实例并重复上述操作
    
    $ yasql sales/********@192.168.1.3:1688
    SQL> show parameter REPLICATION_ADDR
    
    NAME                                                              VALUE                                                            
    ----------------------------------------------------------------  ---------------------------------------------------------------- 
    REPLICATION_ADDR
    
    SQL> ALTER SYSTEM SET REPLICATION_ADDR=192.168.1.3:1690 scope=spfile;
    
    SQL> exit
    
    1. )检查并确保开启归档模式。
    SELECT database_name,log_mode,open_mode FROM V$DATABASE;
    
    DATABASE_NAME      LOG_MODE          OPEN_MODE
    ------------------ ----------------- ------------
    yashandb           ARCHIVELOG        READ_WRITE
    

    LOG_MODE = ARCHIVELOG表示归档模式已开启只需重启生效REPLICATION_ADDR参数配置即可,否则请参考开启归档模式(期间需要重启数据库)。

  4. 执行yasboot config group gen命令,生成增加集群的配置文件。

    $ yasboot config group gen -c yashandb \
    -u yashan -p yashan_password --ip ip1 --port 22 \
    --install-path /data/yashan/yasdb_home \
    --data-path /data/yashan/yasdb_data \
    --node 3 --begin-port 1688 --data /dev/yfs33/datadisk3 \
    --disk-found-path  /dev/yfs33 --system-data  /dev/yfs33/ycsdisk3 \
    --log-path /data/yashan/yasdb_data/log \
    -t ce
    

    执行成功后,会生成yashandb_add.tomlhosts_add.toml两个配置文件。

  5. 执行如下命令,远程连接新服务器并为其安装YashanDB。

    $ yasboot host add -c yashandb -t hosts_add.toml
    
  6. 按需在新服务器上完成以下配置。

    • 若扩容前数据库已开启资源管理功能,新服务器上也需执行yasboot host cgroup命令创建cgroup目录。

      $ yasboot host cgroup create -c yashandb --sudo-username root --sudo-password ****** --host-id host004
      
    • 若扩容前其他服务器均已配置开机自启动,新服务器也必须配置开机自启动

  7. 在上述生成配置文件的服务器上执行如下命令,增加备集群。

    $ yasboot group add -c yashandb -t yashandb_add.toml
    
  8. (可选)备份数据库。

    建议对数据库进行备份,确保扩容后有可用于恢复的基线备份集。

  9. 将hosts_add.toml中的[[host]]内容复制粘贴到hosts.toml的末尾,以免升级时仍用旧的hosts信息。

  10. 可按需开启yasom仲裁选主功能,保障业务连续性。

# 在线删除备集群

  1. 以安装用户登录数据库安装服务器。

  2. 检查并关闭yasom仲裁选主:

    $ yasboot election config show -c yashandb
    cluster
    Protection Mode: MAXIMUM PROTECTION
    Members:
        [1-1:1] - Primary database
        [1-2:2] - Primary database
        [2-1:3] - Physical standby database
                    Transport Lag: 0 seconds
                    Apply Lag:     0 seconds
                    Apply Rate:    0.00 KByte/s
        [2-2:4] - Physical standby database
    
    ……
    
    Automatic Failover: Enabled in Zero Data Loss Mode 
    
    # Enabled表示已开启yasom仲裁选主,需将其关闭再进行后续操作
    $ yasboot election enable off -c yashandb
    
  3. 执行如下命令,查看待删除的目标备集群ID。

    $ yasboot cluster status -c yashandb -d
    # nodeid中横线前的部分即为组ID,例如2-1:3对应的组ID为2
    
  4. 执行如下命令删除备集群。

    # 可以增加--with-host参数,成功删除节点组后继续删除当前分布式集群中所有无数据库节点、无yasom进程的空服务器的信息
     $ yasboot group remove --group-ids 2 -f --purge --ce -c yashandb --with-host
    
  5. (可选)备份数据库。

    建议对数据库进行备份,确保缩容后有可用于恢复的基线备份集。

  6. 若缩容时指定了--with-host参数(即移除了空服务器),缩容完成后需要更新hosts.toml文件的[[host]]内容,删除对应服务器相关信息,以免升级时仍用旧的hosts信息。

  7. 若删除备集群后仍为主备集群部署,可按需开启yasom仲裁选主功能,保障业务连续性。

pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流