#数据库资源管理命令

# 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 start instance

该命令用于启动当前服务器上的数据库实例。

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

在容器数据库集群中,系统将先启动根容器,然后根据各PDB的启动策略(由ycsctl add pdb命令的-policy参数指定)决定是否启动PDB。

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

ycsctl start instance [-startoption <startoption>] [-p <password>]
参数选项 取值 参数描述
-startoption
-m
NOMOUNT、MOUNT或OPEN 可选参数,指定数据库实例默认的启动阶段选项,省略时默认使用ycsctl add database命令指定的启动选项。
-p password 可选参数,指定数据库实例进行密钥管理的钱包的密码
当共享集群/分布式集群已有加密对象且需要直接启动数据库到MOUNT或OPEN模式时必须指定,否则数据库实例会启动失败。

Note:

请使用-startoption选项指定启动模式,-m选项已过时,保留仅用于兼容。

# ycsctl stop instance

该命令用于关闭当前服务器上的数据库实例。

命令格式如下:

ycsctl stop instance

# ycsctl modify instance

该命令用于离线修改YCS实例名称。

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

  1. 停止集群。
  2. 启动yasfs服务
  3. 执行本命令修改YCS实例名称。
  4. 停止yasfs服务。
  5. 启动集群。

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

ycsctl modify instance <nodename> -instancename <newname>
参数选项 取值 参数描述
nodename 指定待执行当前操作的目标实例节点名称,必须是目标数据库资源中已存在的节点名称。
-instancename newname 指定新的实例名称,必须在目标数据库资源的中全局唯一。

# 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 start pdb

该命令仅适用于容器数据库集群,用于在指定服务器上启动目标PDB的实例。

执行此命令前,必须保证数据库实例已经启动。

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

ycsctl start pdb -db <db_unique_name> -pdb <pdb_name> [-node <node_list>] [-startoption <startoption>] [-p <password>]
参数选项 取值 参数描述
-db db_unique_name 指定待执行当前操作的目标数据库资源的唯一名称,必须是已存在的数据库资源。
可通过ycsctl show config命令查询当前集群的配置信息,其中Database unique name字段的值即为该名称。
-pdb pdb_name 指定待启动的PDB名称。
-startoption
-m
NOMOUNT、MOUNT或OPEN 可选参数,指定PDB实例的启动阶段选项,省略时默认使用ycsctl add pdb命令指定的启动选项。
-node node_list 可选参数,指定PDB启动后需运行于哪些数据库实例(即服务器)上,多个实例名称间使用逗号(,)隔开,省略则表示PDB将运行于所有实例。
可通过ycsctl show config命令查询当前集群的配置信息,其中Node name字段值即为实例节点名称。
在共享集群/分布式集群部署中,每个PDB可以运行多个实例(即可在每台服务器上启动0 - 1个实例)并发读写同一份数据。在实际使用中,可基于服务器资源状况、部分PDB高可用需求等因素,综合考虑均衡负载每个PDB的实例分布。
-p password 可选参数,指定数据库实例进行密钥管理的钱包的密码
当共享集群/分布式集群已有加密对象且需要直接启动数据库到MOUNT或OPEN模式时必须指定,否则数据库实例会启动失败。

Note:

请使用-startoption选项指定启动模式,-m选项已过时,保留仅用于兼容。

示例

# 在host0001服务器上启动PDB1
$ ycsctl start pdb -db yashandb -pdb pdb1 -node host0001 -startoption open

# ycsctl stop pdb

该命令仅适用于容器数据库集群,用于关闭目标PDB在指定服务器上的实例。

执行此命令前,必须保证数据库实例已经启动。

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

ycsctl stop pdb -db <db_unique_name> -pdb <pdb_name> [-node <nodename>]
参数选项 取值 参数描述
-db db_unique_name 指定待执行当前操作的目标数据库资源的唯一名称,必须是已存在的数据库资源。
可通过ycsctl show config命令查询当前集群的配置信息,其中Database unique name字段的值即为该名称。
-pdb pdb_name 指定待关闭的PDB名称。
-node nodename 可选参数,指定关闭目标数据库实例(即服务器)上的PDB实例,多个实例节点名称间使用逗号(,)隔开,省略则表示关闭所有实例节点上的PDB实例。
可通过ycsctl show config命令查询当前集群的配置信息,其中Node name字段值即为实例节点名称。

示例

