#集群管理命令
# ycsctl create cluster
该命令用于创建一个新的集群。
命令格式及参数介绍如下:
ycsctl create cluster clustername [-clusterid id] [-o]
| 参数选项 | 取值 | 参数描述 |
|---|---|---|
| clustername | 指定集群的名称,长度为4 ~ 64个字符,支持字母、数字、连字符(-)以及下划线(_),且必须以字母开头。 | |
| -clusterid | ID | 可选参数,指定集群唯一ID,由1 ~ 32个十六进制字符组成,用于区分集群的唯一性。 |
| -o | 可选参数,表示覆盖原有集群配置信息。 指定该选项将会覆盖原有集群配置信息且无法回退,非必要请勿指定。 |
# ycsctl set_ycr
该命令用于离线调整当前集群的YCS集群级参数项的值。
该操作的完整步骤大致如下:
- 停止集群。
- 启动yasfs服务。
- 执行本命令修改对应参数的值。
- 停止yasfs服务。
- 启动集群。
命令格式及参数介绍如下:
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的完整流程如下,在数据库运行时操作即可。
以安装用户登录任一数据库安装服务器,执行ycsctl add pdb命令向YCS添加PDB资源。
登录根容器,执行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的流程如下:
停止目标PDB,例如使用ycsctl stop pdb命令、直连PDB执行SHUTDOWN语句等。
在根容器上执行DROP PLUGGABLE DATABASE语句删除目标PDB。
执行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 |
该操作的完整步骤大致如下:
- 停止集群。
- 启动yasfs服务。
- 执行本命令调整对应属性。
- 停止yasfs服务。
- 启动集群。
# 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并删除。 |

