#备集群扩缩容
YashanDB支持通过yasboot工具对共享集群部署中的备集群进行在线扩容或缩容,且扩容期间不影响整个集群的使用。
Note:
# 在线增加备集群
新备集群的每个实例由单独1台服务器承载(后文将称之为“新服务器”),新服务器的操作系统版本建议与现有服务器保持一致。
准备扩容所需的新服务器和存储设备,并参照安装前准备检查并确保新服务器系统的各项环境已满足要求。
新备集群中实例数不得超过GV$LOGFILE视图中的THREAD#最大值(可执行
SELECT MAX(thread#) AS max_thread# FROM V$LOGFILE;查询确认)。以安装用户登录数据库的现有节点所在服务器。
根据此次扩容前的部署规模完成以下准备工作:
- )需正确配置主备集群通信地址,应为当前节点的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- )检查并确保开启归档模式。
SELECT database_name,log_mode,open_mode FROM V$DATABASE; DATABASE_NAME LOG_MODE OPEN_MODE ------------------ ----------------- ------------ yashandb ARCHIVELOG READ_WRITELOG_MODE = ARCHIVELOG表示归档模式已开启只需重启生效REPLICATION_ADDR参数配置即可,否则请参考开启归档模式(期间需要重启数据库)。
执行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.toml和hosts_add.toml两个配置文件。
执行如下命令,远程连接新服务器并为其安装YashanDB。
$ yasboot host add -c yashandb -t hosts_add.toml按需在新服务器上完成以下配置。
若扩容前数据库已开启资源管理功能,新服务器上也需执行yasboot host cgroup命令创建cgroup目录。
$ yasboot host cgroup create -c yashandb --sudo-username root --sudo-password ****** --host-id host004若扩容前其他服务器均已配置开机自启动,新服务器也必须配置开机自启动。
在上述生成配置文件的服务器上执行如下命令,增加备集群。
$ yasboot group add -c yashandb -t yashandb_add.toml(可选)备份数据库。
建议对数据库进行备份,确保扩容后有可用于恢复的基线备份集。
将hosts_add.toml中的[[host]]内容复制粘贴到hosts.toml的末尾,以免升级时仍用旧的hosts信息。
可按需开启yasom仲裁选主功能,保障业务连续性。
# 在线删除备集群
以安装用户登录数据库安装服务器。
检查并关闭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执行如下命令,查看待删除的目标备集群ID。
$ yasboot cluster status -c yashandb -d # nodeid中横线前的部分即为组ID,例如2-1:3对应的组ID为2执行如下命令删除备集群。
# 可以增加--with-host参数,成功删除节点组后继续删除当前分布式集群中所有无数据库节点、无yasom进程的空服务器的信息 $ yasboot group remove --group-ids 2 -f --purge --ce -c yashandb --with-host(可选)备份数据库。
建议对数据库进行备份,确保缩容后有可用于恢复的基线备份集。
若缩容时指定了--with-host参数(即移除了空服务器),缩容完成后需要更新hosts.toml文件的[[host]]内容,删除对应服务器相关信息,以免升级时仍用旧的hosts信息。
若删除备集群后仍为主备集群部署,可按需开启yasom仲裁选主功能,保障业务连续性。

