#yasboot ipchange

由yasboot所管理的数据库集群中的服务器IP地址发生变更时,用户可以调用ipchange yasomipchange yasagent命令更新yasom侧IP的配置,确保该服务器仍可被yasboot管理。并使用ipchange host更新YashanDB侧IP的配置,使集群在新IP下正常工作。

IP更换执行的顺序为yasom > yasagent > host,若无需更新某个工具/服务器的IP可跳过,继续更新下一个工具/服务器的IP,但不能乱序操作。

本命令只适用于单机部署。

# ipchange yasom

本命令用于更换yasom的IP并重启yasom,yasom会在重启后监听新的IP地址和原有的端口。

选项 含义
-t, --toml config gen生成的hosts.toml(必传参数)
-n, --new-ip yasom所在服务器的新IP(必传参数)

示例:

$ yasboot ipchange yasom -t hosts.toml -n 192.168.1.2

stop yasom successfully
start yasom successfully
restart yasom successfully
yasom change ip success

# ipchange yasagent

本命令用于更换yasagent的IP并重启yasagent,yasagent会在重启后监听新的IP地址和原有的端口。

本命令一次只能更换一个服务器上的yasagent的IP。如需更新多个服务器上yasagent的IP,需对每个需更换IP的yasagent所在服务器使用此命令。

选项 含义
-t, --toml config gen生成的hosts.toml(必传参数)
-n, --new-ip yasagent上服务器的新IP(必传参数)
--host-id 要更换yasagent所在服务器的ID,例如:host0001,可通过hosts.toml文件获取(必传参数)

示例:

$ yasboot ipchange yasagent -t hosts.toml -n 192.168.1.2 --host-id host0001

stop yasagent successfully
start yasagent successfully
restart yasagent successfully
yasagent change ip success

# ipchange host

使用本命令更换服务器IP的前提条件:

  • 如需更换yasom的IP,已完成相应操作。
  • 如需更换yasagent的IP,已完成更换每个待更换IP的yasagent的IP。

本命令用于更换数据库实例的IP,使用本命令时,会自动关闭数据库实例。

选项 含义
-t, --toml config gen生成的hosts.toml(必传参数)
-l, --listen-ip 数据库的监听地址的新IP,和--listen-cidr二选一指定
-r, --replica_ip 主备复制链路地址的新IP,和--replica-cidr二选一指定
-lc, --listen-cidr 数据库的监听地址的新网段,可以填写多个,例如: 192.168.1.2/24,0.0.0.0/0,和--listen-ip二选一指定
-rc, --replica-cidr 主备复制链路地址的新网段,可以填写多个,例如: 192.168.1.2/24,0.0.0.0/0,和--replica-ip二选一指定
--host-id 服务器ID,可通过hosts.toml文件获取,例如:host0001,可参见hosts.toml
-s, --start 完成本次IP更换后,自动重启数据库
-u, --username 指定数据库用户(不指定则默认使用sys用户)
-p, --password 数据库用户对应的密码

--listen-ip--listen-cidr均不指定时,yasom会判断当前的数据库监听地址IP是否可用。若可用,则不修改。若不可用,则改为yasagent的IP。--replica-ip--replica-cidr同理。

示例:

  1. 更换IP。

    场景1:使用新IP,更换某个服务器(例如host0001)上数据库实例的IP。

    $ yasboot ipchange host -t hosts.toml -l 192.168.1.2 -r 192.168.1.2 --host-id host0001
    
    host host0001 change ip success
    

    场景2:使用新网段,更换某个服务器(例如host0001)上数据库实例的IP。

    $ yasboot ipchange host -t hosts.toml -lc 192.168.1.1/24 -rc 192.168.1.1/24 --host host0001
    
    new replication ip is 192.168.1.2
    new listen ip is 192.168.1.2
    host0001 change ip success
    

    场景3:使用yasagent的IP,一次更换全部数据库实例的IP。

    $ yasboot ipchange host -t hosts.toml
    
    host0001 change ip success
    

    场景4:使用新网段,一次更换全部数据库实例的IP。

    $ yasboot ipchange host -t hosts.toml -lc 192.168.1.1/24,192.168.2.1/24 -lr 192.168.1.1/24,192.168.2.1/24
    
    host0001 change ip success
    
  2. 更换完IP后,重启数据库实例。

    • 方式一:更换最后一个服务器IP时,通过-s参数实现更换完成后启动数据库。
    $ yasboot ipchange host -t hosts.toml -l 192.168.1.2 -r 192.168.1.2 --host-id host0001 -s
    
    host host0001 change ip success
    start cluster now
    type | uuid             | name              | hostid | index  | status  | return_code | progress | cost
    ---------------------------------------------------------------------------------------------------------
    task | 01dd119a4034dd02 | StartYasdbCluster | -      | yashan | SUCCESS | 0           | 100      | 1
    ------+------------------+-------------------+--------+--------+---------+-------------+----------+------
    task completed, status: SUCCESS
    
    • 方式二:全部更换完成后,使用cluster start命令手动启动数据库实例。
    $ yasboot cluster start -c yashan
    
    type | uuid             | name              | hostid | index  | status  | return_code | progress | cost
    ---------------------------------------------------------------------------------------------------------
    task | 01dd119a4034ru01 | StartYasdbCluster | -      | yashan | SUCCESS | 0           | 100      | 1
    ------+------------------+-------------------+--------+--------+---------+-------------+----------+------
    task completed, status: SUCCESS
    
pdf-btn 下载文档
copy-btn 复制链接