#管理主备yasom
yasom是独立进程,支持主备(primary/secondary),全局有且仅允许有1个主yasom进程、N个(N ≥ 0,默认为0)备yasom进程。
同一个数据库环境中每台服务器上最多只能运行1个yasom进程。
# 手动新增yasom
# 新增备yasom
目前无法直接部署备yasom,只能通过recover命令在当前服务器上新增一个备yasom,要求当前服务器上不存在已有的yasom进程。
以安装用户登录数据库服务器(任意1台)。
查看yasom进程信息。
yasboot process yasom status -c yashandb +------------------------------------------------------------------------------------------------------------------------------------+ | hostid | pid | ipaddr | primary | secondary | local_yasom_addr | role | backup_num | max_seq | auto_repair | +------------------------------------------------------------------------------------------------------------------------------------+ | host0001 | 15080 | 192.168.1.2 | 192.168.1.2:1675 | [] | 192.168.1.2:1675 | primary | 2 | 39 | on | +----------+-------+--------------+-------------------+-----------+-------------------+---------+------------+---------+-------------+ | host0002 | - | 192.168.1.3 | 192.168.1.2:1675 | [] | - | - | 2 | 39 | - | +----------+-------+--------------+-------------------+-----------+-------------------+---------+------------+---------+-------------+根据回显信息,host0002上不存在yasom进程可以新增备yasom,若每台服务器上均存在则无法执行后续操作。
以安装用户登录host0002,执行如下命令在host0002服务器上新增一个备yasom。
# 192.168.1.3为host0002的IP地址,1675为规划的yasom端口,均应替换成实际值 $ yasboot process yasom recover -c yashandb -l 192.168.1.3:1675 # 根据提示输入yes Are you sure you want to use this backup data to recover secondary yasom? [yes/no]: yes recover secondary yasom success查看yasom进程是否创建成功。
yasboot process yasom status -c yashandb +------------------------------------------------------------------------------------------------------------------------------------------------+ | hostid | pid | ipaddr | primary | secondary | local_yasom_addr | role | backup_num | max_seq | auto_repair | +------------------------------------------------------------------------------------------------------------------------------------------------+ | host0001 | 15080 | 192.168.1.2 | 192.168.1.2 :1675 | [192.168.1.3 :1675] | 192.168.1.2 :1675 | primary | 2 | 39 | on | +----------+-------+--------------+-------------------+---------------------+-------------------+-----------+------------+---------+-------------+ | host0002 | 31246 | 192.168.1.3 | 192.168.1.2 :1675 | [192.168.1.3 :1675] | 192.168.1.3 :1675 | secondary | 2 | 39 | - | +----------+-------+--------------+-------------------+---------------------+-------------------+-----------+------------+---------+-------------+
# 新增主yasom(修复yasom无主)
新增主yasom操作仅用于手动修复yasom无主问题。
Caution:
若在当前环境下存在主yasom,则无需且无法新增主yasom。
# 方式一:现存备yasom升主
以安装用户登录目标备yasom所在数据库服务器。
执行如下命令,将备yasom升主。
$ yasboot process yasom recover -c yashandb --role primary
# 方式二:直接增加新主yasom
以安装用户登录不存在yasom的数据库服务器。
执行如下命令,在当前服务器上新增一个主yasom。
# 192.168.1.3为host0002的IP地址,1675为规划的yasom端口,均应替换成实际值 $ yasboot process yasom recover -c yashandb -l 192.168.1.3:1675 --role primary # 根据提示输入yes Are you sure you want to use this backup data to recover primary yasom? [yes/no]: yes recover primary yasom success
# 主yasom降备(修复yasom多主)
yasom降备操作主要用于手动修复yasom多主问题,推荐使用yasom自修复减少人工运维成本,若自修复仍未解决问题,则需手动将多余的主yasom降备或清理。
Caution:
若当前环境下有且仅有1个主yasom,则无需也无法执行降备操作。
以安装用户登录数据库服务器(任意1台)。
查看yasom进程信息。
yasboot process yasom status -c yashandb +------------------------------------------------------------------------------------------------------------------------------------------------+ | hostid | pid | ipaddr | primary | secondary | local_yasom_addr | role | backup_num | max_seq | auto_repair | +------------------------------------------------------------------------------------------------------------------------------------------------+ | host0001 | 15080 | 192.168.1.2 | 192.168.1.2:1675 | [] | 192.168.1.2:1675 | primary | 2 | 39 | off | +----------+-------+--------------+-------------------+---------------------+-------------------+-----------+------------+---------+-------------+ | host0002 | 31246 | 192.168.1.3 | 192.168.1.3:1675 | [] | 192.168.1.3:1675 | primary | 2 | 39 | - | +----------+-------+--------------+-------------------+---------------------+-------------------+-----------+------------+---------+-------------+登录至需要执行降备操作的yasom所在服务器,执行如下命令将其降备:
$ yasboot process yasom demote -c yashandb
# 清理多余yasom
Caution:
若当前环境中仅存在唯一的主yasom时,无法执行清理操作。
以安装用户登录目标备yasom所在数据库服务器。
执行如下命令,清理yasom进程。
$ yasboot process yasom clean -c yashandb all yasom status is as follows: +------------------------------------------------------------------------------------------------------------------------------------------------+ | hostid | pid | ipaddr | primary | secondary | local_yasom_addr | role | backup_num | max_seq | auto_repair | +------------------------------------------------------------------------------------------------------------------------------------------------+ | host0001 | 15080 | 192.168.1.2 | 192.168.1.2:1675 | [192.168.1.3:1675] | 192.168.1.2:1675 | primary | 9 | 50 | on | +----------+-------+--------------+-------------------+---------------------+-------------------+-----------+------------+---------+-------------+ | host0002 | 4343 | 192.168.1.3 | 192.168.1.2:1675 | [192.168.1.3:1675] | 192.168.1.3:1675 | secondary | 9 | 50 | - | +----------+-------+--------------+-------------------+---------------------+-------------------+-----------+------------+---------+-------------+ yasom 192.168.1.2:1675 can see information is as follows: +--------------------------------------------------------------------------------------------+ | hostid | hostname | ipaddr | node_type | nodeid | data_path | +--------------------------------------------------------------------------------------------+ | host0001 | host0001 | 192.168.1.2 | db | 1-1:1 | /data/seyashan/yasdb_data/db-1-1 | +----------+----------+--------------+-----------+--------+----------------------------------+ | host0002 | host0002 | 192.168.1.3 | db | 1-2:2 | /data/seyashan/yasdb_data/db-1-2 | +----------+----------+--------------+-----------+--------+----------------------------------+ incr seq: 50, update at: 2025-07-11 16:44:13 you are preparing to clean secondary yasom: 192.168.1.3:1675 after clean, new primary yasom: 192.168.1.2:1675 after clean, new secondary yasom: [] # 根据提示输入yes Are you sure you want to clean this yasom? [yes/no]: yes clean yasom success