# 关闭PDB1在所有节点上的实例
$ ycsctl stop pdb -db yashandb -pdb pdb1

# 关闭 host0001 节点上的PDB1实例
$ ycsctl stop pdb -db yashandb -pdb pdb1 -node host0001

# ycsctl status pdb

该命令用于查看目标PDB的信息。

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

ycsctl status pdb -db <dbname> -pdb <pdbname> [-v|-vertical]
参数选项 取值 参数描述
-db dbname 指定待执行当前操作的目标数据库资源的唯一名称,必须是已存在的数据库资源。
可通过ycsctl show config命令查询当前集群的配置信息,其中Database unique name字段的值即为该名称。
-pdb pdbname 指定待查看的PDB名称。
-v
-vertical
可选参数,表示以竖表方式显示拓扑状态。

示例

$ ycsctl status pdb -db yashandb -pdb pdb1
+-------------------+---------------------------------+---------------------------+-------------------------------------+
|   Self Host ID    |        Cluster Master ID        |      YasFS Master ID      |          Active Host Count          |
+-------------------+---------------------------------+---------------------------+-------------------------------------+
|1                  |1                                |1                          |2                                    |
+-------------------+---------------------------------+---------------------------+-------------------------------------+
+---------+---------+---------+---------+-------------+--------------------+--------------------+-----------+-----------+
| Host ID | Target  |   YCS   |   YFS   |     VIP     |      DB_NAME       |      PDB_NAME      | DB_STATE  | IS_MASTER |
+---------+---------+---------+---------+-------------+--------------------+--------------------+-----------+-----------+
|1        |online   |online   |online   |             |yashandb            |pdb1                |online     |TRUE       |
+---------+---------+---------+---------+-------------+--------------------+--------------------+-----------+-----------+
|2        |online   |online   |online   |             |yashandb            |pdb1                |online     |FALSE      |
+---------+---------+---------+---------+-------------+--------------------+--------------------+-----------+-----------+

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

字段名 含义
Self Host ID 当前服务器ID。
Cluster Master ID YCS服务对应的主服务器ID。
YasFS Master ID YFS服务对应的主服务器ID。
Active Host Count 集群当前的活动服务器数。
Host ID 服务器ID。
Target 服务器启动时,表示数据库实例是否纳入YCS一起启动,根据参数AUTO_START而定,当AUTO_START=ALWAYS时,Target为online,当AUTO_START=NEVER时,Target为offline。
服务器停止时,恒为offline。
YCS YCS服务当前状态。
YFS YFS服务当前状态。
VIP 部署于此YCS节点的VIP资源的当前状态,格式为:<接管节点名.运行状态(IP地址:端口)>
DB_NAME 数据库资源的名称。
PDB_NAME PDB的名称。
DB_STATE 数据库实例的当前状态。
IS_MASTER 是否为主库角色。
SCAN VIP n 当前YCS节点的SCAN VIP信息和运行状态,格式为:<SCAN VIP运行节点名.运行状态>

# ycsctl modify pdb

该命令仅适用于容器数据库集群,用于修改PDB的启动和policy属性。

执行此命令前,必须保证数据库实例已经启动、目标PDB已关闭。

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

ycsctl modify pdb -db <db_unique_name> -pdb <pdb_name> [-policy <policy>] [-startoption <startoption>] [-offline]
参数选项 取值 参数描述
-db db_unique_name 指定待执行当前操作的目标数据库资源的唯一名称,必须是已存在的数据库资源。
可通过ycsctl show config命令查询当前集群的配置信息,其中Database unique name字段的值即为该名称。
-pdb pdb_name 指定待修改的PDB名称。
-policy AUTOMATIC或MANUAL 可选参数,指定PDB的管理策略。AUTOMATIC表示自动策略,MANUAL表示手动策略。
-startoption NOMOUNT、MOUNT或OPEN 可选参数,指定PDB的启动选项。
-offline - 可选参数,指定是否离线执行。

Note:

请使用-startoption选项指定启动模式,-m选项已过时,保留仅用于兼容。

示例

# 修改PDB1的policy为AUTOMATIC
$ ycsctl modify pdb -db yashandb -pdb pdb1 -policy AUTOMATIC

# 修改PDB1的启动选项为open
$ ycsctl modify pdb -db yashandb -pdb pdb1 -startoption open

# ycsctl remove pdb

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

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

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

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名称。

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

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

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

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

edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流