ALTER SYSTEM
语句用来对 OceanBase 数据库发送命令,执行某项指定操作。
该语句用于自举 OceanBase 集群。
alter_system_bootstrap_stmt:
ALTER SYSTEM BOOTSTRAP opt_cluster_type region_zone_server_list;
opt_cluster_type:
[CLUSTER cluster_role]
cluster_role:
PRIMARY | STANDBY
region_zone_server_list:
region_zone_server [, region_zone_server ...]
region_zone_server:
[region] zone server
region:
REGION [=] region_name
zone:
ZONE [=] zone_name
server:
SERVER [=] ip_port
ip_port:
'STR_VALUE:INT_VALUE'
系统自举时,需要指定 RootService 信息,多台 RootService 通过逗号(,)分隔。
参数 |
描述 |
---|---|
region_name |
指定 RootService 所在的地域,通过在“多地多中心”部署时指定。 |
zone_name |
指定 RootService 所属的 Zone。 |
ip_port |
指定 RootService 的 IP 和端口。 |
PRIMARY | STANDBY |
指定主备库。系统启动时需要指定主备库,如果不指定,默认采用主库启动。 |
指定一台 RootService:
ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.218.248.178:55410';
多台 RootService 通过逗号(,)分隔:
ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '172.24.65.24:55410', ZONE 'zone2'
SERVER '172.24.65.114:55410';
启动备库
ALTER SYSTEM BOOTSTRAP CLUSTER STANDBY ZONE 'zone1' SERVER '10.218.248.178:55410';
该语句触发参数指定的后台任务。
alter_system_job_stmt:
ALTER SYSTEM RUN JOB job_name
[zone | server];
参数 |
描述 |
---|---|
JOB job_name |
指定任务名称。有特殊字符时需要单引号,其它情况下单引号加与不加都支持,已支持的 JOB 有:
|
zone | server |
该任务指定 Zone 或者 Server 执行。 |
触发 RootService 自检任务。
ALTER SYSTEM RUN JOB "root_inspection";
该语句发起存储层合并。
alter_system_merge_stmt:
ALTER SYSTEM merge_action;
merge_action:
MAJOR FREEZE
| MINOR FREEZE
[tenant_list | replica] [server_list] [zone]
| START MERGE
zone
| {SUSPEND | RESUME} MERGE
[zone]
| CLEAN MERGE ERROR
tenant_list:
TENANT [=] (tenant_name_list)
tenant_name_list:
tenant_name [, tenant_name ...]
replica:
PARTITION_ID [=] 'partition_id%partition_count@table_id'
server_list:
SERVER [=] ip_port_list
参数 |
描述 |
---|---|
MAJOR FREEZE |
发起每日合并。 |
MINOR FREEZE |
发起转储。 |
START MERGE |
开始每日合并。 |
{SUSPEND | RESUME} MERGE |
暂停或恢复每日合并。 |
CLEAN MERGE ERROR |
清理合并出错的标记。 |
tenant_name |
指定租户转储。 |
PARTITION_ID |
指定副本转储。 |
SERVER |
指定机器转储。 |
zone |
指定 Zone 开始合并。 |
发起每日合并。
OceanBase(root@oceanbase)>alter system major freeze;
Query OK, 0 rows affected (0.06 sec)
该语句用来修改配置项信息。
alter_system_parameter_stmt:
ALTER SYSTEM [SET]
parameter_name = expression [SCOPE = {MEMORY | SPFILE | BOTH}] [COMMENT [=} 'text']
{SERVER [=] ‘ip:port’ | ZONE [=] ‘zone’};
参数 |
描述 |
---|---|
parameter_name |
指定要修改的配置项名称。 |
expression |
指定修改后的配置项的值。 |
COMMENT 'text' |
用于添加关于本次修改的注释。该参数为可选,建议不要省略。 |
SCOPE |
指定本次配置项修改的生效范围。它的值主要有以下三种:
SCOPE 默认值为 BOTH。对于不能立即生效的配置项,如果使用 BOTH 或 MEMORY,会报错 。 |
SERVER |
只修改指定 Server 实例的某个配置项。 |
ZONE |
表明本配置项的修改针对指定集群的特定 Server 类型,否则,针对所有集群的特定 Server 类型。 |
说明
同时修改多个系统配置项时,用“,”隔开。
查看系统配置项的格式:SHOW PARAMETERS [LIKE 'pattern' | WHERE expr];
修改配置项 enable_sql_audit 的信息。
OceanBase(root@oceanbase)>show parameters like 'enable_sql_audit';
+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| z1 | observer | 11.11.111.111 | 19510 | enable_sql_audit | NULL | True | specifies whether SQL audit is turned on. The default value is TRUE. Value: TRUE: turned on FALSE: turned off | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
1 rows in set (0.02 sec)
OceanBase(root@oceanbase)>alter system set enable_sql_audit = false scope = BOTH;
Query OK, 0 rows affected (0.05 sec)
OceanBase(root@oceanbase)>show parameters like 'enable_sql_audit';
+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
| z1 | observer | 11.11.111.111 | 19510 | enable_sql_audit | NULL | False | specifies whether SQL audit is turned on. The default value is TRUE. Value: TRUE: turned on FALSE: turned off | OBSERVER | CLUSTER | DEFAULT | DYNAMIC_EFFECTIVE |
+------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
1 rows in set (0.02 sec)
该语句系列用来触发刷新操作,包括刷新 schema、时区信息、各类缓存等。
alter_system_refresh_stmt:
ALTER SYSTEM refresh_action;
refresh_action:
REFRESH SCHEMA
[zone | server]
| REFRESH TIME_ZONE_INFO
| FLUSH cache_type CACHE
[tenant_list] [GLOBAL]
| FLUSH KVCACHE
[tenant] [CACHE [=] cache_name]
cache_type:
ALL
| LOCATION
| CLOG
| ILOG
| COLUMN_STAT
| BLOCK_INDEX
| BLOCK
| ROW
| BLOOM_FILTER
| SCHEMA
| PLAN
tenant:
TENANT [=] tenant_name
cache_name:
参数 |
描述 |
---|---|
REFRESH SCHEMA |
刷新 Schema。正常情况下,当系统执行 DDL 操作, RootService 都会主动通知所有 OBServer 刷新 Schema。当某些 OBServer 发生异常,和 RootService 网络中断,此时需要手动刷新 Schema。刷新Schema 可以针对单独的机器,也可以针对某个集群。 |
REFRESH TIME_ZONE_INFO |
通知集群中的所有 Server 更新本地的时区信息。 |
FLUSH cache_type CACHE |
清空指定 Cache 指令。 |
FLUSH KVCACHE |
清空 KV Cache 指令。
|
刷新单台 OBServer 的 Schema:
ALTER SYSTEM REFRESH SCHEMA SERVER='172.24.65.24:55410';
刷新整个 Zone 的 Schema:
ALTER SYSTEM REFRESH SCHEMA ZONE='zone1';
该语句用来处理副本的迁移,复制,删除,副本类型转换,角色切换等行为。
alter_system_replica_stmt:
ALTER SYSTEM replica_action;
replica_action:
SWITCH REPLICA
{LEADER | FOLLOWER}
{replica server | server [tenant_name] | zone [tenant_name]}
| DROP REPLICA partition_id_desc
replica server [create_timestamp] [zone] [FORCE]
| {MOVE | COPY} REPLICA
replica source destination
| REPORT REPLICA partition_id_desc
{zone | server}
| RECYCLE REPLICA partition_id_desc
{zone | server}
| {ALTER | CHANGE | MODIFY} REPLICA
replica server [set] REPLICA_TYPE = replica_type
source:
SOURCE [=] 'ip:port'
destination:
DESTINATION [=] 'ip:port'
partition_id_desc
PARTITION_ID partition_id%partition_count@table_id
partition_idx | partition_count | table_id | task_id:
INT_VALUE
create_timestamp:
CREATE_TIMESTAMP [=] INT_VALUE
tenant_name_list:
tenant_name [, tenant_name ...]
replica_type:
{FULL | F}
| {READONLY | R}
| {LOGONLY | L}
参数 |
描述 |
---|---|
SWITCH REPLICA |
Leader 改选。 |
DROP REPLICA |
副本删除。删除指定 OBServer 上的 Replica,必须指定 partition_id,OBServer 地址以及 create_timestamp。 |
{MOVE | COPY} REPLICA |
副本迁移/复制,需要指定源 OBServer 和目的 OBServer ,以及 partition_id。 |
REPORT REPLICA |
副本汇报,强制要求某个 OBServer 或者某个 Zone 内的所有 OBServer 进行 Replica 汇报。 |
RECYCLE REPLICA |
回收无用副本。 |
{ALTER | CHANGE | MODIFY} REPLICA |
修改副本属性,可以修改指定副本的副本类型。现在已经支持的副本类型包括:FULL/READONLY/LOGONLY。‘replica_type’的值可以是这三种副本类型的全称或者简写的首字符:’F/R/L’;大小写通用。 |
副本迁移
ALTER SYSTEM MOVE REPLICA PARTITION_ID '0%4@1100611139403777'
SOURCE '172.24.65.24:55410'
DESTINATION '172.24.65.26:55410';
删除副本
ALTER SYSTEM DROP REPLICA PARTITION_ID '0%4@1100611139403777'
SERVER '172.24.65.26:55410';
修改副本类型
ALTER SYSTEM CHANGE REPLICA PARTITION_ID '0%4@1100611139403777'
SERVER '172.24.65.26:55410';
CHANGE REPLICA_TYPE = 'L';
Leader改选
ALTER SYSTEM SWITCH REPLICA LEADER PARTITION_ID '0%4@1100611139403777'
SERVER '172.24.65.26:55410';
切换 RS 的角色。
alter_system_rootservice_stmt:
ALTER SYSTEM SWITCH ROOTSERVICE {LEADER | FOLLOWER} {zone | server};
参数 |
描述 |
---|---|
LEADER | FOLLOWER |
把 RS 的角色设置为 Leader 或者 Follower。 |
zone | server |
修改指定 Zone 或 Server 的 RS 角色。 |
把z1的 RS 切换为 Leader
ALTER SYSTEM SWITCH ROOTSERVICE LEADER ZONE 'z1';
该语句维护系统中 OBServer 状态,控制 OBServer 的增、删、启、停等操作。
alter_system_server_stmt:
ALTER SYSTEM server_action SERVER ip_port_list [zone];
server_action:
ADD
| DELETE
| CANCEL DELETE
| START
| STOP
| FORCE STOP
ip_port_list:
ip_port [, ip_port ...]
服务器状态图如下:
参数 |
描述 |
---|---|
ip_port |
指定 OBServer 的 IP 地址和端口 |
zone |
如果指定 Zone,将会对待维护 Server 执行 Zone 校验。 |
ADD |
新增服务器。 |
DELETE |
删除服务器。 |
CANCEL DELETE |
取消删除服务器。 |
START |
启动服务器。 |
STOP |
停止服务器。 |
FORCE STOP |
强制停止服务器。 |
新增服务器
ALTER SYSTEM ADD SERVER '172.24.65.113:55410' ZONE 'zone1';
注意
通过 Add 和 Delete 命令将服务器加入到服务列表,只有服务列表中的服务器才可以提供服务。
Delete 操作执行 leader 改选以及 replica 复制。
Delete 操作执行时间很长,因此,允许通过 Cancel 命令取消该操作。
该语句用来设置特征限流。
alter_system_throttle_stmt:
ALTER SYSTEM throttle_action;
throttle_action:
ENABLE SQL THROTTLE [priority_option] [using_metric_option_list]
| DISABLE SQL
priority_option:
FOR PRIORITY <= INT_VALUE
using_metric_option_list:
USING metric_option_list
metric_option_list:
metric_option [metric_option ...]
metric_option:
RT = {INT_VALUE | DECIMAL_VALUE}
| CPU = {INT_VALUE | DECIMAL_VALUE}
| IO = INT_VALUE
| NETWORK = {INT_VALUE | DECIMAL_VALUE}
| QUEUE_TIME = {INT_VALUE | DECIMAL_VALUE}
| LOGICAL_READS = {INT_VALUE | DECIMAL_VALUE}
参数 |
描述 |
---|---|
ENABLE SQL |
开启限流,后接限流特征及特征值 |
FOR PRIORITY |
设定优先级,目的是只在部分 session 生效 |
RT |
按请求执行时间限流 |
CPU |
按 CPU 占用限流,暂未支持 |
IO |
按 IO 次数限流,暂未支持 |
NETWORK |
按传输的网络流量大小限流,暂未支持 |
QUEUE_TIME |
按队列等待时间限流 |
LOGICAL_READS |
按逻辑读次数限流,暂未支持 |
DISABLE SQL |
关闭限流 |
对 prioriy<=100 的 session 上队列等待时间超过 0.1s 的请求限流。
alter system enable sql throttle for priority <= 100 using queue_time=0.1
该语句负责 UNIT 资源迁移。
alter_system_unit_stmt:
ALTER SYSTEM MIGRATE
UNIT [=] unit_id DESTINATION [=] ip_port
unit_id:
INT_VALUE
参数 |
描述 |
---|---|
unit_id |
UNIT 编号。 |
ip_port |
将 UNIT 迁移到的目标 Server 地址。 |
将 UNIT 1001 的资源迁移到 11.11.111.111:19510。
OceanBase(root@oceanbase)>alter system migrate unit = 1001 destination = '11.11.111.111:19510';
Query OK, 0 rows affected (0.05 sec)
该语句负责维护 Zone 的状态,如 Zone 的增、删、启、停等操作。
alter_system_zone_stmt:
ADD ZONE zone_name
[zone_option_list]
| {ALTER | CHANGE | MODIFY} ZONE zone_name
[SET] zone_option_list
| {DELETE | START | STOP | FORCE STOP} ZONE zone_name
zone_option_list:
zone_option [, zone_option ...]
zone_option:
region
| idc
| ZONE_TYPE {READONLY | READWRITE}
idc:
STR_VALUE
参数 |
描述 |
---|---|
ADD ZONE |
新增 Zone |
{ALTER | CHANGE | MODIFY} ZONE |
修改 Zone 的 Region 属性 说明
ALTER、CHANGE、MODIFY 三者功能相同,可以使用任意命令来修改 Zone 的 Region 属性。 |
DELETE ZONE |
删除 Zone,删除前需要保证 Zone 中没有可用的 Server |
START | STOP |
主动上下线 Zone |
删除 Zone。
OceanBase(root@oceanbase)>alter system delete zone 'z1';
ERROR 4668 (HY000): The zone is not empty and can not be deleted. You should delete the servers of the zone. There are 1 servers alive and 0 not alive.
集群管理相关操作,可以新增、删除、修改集群级相关属性。
ALTER SYSTEM cluster_action cluster_name CLUSTER_ID INTNUM;
cluster_action:
ADD CLUSTER
| REMOVE CLUSTER
| ENABLE CLUSTER SYNCHRONIZATION
| DISABLE CLUSTER SYNCHRONIZATION
| MODIFY CLUSTER REDO_TRANSPORT_OPTIONS = 'SYNC|ASYNC'
参数 |
描述 |
---|---|
ADD CLUSTER |
新增一个备库。 |
REMOVE CLUSTER |
删除一个已经存在的备库。 |
ENABLE CLUSTER SYNCHRONIZATION |
允许一个备库的同步。 |
DISABLE CLUSTER SYNCHRONIZATION |
禁掉一个备库的同步。 |
MODIFY CLUSTER REDO_TRANSPORT_OPTIONS |
在主库上修改备库的日志同步方式:
默认为 ASYCN 方式。 |
新增备库
ALTER SYSTEM ADD CLUSTER 'ob1.test' cluster_id = 1;
集群无损、有损切换语法,包括主库切成备库,备库切成主库。
ALTER SYSTEM commit_switchover_clause;
commit_switchover_clause:
COMMIT TO SWITCHOVER TO PRIMARY
| COMMIT TO SWITCHOVER TO PHYSICAL STANDBY
| ACTIVATE PHYSICAL STANDBY CLUSTER
| CONVERT TO PHYSICAL STANDBY
参数 |
描述 |
---|---|
COMMIT TO SWITCHOVER TO PRIMARY |
备库切成主库,在备库上执行,并且旧主库已经切换成主库,集群中没有其他的备库先切换成主库。 |
COMMIT TO SWITCHOVER TO PHYSICAL STANDBY |
主库无损切换成备库,在主库上执行,并且备库已经同步成功。 |
ACTIVATE PHYSICAL STANDBY CLUSTER |
在主库宕机的情况下,把一个集群拉成主库。 |
CONVERT TO PHYSICAL STANDBY |
把一个主库切换成备库。 |
主库切换成备库
ALTER SYSTEM COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
备库切换成主库
ALTER SYSTEM COMMIT TO SWITCHOVER TO PRIMARY;
主库宕机,备库切换成主库
ALTER SYSTEM ACTIVATE PHYSICAL STANDBY CLUSTER;
旧主库重启,切成备库
ALTER SYSTEM CONVERT TO PHYSICAL STANDBY;
该语句用来清除没有正在调度的负载均衡任务。
ALTER SYSTEM REMOVE BALANCE TASK opt_tenant_list opt_zone_list opt_balance_task_type;
opt_tenant_list
TENANT [=] name,name_list
opt_zone_list
ZONE [=] zone_name, zone_list
opt_balance_task_type
ALL
| MANUAL
| AUTO
参数 |
描述 |
---|---|
opt_tenant_list |
租户列表,如果不指定,就会清除所有租户的任务。 |
opt_zone_list |
Zone 的列表,可不指定。 |
opt_balance_task_type |
待清除的任务类型:
|
清除所有租户所有没有在调度的任务。
ALTER SYSTEM REMOVE BALANCE TASK;
该语句用来取消 UNIT 的迁移。
ALTER SYSTEM CANCEL MIGRATE UNIT unit_id;
参数 |
描述 |
---|---|
unit_id |
指定迁移的 UNIT 的 ID。 |
取消 UNIT 1001 的迁移。
ALTER SYSTEM CANCEL MIGRATE UNIT 1001;
该语句用来恢复租户的数据。
alter system restore dest_tenant from source_tenant at 'uri' until 'timestamp' with 'restore_option';
参数 |
描述 |
---|---|
dest_tenant |
指恢复的新租户的名字。 |
source_tenant |
指原集群的租户。 |
uri |
指备份的时候设置的 backup_dest。 |
timestamp |
恢复的时间戳,需要大于等于最早备份的基线备份的 CDB_OB_BACKUP_SET_DETAILS 的START_TIME,小于等于日志备份 CDB_OB_BACKUP_ARCHIVELOG_SUMMARY 的 MAX_NEXT_TIME。 |
restore_option |
恢复选项,支持以下几种:
|
恢复租户的数据。
alter system restore restored_trade from trade
at 'oss://antsys-oceanbasebackup/backup_rd/20200323?host=cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access_id=xxx&access_key=xxx'
until ' 2020-03-23 08:59:45'
with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool';
alter system restore restored_trade from trade
at 'file:///data/nfs/physical_backup_test/20200520'
until '2020-05-21 09:39:54.071670'
with 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool&locality=F@z1,F@z2,F@z3';
该语句用来切换租户。
ALTER SYSTEM CHANGE TENANT tenant_name;
ALTER SYSTEM CHANGE TENANT TENANT_ID [=] INTNUM;
参数 |
描述 |
---|---|
tenant_name |
指定要切换到的租户名称。 |
TENANT_ID |
指定要切换到的租户 ID。 |
切换至 ID 为 1001 的租户。
ALTER SYSTEM CHANGE TENANT TENANT_ID = 1001;
需以系统租户身份登陆,普通租户无法执行该命令。
需直连 OBServer 执行,断连接后需重新执行。
不能在事务执行过程中执行该命令。
切换到非系统租户后,无法执行 DDL 操作。
该语句用来触发备份。
设置备份的介质路径 : alter system set backup_dest = <backup_uri>
开启 logarchive 的 SQL: alter system archivelog
关闭 logarchive 的 SQL: alter system noarchivelog
触发基线备份(只支持集群级别): alter system backup database;
取消当前备份: alter system cancel backup
参数 |
描述 |
---|---|
backup_uri |
指定备份的路径,目前支持 oss 和 file 两种,具体格式参考示例。 |
设置备份的路径。
alter system set backup_dest='oss://antsys-oceanbasebackup/backup_dir?host=xxx&access_id=xxx&access_key=xxx';
alter system set backup_dest='file:///data/nfs/physical_backup_dir';
需以系统租户身份登陆,普通租户无法执行该命令。
描述
该语句用来设置主备库的保护模式,只能在主库上执行。
ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};
参数 |
描述 |
---|---|
AVAILABILITY |
设置为最大可用模式。 |
PERFORMANCE |
设置为最大性能模式,为默认配置。 |
PROTECTION |
设置为最大保护模式。 |
设置主备库的保护模式为最大可用模式。
ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE AVAILABILITY;
描述
该语句用来清理一个备份。
ALTER SYSTEM DELETE BACKUPSET backup_set_id
参数 |
描述 |
---|---|
backup_set_id |
指定要清理的备份对应的 backup_set 的编号。用户发起一次备份时会有对应的 id,在 CDB_OB_BACKUP_SET_DETAILS 视图中可以查到。 |
清理 backup_set_id 为 1 的备份数据。
ALTER SYSTEM DELETE BACKUPSET 1;
描述
该语句用来清理过期的备份数据。
使用该语句清理过期的备份数据之前,需要先配置过期时间。
ALTER SYSTEM SET backup_recovery_window = <过期时间>;
ALTER SYSTEM DELETE OBSOLETE BACKUP;
参数 |
描述 |
---|---|
backup_recovery_window |
该配置项用于表示成功备份的数据可以提供恢复的时间窗口,默认值为 0,表示永久保留;建议设置为'7d',表示备份数据保留一周,一周之后备份数据会被清理掉。 |
设置备份数据的过期时间为一周,一周后备份数据被清理。
ALTER SYSTEM SET backup_recovery_window = '7d';
ALTER SYSTEM DELETE OBSOLETE BACKUP;
保存数据运算结果。DataAbilityResult 用于保存在数据库上执行的 DataAbilityOperation 的结果。也可以看看:DataAbilityOperati...
HUAWEI DevEco Studio 下载地址面向华为终端全场景多设备的一站式分布式应用开发平台,支持分布式多端开发、分布式多端调测、多...
鸿蒙OS 媒体数据概述鸿蒙OS 媒体元数据获取开发指导鸿蒙OS 媒体存储数据操作开发指导鸿蒙OS 媒体扫描服务操作开发指导鸿蒙OS 视...