#集群管理命令

# ycsctl create cluster

该命令用于创建一个新的集群。

命令格式及参数介绍如下:

ycsctl create cluster clustername [-clusterid id] [-o]
参数选项 取值 参数描述
clustername 指定集群的名称,长度为4 ~ 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头。
-clusterid ID 可选参数,指定集群唯一ID,由1 ~ 32个十六进制字符组成,用于区分集群的唯一性。
-o 可选参数,表示覆盖原有集群配置信息。
指定该选项将会覆盖原有集群配置信息且无法回退,非必要请勿指定

# ycsctl set_ycr

该命令用于离线调整当前集群的YCS集群级参数项的值。

该操作的完整步骤大致如下:

  1. 停止集群。
  2. 启动yasfs服务。
  3. 执行本命令修改对应参数的值。
  4. 停止yasfs服务
  5. 启动集群。

命令格式及参数介绍如下:

ycsctl set_ycr key value
参数值 参数描述
key 指定待修改的参数名,大小写不敏感。
value 指定为对应参数的取值范围中的某个值。

# ycsctl add node

该命令用于在集群部署阶段向集群中添加一个实例节点,集群部署完成后,无法使用该命令。

Note:

安装部署YashanDB时,会内部调用执行添加实例节点的操作,无需手动执行该命令。

该命令用于在集群部署阶段向集群中添加一个节点。安装部署时执行,命令后加offline;扩容时执行,命令后不加offline。命令格式如下:

ycsctl add node nodename yascs_url [--vip ip/netmask[/interface]] [-p port]
参数选项 取值 参数描述
nodename 为待添加的实例节点指定名称,要求与节点所在服务器名称一致且全局唯一,长度为4 ~ 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头。
yascs_url 指定实例节点对应服务器的IP地址及端口,格式为:IPv4:PORT/[IPv6]:PORT,例如192.168.1.2:1770[fc00:7::126]:1688,IP地址具体规格可参考yasql使用指导
该地址将用于集群各个实例节点间内部互联,需保证所指定的IP地址之间路由可达、端口号不冲突。
--vip IP地址/掩码/网卡信息 可选参数,指定实例节点对应服务器的VIP资源配置信息,格式为:IP地址/子网掩码[/网卡名],例如:192.168.60.4/255.255.255.0/ens192或fc00:60::4/64/enp1s0,具体功能说明请查阅VIP管理
-p port_number 可选参数,指定实例节点对应服务器的服务端口号,数据库实例和VIP资源都会监听该端口。
必须和此服务器上的数据库实例配置参数LISTEN_ADDR的端口号一致。

# ycsctl add database

该命令用于在集群部署阶段向集群中添加一个数据库资源,集群部署完成后,无法使用该命令。

Note:

安装部署YashanDB时,会内部调用执行添加数据库的操作,无需手动执行该命令。

命令格式及参数介绍如下:

