#管理主备yasom

yasom是独立进程,支持主备(primary/secondary),全局有且仅允许有1个主yasom进程、N个(N ≥ 0,默认为0)备yasom进程。

同一个数据库环境中每台服务器上最多只能运行1个yasom进程。

# 手动新增yasom

# 新增备yasom

目前无法直接部署备yasom,只能通过recover命令在当前服务器上新增一个备yasom,要求当前服务器上不存在已有的yasom进程。

  1. 以安装用户登录数据库服务器(任意1台)。

  2. 查看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,若每台服务器上均存在则无法执行后续操作。

  3. 以安装用户登录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
    
  4. 查看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升主

  1. 以安装用户登录目标备yasom所在数据库服务器。

  2. 执行如下命令,将备yasom升主。

    $ yasboot process yasom recover -c yashandb --role primary
    

# 方式二:直接增加新主yasom

  1. 以安装用户登录不存在yasom的数据库服务器。

  2. 执行如下命令,在当前服务器上新增一个主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. 以安装用户登录数据库服务器(任意1台)。

  2. 查看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      | -           |
    +----------+-------+--------------+-------------------+---------------------+-------------------+-----------+------------+---------+-------------+
    
  3. 登录至需要执行降备操作的yasom所在服务器,执行如下命令将其降备:

    $  yasboot process yasom demote -c yashandb
    

# 清理多余yasom

Caution:

若当前环境中仅存在唯一的主yasom时,无法执行清理操作。

  1. 以安装用户登录目标备yasom所在数据库服务器。

  2. 执行如下命令,清理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
    
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流