ycsctl add database -db db_unique_name [-dbname db_name] [-startoption start_options]
参数选项 取值 参数描述
-db db_unique_name 为数据库资源指定当前集群中的唯一名称,由1 ~ 64个字符组成,支持字母、数字、下划线(_)、井号(#)或美元符号($)组成的。
-dbname db_name 可选参数,指定数据库建库名称。省略时默认使用-db提供的唯一名称。
-startoption NOMOUNT、MOUNT或OPEN 可选参数,指定数据库实例默认的启动阶段选项,省略时默认为OPEN。
在后续启动数据库实例时,若未单独指定启动选项,则直接复用此处指定的值作为默认值。

# ycsctl add instance

该命令用于在集群部署阶段向集群中添加数据库实例,集群部署完成后,无法使用该命令。

命令格式及参数介绍如下:

ycsctl add instance -db db_unique_name -node nodename -instance instancename -datahome db_data_home
参数选项 取值 参数描述
-db db_unique_name 指定待执行当前操作的目标数据库资源的唯一名称,必须是已存在的数据库资源。
可通过ycsctl show config命令查询当前集群的配置信息,其中Database unique name字段的值即为该名称。
-node nodename 指定待执行当前操作的目标实例节点名称,必须是目标数据库资源中已存在的节点名称。
-instance instancename 为新增的数据库实例指定名称,必须在目标数据库资源的中全局唯一。
-datahome db_data_home 指定数据库的$YASDB_DATA目录,需指定绝对路径,例如/data/yashan/yasdb_data。

# ycsctl add pdb

该命令用于向容器数据库集群的YCS中添加PDB资源。

Note:

-offline通常作为YashanDB升级时yasboot工具调用的内部命令,非必要不建议用户手动执行。

命令格式及参数介绍如下:

ycsctl add pdb -db db_unique_name -pdb pdb_name [-policy policy] [-startoption start_options] [-offline]
参数选项 取值 参数描述
-db db_unique_name 指定待执行当前操作的目标数据库资源的唯一名称,必须是已存在的数据库资源。
可通过ycsctl show config命令查询当前集群的配置信息,其中Database unique name字段的值即为该名称。
-pdb pdb_name 为新PDB指定全局唯一的名称,长度为1 ~ 64个字符,支持字母、数字或下划线(_),且必须以字母开头。
-policy AUTOMATIC或MANUAL 可选参数,指定PDB的启动策略,即是否跟随根容器启动。
* AUTOMATIC: 默认值,PDB始终跟随根容器启动。
* MANUAL: PDB不跟随根容器启动,需手动启动PDB。

PDB的启动策略一经指定无法直接修改,只能先删除YCS中的PDB资源(ycsctl remove pdb命令)再新增(ycsctl add pdb命令)并指定新的启动策略。
-startoption NOMOUNT、MOUNT或OPEN 可选参数,指定PDB默认的启动阶段选项,省略时默认为OPEN。
在后续启动PDB时,若未单独指定启动选项,则直接复用此处指定的值作为默认值。
-offline 可选参数,仅作为YashanDB升级时yasboot工具调用的内部命令,非必要不得手动指定执行。

在容器数据库集群中,通过ycsctl工具新增PDB的完整流程如下,在数据库运行时操作即可。

  1. 以安装用户登录任一数据库安装服务器,执行ycsctl add pdb命令向YCS添加PDB资源。

  2. 登录根容器,执行CREATE PLUGGABLE DATABASE语句新增PDB,且PDB名称需一致。

# ycsctl remove pdb

该命令用于从容器数据库集群的YCS中删除PDB资源。

命令格式及参数介绍如下:

ycsctl remove pdb -db db_unique_name -pdb pdb_name
参数选项 取值 参数描述
-db db_unique_name 指定待执行当前操作的目标数据库资源的唯一名称,必须是已存在的数据库资源。
可通过ycsctl show config命令查询当前集群的配置信息,其中Database unique name字段的值即为该名称。
-pdb pdb_name 指定待移除的PDB资源名称,必须是目标数据库资源中已存在的PDB名称。

执行此命令前,必须保证YCS服务已经启动。

在容器数据库集群中,通过ycsctl工具删除PDB的流程如下:

  1. 停止目标PDB,例如使用ycsctl stop pdb命令、直连PDB执行SHUTDOWN语句等。

  2. 在根容器上执行DROP PLUGGABLE DATABASE语句删除目标PDB。

  3. 执行ycsctl remove pdb命令从YCS中删除目标PDB资源。

# ycsctl extend node

该命令用于动态扩容新节点到当前集群,或清理未完成节点扩容的残留配置。

命令格式及参数介绍如下:

ycsctl extend node <-f filename|--clean> [--post-db]
参数选项 取值 参数描述
-f filename 指定新节点的配置文件绝对路径。
--clean 清理未完成节点扩容的残留配置。
--post-db 当集群数据库已完成实例添加时必须指定此参数。

该命令用于离线调整集群的实例节点或数据库实例的相关属性,目前仅支持对以下属性进行调整:

  • 实例节点的服务端口号,其参数名为serviceport
  • 数据库实例的名称,其参数名为instancename

命令格式及参数介绍如下:

ycsctl modify object objectname key=value
取值 参数描述
node或instance 指定待操作的对象类型。
* node:即将操作实例节点
* instance:即将操作数据库实例
objectname 指定待操作的对象的名称。
指定数据库实例名时,格式为:node_name.instance_name
key=value 指定待调整的属性键值对。
* 如需修改实例节点的服务端口号,格式为:serviceport=port_number,完整的命令示例为ycsctl modify node host0001 serviceport=1601
* 如需数据库实例的名称,格式为:instancename=instance_name,完整的命令示例为ycsctl modify instance host0001.yasdb1 instancename=yashandb1

该操作的完整步骤大致如下:

  1. 停止集群。
  2. 启动yasfs服务。
  3. 执行本命令调整对应属性。
  4. 停止yasfs服务
  5. 启动集群。

# ycsctl import

该命令用于给当前集群导入指定的配置脚本。

推荐的操作流程为:先停止整个集群,再执行导入,导入完成后启动集群。

命令格式及参数介绍如下:

ycsctl import srcfile [-f]
参数选项 取值 参数描述
srcfile 指定待导入的配置脚本的完整路径。
-f 可选参数,表示强制导入
默认情况下,导入前会先进行节点活跃性检查,以免在线导入引起配置不一致问题。
指定该选项将会跳过节点活跃性检查,请根据实际操作场景谨慎使用

# ycsctl export

该命令用于给当前集群导出配置脚本的信息,导出后文件名固定为ycrbackup.sh。

命令格式及参数介绍如下:

ycsctl export destdir
参数值 参数描述
destdir 指定导出文件的存储位置。

# ycsctl show config

该命令用于查看当前集群的配置信息。

命令格式及参数介绍如下:

ycsctl show config

示例

$ ycsctl show config
    Cluster name: yashandb, config version: 6
    Cluster id: 47383c354eda3d04e517cdc21862431e
    Network timeout: 30s
    Disk heartbeat keep alive: 30s
    Fence type: I/O Protection Algorithm
    Default resource yasfs: enabled
    Network: 172.16.60.0/24
    Resource SCAN: enabled
      SCAN name: scan.example.com, listening port: 1688
      SCAN VIP: 192.168.1.100, ordinal number: 1
      SCAN VIP: 192.168.1.101, ordinal number: 2
      SCAN VIP: 192.168.1.102, ordinal number: 3
    Resource vip: enabled
    Databases in cluster:
        Database yashandb:
                Resource id: 0
                Database unique name: yashandb
                Database name: yashandb
                Database data directory: /data/yashan/yasdb_data/db-1-1
                Start option: OPEN
                Instances in database:
                        yasdb instance name:yasdb1, yasdb instance id:1
                        yasdb instance name:yasdb2, yasdb instance id:2
                PDBs in database:    // PDB信息仅存在于容器数据库集群中
                        Pdb resource id 4, name pdb1
                        Management policy: AUTOMATIC
                        Start option: OPEN
                        Pdb resource id 5, name pdb2
                        Management policy: AUTOMATIC
                        Start option: OPEN
    Nodes in cluster:
      Node name: host0001, yascs/yasfs inter connect URL: 172.16.1.2:1788, Node ID: 1
        public service port: 1688
        VIP: 192.168.1.62/24/ens192, home node: host0001
      Node name: host0002, yascs/yasfs inter connect URL: 172.16.1.3:1788, Node ID: 2
        public service port: 1688
        VIP: 192.168.1.63/24/ens192, home node: host0002

各项配置信息的介绍如下:

字段名 含义
Cluster name 当前集群的名称。
config version YCR配置版本,集群创建后,每次更改集群注册信息时配置版本就会加一。
Cluster id 当前集群的唯一ID。
Network timeout YCS网络心跳的超时时间(单位为秒)。若超过此时间,则判定为网络超时,YCS进入故障处理流程。
可以通过ycsctl set_ycr命令进行修改,key为NETWORK_HB_TIMEOUT。
Disk heartbeat keep alive YCS磁盘心跳的超时时间(单位为秒),若超过此时间,则判定YCS节点出现磁盘心跳故障并且无法恢复,YCS进入故障处理流程。
可以通过ycsctl set_ycr命令进行修改,key为DISK_HB_KEEP_ALIVE。
Fence type 当前集群所使用的I/O Fencing的类型。
可以通过ycsctl set_ycr命令进行修改,key为FENCE_TYPE。
Default resource yasfs 内嵌资源YFS,默认启动。
Network 集群的公网配置。
Resource SCAN 集群是否开启SCAN功能,默认关闭。
SCAN name SCAN域名。
listening port SCAN的监听端口。
SCAN VIP SCAN VIP信息,包括IP地址和序号(ordinal number)。
Resource vip 集群是否开启VIP功能,默认关闭。
Database unique name 数据库在当前集群中的唯一名称。
Database name 数据库建库名称。
Database data directory 数据库的DATA目录,即$YASDB_DATA。
Start option 数据库的启动选项,启动数据库时若不再额外指定启动选项将默认启动至该阶段。
PDBs in database PDB相关信息,仅存在于容器数据库集群中。信息项主要包括:
* name:PDB的名称。
* Management policy:PDB的启动策略,即是否随数据库实例启动而启动。
* Start option:PDB的启动选项,启动PDB时若不再额外指定启动选项将默认启动至该阶段。
yasdb instance name 数据库实例的名称。
yasdb instance id 数据库实例的ID。
Node name 实例节点的名称。
yascs/yasfs inter connect URL 节点间的互联地址。
Node ID 实例节点的ID。
public service port 节点监听的服务端口号。
VIP 节点上VIP资源的配置信息(IP地址/子网掩码/网卡名)以及它的部署节点名(home node)。

# ycsctl add network

该命令用于为集群增加公网配置。添加公网后才能使用VIP或SCAN功能。

命令格式及参数介绍如下:

ycsctl add network -subnet subnet/netmask[/interface] [-offline] 
参数选项 取值 参数描述
-subnet subnet/netmask[/interface] 指定公网的配置信息,格式为:子网/子网掩码/网卡名,其中网卡名可选。
* 若不指定网卡名,将使用可以访问给定子网的任意网卡。
* 若指定网卡名,请确保同一集群中所有服务器都有可以访问给定子网的同名网卡。
-offline 可选参数,表示允许在YCS未启动时执行该命令。

# ycsctl remove network

该命令用于为集群删除公网配置,必须先删除所有VIP和SCAN配置才能删除公网。

命令格式如下:

ycsctl remove network

# ycsctl add vip

该命令用于在集群运行时动态添加一个VIP资源。

命令格式及参数介绍如下:

ycsctl add vip -n node_name --vip ip/netmask[/interface]
参数选项 取值 参数描述
-n node_name 指定需添加VIP资源的实例节点名。
--vip ip/netmask[/interface] 指定VIP资源的配置信息,必须属于公网子网。格式为:IP地址/子网掩码/网卡名,其中网卡名可选。
* 若不指定网卡名,将延续network的网卡名配置。如果无法确保同一集群中所有服务器访问公网的网卡名一致,则必须省略。
* 若指定网卡名,请确保不与network指定的冲突,且同一集群中所有服务器均有可以访问公网子网的同名网卡。

# ycsctl remove vip

该命令用于在集群运行时动态删除一个VIP资源。

命令格式及参数介绍如下:

ycsctl remove vip -n node_name [-f]
参数选项 取值 参数描述
-n node_name 指定待删除的目标VIP资源所在实例节点的名称。
可通过ycsctl show config命令查询当前集群的配置信息,其中目标VIP资源的home node字段值即为该名称。
-f 可选参数,表示强制停止待删除的VIP资源。

# ycsctl add scan

该命令用于为集群添加SCAN资源。

命令格式及参数介绍如下:

ycsctl add scan -scanname scan_domain_name -p port_number [-offline]
参数选项 取值 参数描述
-scanname scan_domain_name 指定SCAN域名,需为完整限定主机名。
客户端/驱动可通过该名称连接数据库。
-p port_number 指定SCAN的监听端口。
-offline 可选参数,表示允许在YCS未启动时执行该命令。

# ycsctl start scan

该命令用于启动SCAN VIP。

命令格式及参数介绍如下:

ycsctl start scan [-scannumber ordinal_number] [-node node_name]
参数选项 取值 参数描述
-scannumber ordinal_number 可选参数,指定待启动的目标SCAN VIP的序号,取值为1、2或3,省略时表示启动所有SCAN VIP。
序号与SCAN VIP的对应关系可通过ycsctl show config查看。
-node node_name 可选参数,指定目标SCAN VIP的启动实例节点名称,省略时YCS将按均匀分布的原则自动分配启动节点。

# ycsctl stop scan

该命令用于停止SCAN VIP。

命令格式及参数介绍如下:

ycsctl stop scan [-scannumber ordinal_number]
参数选项 取值 参数描述
-scannumber ordinal_number 可选参数,指定待停止的目标SCAN VIP的序号,取值为1、2或3,省略时表示启动所有SCAN VIP。
序号与SCAN VIP的对应关系可通过ycsctl show config查看。

# ycsctl relocate scan

该命令用于手动迁移SCAN VIP,即将某个SCAN VIP移到其他节点。

命令格式及参数介绍如下:

ycsctl relocate scan -scannumber ordinal_number [-node node_name]
参数选项 取值 参数描述
-scannumber ordinal_number 可选参数,指定待迁移的目标SCAN VIP的序号,取值为1、2或3,省略时表示启动所有SCAN VIP。
序号与SCAN VIP的对应关系可通过ycsctl show config查看。
-node node_name 可选参数,指定目标SCAN VIP待迁往的目标节点名称,省略时YCS将按照高可用和均匀分布的原则自动迁移。

# ycsctl remove scan

该命令用于移除SCAN。

命令格式及参数介绍如下:

ycsctl remove scan [-f]
参数选项 参数描述
-f 可选参数,表示强制停止SCAN并删除。
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流