ALTER SYSTEM 语句用来对 OceanBase 数据库发送命令,执行某项指定操作。

BOOTSTRAP

描述

该语句用于自举 OceanBase 集群。

格式

  1. alter_system_bootstrap_stmt:
  2. ALTER SYSTEM BOOTSTRAP opt_cluster_type region_zone_server_list;
  3. opt_cluster_type:
  4. [CLUSTER cluster_role]
  5. cluster_role:
  6. PRIMARY | STANDBY
  7. region_zone_server_list:
  8. region_zone_server [, region_zone_server ...]
  9. region_zone_server:
  10. [region] zone server
  11. region:
  12. REGION [=] region_name
  13. zone:
  14. ZONE [=] zone_name
  15. server:
  16. SERVER [=] ip_port
  17. ip_port:
  18. 'STR_VALUE:INT_VALUE'

参数解释

系统自举时,需要指定 RootService 信息,多台 RootService 通过逗号(,)分隔。

参数

描述

region_name

指定 RootService 所在的地域,通过在“多地多中心”部署时指定。

zone_name

指定 RootService 所属的 Zone。

ip_port

指定 RootService 的 IP 和端口。

PRIMARY | STANDBY

指定主备库。系统启动时需要指定主备库,如果不指定,默认采用主库启动。

示例

  • 指定一台 RootService:
  1. ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.218.248.178:55410';
  • 多台 RootService 通过逗号(,)分隔:
  1. ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '172.24.65.24:55410', ZONE 'zone2'
  2. SERVER '172.24.65.114:55410';
  • 启动备库
  1. ALTER SYSTEM BOOTSTRAP CLUSTER STANDBY ZONE 'zone1' SERVER '10.218.248.178:55410';

JOB

描述

该语句触发参数指定的后台任务。

格式

  1. alter_system_job_stmt:
  2. ALTER SYSTEM RUN JOB job_name
  3. [zone | server];

参数解释

参数

描述

JOB job_name

指定任务名称。有特殊字符时需要单引号,其它情况下单引号加与不加都支持,已支持的 JOB 有:

  • check_partition_table:OBServer 执行 partition table 核对删除任务

  • root_inspection:触发 RootService 自检

zone | server

该任务指定 Zone 或者 Server 执行。

示例

  • 触发 RootService 自检任务。
  1. ALTER SYSTEM RUN JOB "root_inspection";

MERGE

描述

该语句发起存储层合并。

格式

  1. alter_system_merge_stmt:
  2. ALTER SYSTEM merge_action;
  3. merge_action:
  4. MAJOR FREEZE
  5. | MINOR FREEZE
  6. [tenant_list | replica] [server_list] [zone]
  7. | START MERGE
  8. zone
  9. | {SUSPEND | RESUME} MERGE
  10. [zone]
  11. | CLEAN MERGE ERROR
  12. tenant_list:
  13. TENANT [=] (tenant_name_list)
  14. tenant_name_list:
  15. tenant_name [, tenant_name ...]
  16. replica:
  17. PARTITION_ID [=] 'partition_id%partition_count@table_id'
  18. server_list:
  19. SERVER [=] ip_port_list

参数解释

参数

描述

MAJOR FREEZE

发起每日合并。

MINOR FREEZE

发起转储。

START MERGE

开始每日合并。

{SUSPEND | RESUME} MERGE

暂停或恢复每日合并。

CLEAN MERGE ERROR

清理合并出错的标记。

tenant_name

指定租户转储。

PARTITION_ID

指定副本转储。

SERVER

指定机器转储。

zone

指定 Zone 开始合并。

示例

  • 发起每日合并。
  1. OceanBase(root@oceanbase)>alter system major freeze;
  2. Query OK, 0 rows affected (0.06 sec)

PARAMETER

描述

该语句用来修改配置项信息。

格式

  1. alter_system_parameter_stmt:
  2. ALTER SYSTEM [SET]
  3. parameter_name = expression [SCOPE = {MEMORY | SPFILE | BOTH}] [COMMENT [=} 'text']
  4. {SERVER [=] ip:port | ZONE [=] zone’};

参数解释

参数

描述

parameter_name

指定要修改的配置项名称。

expression

指定修改后的配置项的值。

COMMENT ‘text’

用于添加关于本次修改的注释。该参数为可选,建议不要省略。

SCOPE

指定本次配置项修改的生效范围。它的值主要有以下三种:

  • MEMORY:表明只修改内存中的配置项,修改立即生效,且本修改在 Server 重启以后会失效(目前暂时没有配置项支持这种方式)。

  • SPFILE:表明只修改配置表中的配置项值,当 Server 重启以后才生效。

  • BOTH:表明既修改配置表,又修改内存值,修改立即生效,且 Server 重启以后配置值仍然生效。

SCOPE 默认值为 BOTH。对于不能立即生效的配置项,如果使用 BOTH 或 MEMORY,会报错 。

SERVER

只修改指定 Server 实例的某个配置项。

ZONE

表明本配置项的修改针对指定集群的特定 Server 类型,否则,针对所有集群的特定 Server 类型。

说明

同时修改多个系统配置项时,用“,”隔开。

查看系统配置项的格式:SHOW PARAMETERS [LIKE 'pattern' | WHERE expr];

示例

  • 修改配置项 enable_sql_audit 的信息。
  1. OceanBase(root@oceanbase)>show parameters like 'enable_sql_audit';
  2. +------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
  3. | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
  4. +------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
  5. | 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 |
  6. +------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
  7. 1 rows in set (0.02 sec)
  8. OceanBase(root@oceanbase)>alter system set enable_sql_audit = false scope = BOTH;
  9. Query OK, 0 rows affected (0.05 sec)
  10. OceanBase(root@oceanbase)>show parameters like 'enable_sql_audit';
  11. +------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
  12. | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level |
  13. +------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
  14. | 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 |
  15. +------+----------+---------------+----------+------------------+-----------+-------+---------------------------------------------------------------------------------------------------------------+----------+---------+---------+-------------------+
  16. 1 rows in set (0.02 sec)

REFRESH

描述

该语句系列用来触发刷新操作,包括刷新 schema、时区信息、各类缓存等。

格式

  1. alter_system_refresh_stmt:
  2. ALTER SYSTEM refresh_action;
  3. refresh_action:
  4. REFRESH SCHEMA
  5. [zone | server]
  6. | REFRESH TIME_ZONE_INFO
  7. | FLUSH cache_type CACHE
  8. [tenant_list] [GLOBAL]
  9. | FLUSH KVCACHE
  10. [tenant] [CACHE [=] cache_name]
  11. cache_type:
  12. ALL
  13. | LOCATION
  14. | CLOG
  15. | ILOG
  16. | COLUMN_STAT
  17. | BLOCK_INDEX
  18. | BLOCK
  19. | ROW
  20. | BLOOM_FILTER
  21. | SCHEMA
  22. | PLAN
  23. tenant:
  24. TENANT [=] tenant_name
  25. 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 指令。

  • 如果指定 tenant 和 cache_name,则清除指定租户的指定 KV Cache

  • 如果只指定 tenant,则清除指定租户的全部KV Cache

  • 如果不指定 tenant 和 cache_name,则清除所有租户的全部KV Cache

示例

  • 刷新单台 OBServer 的 Schema:
  1. ALTER SYSTEM REFRESH SCHEMA SERVER='172.24.65.24:55410';
  • 刷新整个 Zone 的 Schema:
  1. ALTER SYSTEM REFRESH SCHEMA ZONE='zone1';

REPLICA

描述

该语句用来处理副本的迁移,复制,删除,副本类型转换,角色切换等行为。

格式

  1. alter_system_replica_stmt:
  2. ALTER SYSTEM replica_action;
  3. replica_action:
  4. SWITCH REPLICA
  5. {LEADER | FOLLOWER}
  6. {replica server | server [tenant_name] | zone [tenant_name]}
  7. | DROP REPLICA partition_id_desc
  8. replica server [create_timestamp] [zone] [FORCE]
  9. | {MOVE | COPY} REPLICA
  10. replica source destination
  11. | REPORT REPLICA partition_id_desc
  12.     {zone | server}
  13.   | RECYCLE REPLICA partition_id_desc
  14.     {zone | server}
  15.   | {ALTER | CHANGE | MODIFY} REPLICA  
  16. replica server [set] REPLICA_TYPE = replica_type
  17. source:
  18. SOURCE [=] 'ip:port'
  19. destination:
  20. DESTINATION [=] 'ip:port'
  21. partition_id_desc
  22. PARTITION_ID partition_id%partition_count@table_id
  23. partition_idx | partition_count | table_id | task_id:
  24. INT_VALUE
  25. create_timestamp:
  26. CREATE_TIMESTAMP [=] INT_VALUE
  27. tenant_name_list:
  28. tenant_name [, tenant_name ...]
  29. replica_type:
  30. {FULL | F}
  31. | {READONLY | R}
  32. | {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’;大小写通用。

示例

  • 副本迁移
  1. ALTER SYSTEM MOVE REPLICA PARTITION_ID '0%4@1100611139403777'
  2. SOURCE '172.24.65.24:55410'
  3. DESTINATION '172.24.65.26:55410';
  • 删除副本
  1. ALTER SYSTEM DROP REPLICA PARTITION_ID '0%4@1100611139403777'
  2. SERVER '172.24.65.26:55410';
  • 修改副本类型
  1. ALTER SYSTEM CHANGE REPLICA PARTITION_ID '0%4@1100611139403777'
  2. SERVER '172.24.65.26:55410';
  3. CHANGE REPLICA_TYPE = 'L';
  • Leader改选
  1. ALTER SYSTEM SWITCH REPLICA LEADER PARTITION_ID '0%4@1100611139403777'
  2. SERVER '172.24.65.26:55410';

ROOTSERVICE

描述

切换 RS 的角色。

格式

  1. alter_system_rootservice_stmt:
  2. ALTER SYSTEM SWITCH ROOTSERVICE {LEADER | FOLLOWER} {zone | server};

参数解释

参数

描述

LEADER | FOLLOWER

把 RS 的角色设置为 Leader 或者 Follower。

zone | server

修改指定 Zone 或 Server 的 RS 角色。

示例

  • 把z1的 RS 切换为 Leader
  1. ALTER SYSTEM SWITCH ROOTSERVICE LEADER ZONE 'z1';

SERVER

描述

该语句维护系统中 OBServer 状态,控制 OBServer 的增、删、启、停等操作。

格式

  1. alter_system_server_stmt:
  2. ALTER SYSTEM server_action SERVER ip_port_list [zone];
  3. server_action:
  4. ADD
  5. | DELETE
  6. | CANCEL DELETE
  7. | START
  8. | STOP
  9. | FORCE STOP
  10. ip_port_list:
  11. ip_port [, ip_port ...]

参数解释

服务器状态图如下:

image.png

参数

描述

ip_port

指定 OBServer 的 IP 地址和端口

zone

如果指定 Zone,将会对待维护 Server 执行 Zone 校验。

ADD

新增服务器。

DELETE

删除服务器。

CANCEL DELETE

取消删除服务器。

START

启动服务器。

STOP

停止服务器。

FORCE STOP

强制停止服务器。

示例

  • 新增服务器
  1. ALTER SYSTEM ADD SERVER '172.24.65.113:55410' ZONE 'zone1';

注意

  • 通过 Add 和 Delete 命令将服务器加入到服务列表,只有服务列表中的服务器才可以提供服务。

  • Delete 操作执行 leader 改选以及 replica 复制。

  • Delete 操作执行时间很长,因此,允许通过 Cancel 命令取消该操作。

THROTTLE

描述

该语句用来设置特征限流。

格式

  1. alter_system_throttle_stmt:
  2. ALTER SYSTEM throttle_action;
  3. throttle_action:
  4. ENABLE SQL THROTTLE [priority_option] [using_metric_option_list]
  5. | DISABLE SQL
  6. priority_option:
  7. FOR PRIORITY <= INT_VALUE
  8. using_metric_option_list:
  9. USING metric_option_list
  10. metric_option_list:
  11. metric_option [metric_option ...]
  12. metric_option:
  13. RT = {INT_VALUE | DECIMAL_VALUE}
  14. | CPU = {INT_VALUE | DECIMAL_VALUE}
  15. | IO = INT_VALUE
  16. | NETWORK = {INT_VALUE | DECIMAL_VALUE}
  17. | QUEUE_TIME = {INT_VALUE | DECIMAL_VALUE}
  18. | 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 的请求限流。
  1. alter system enable sql throttle for priority <= 100 using queue_time=0.1

UNIT

描述

该语句负责 UNIT 资源迁移。

格式

  1. alter_system_unit_stmt:
  2. ALTER SYSTEM MIGRATE
  3. UNIT [=] unit_id DESTINATION [=] ip_port
  4. unit_id:
  5. INT_VALUE

参数解释

参数

描述

unit_id

UNIT 编号。

ip_port

将 UNIT 迁移到的目标 Server 地址。

示例

  • 将 UNIT 1001 的资源迁移到 11.11.111.111:19510。
  1. OceanBase(root@oceanbase)>alter system migrate unit = 1001 destination = '11.11.111.111:19510';
  2. Query OK, 0 rows affected (0.05 sec)

ZONE

描述

该语句负责维护 Zone 的状态,如 Zone 的增、删、启、停等操作。

格式

  1. alter_system_zone_stmt:
  2. ADD ZONE zone_name
  3. [zone_option_list]
  4. | {ALTER | CHANGE | MODIFY} ZONE zone_name
  5. [SET] zone_option_list
  6. | {DELETE | START | STOP | FORCE STOP} ZONE zone_name
  7. zone_option_list:
  8. zone_option [, zone_option ...]
  9. zone_option:
  10. region
  11. | idc
  12. | ZONE_TYPE {READONLY | READWRITE}
  13. idc:
  14. 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。
  1. OceanBase(root@oceanbase)>alter system delete zone 'z1';
  2. 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.

CLUSTER

描述

集群管理相关操作,可以新增、删除、修改集群级相关属性。

格式

  1. ALTER SYSTEM cluster_action cluster_name CLUSTER_ID INTNUM;
  2. cluster_action:
  3. ADD CLUSTER
  4. | REMOVE CLUSTER
  5. | ENABLE CLUSTER SYNCHRONIZATION
  6. | DISABLE CLUSTER SYNCHRONIZATION
  7. | MODIFY CLUSTER REDO_TRANSPORT_OPTIONS = 'SYNC|ASYNC'

参数解释

参数

描述

ADD CLUSTER

新增一个备库。

REMOVE CLUSTER

删除一个已经存在的备库。

ENABLE CLUSTER SYNCHRONIZATION

允许一个备库的同步。

DISABLE CLUSTER SYNCHRONIZATION

禁掉一个备库的同步。

MODIFY CLUSTER REDO_TRANSPORT_OPTIONS

在主库上修改备库的日志同步方式:

  • SYNC:强同步

  • ASYNC:异步同步

默认为 ASYCN 方式。

示例

  • 新增备库
  1. ALTER SYSTEM ADD CLUSTER 'ob1.test' cluster_id = 1;

SWITCHOVER

描述

集群无损、有损切换语法,包括主库切成备库,备库切成主库。

格式

  1. ALTER SYSTEM commit_switchover_clause;
  2. commit_switchover_clause
  3. COMMIT TO SWITCHOVER TO PRIMARY
  4. | COMMIT TO SWITCHOVER TO PHYSICAL STANDBY
  5. | ACTIVATE PHYSICAL STANDBY CLUSTER
  6. | CONVERT TO PHYSICAL STANDBY

参数解释

参数

描述

COMMIT TO SWITCHOVER TO PRIMARY

备库切成主库,在备库上执行,并且旧主库已经切换成主库,集群中没有其他的备库先切换成主库。

COMMIT TO SWITCHOVER TO PHYSICAL STANDBY

主库无损切换成备库,在主库上执行,并且备库已经同步成功。

ACTIVATE PHYSICAL STANDBY CLUSTER

在主库宕机的情况下,把一个集群拉成主库。

CONVERT TO PHYSICAL STANDBY

把一个主库切换成备库。

示例

  • 主库切换成备库
  1. ALTER SYSTEM COMMIT TO SWITCHOVER TO PHYSICAL STANDBY
  • 备库切换成主库
  1. ALTER SYSTEM COMMIT TO SWITCHOVER TO PRIMARY
  • 主库宕机,备库切换成主库
  1. ALTER SYSTEM ACTIVATE PHYSICAL STANDBY CLUSTER
  • 旧主库重启,切成备库
  1. ALTER SYSTEM CONVERT TO PHYSICAL STANDBY

BALANCE TASK

描述

该语句用来清除没有正在调度的负载均衡任务。

格式

  1. ALTER SYSTEM REMOVE BALANCE TASK opt_tenant_list opt_zone_list opt_balance_task_type;
  2. opt_tenant_list
  3. TENANT [=] name,name_list
  4. opt_zone_list
  5. ZONE [=] zone_name, zone_list
  6. opt_balance_task_type
  7. ALL
  8. | MANUAL
  9. | AUTO

参数解释

参数

描述

opt_tenant_list

租户列表,如果不指定,就会清除所有租户的任务。

opt_zone_list

Zone 的列表,可不指定。

opt_balance_task_type

待清除的任务类型:

  • ALL:所有的任务;

  • AUTO:自动生成的任务;

  • MANUAL:用户手动发起的任务。

示例

  • 清除所有租户所有没有在调度的任务。
  1. ALTER SYSTEM REMOVE BALANCE TASK

CANCEL MIGRATE UNIT

描述

该语句用来取消 UNIT 的迁移。

格式

  1. ALTER SYSTEM CANCEL MIGRATE UNIT unit_id;

参数解释

参数

描述

unit_id

指定迁移的 UNIT 的 ID。

示例

  • 取消 UNIT 1001 的迁移。
  1. ALTER SYSTEM CANCEL MIGRATE UNIT 1001;

RESTORE

描述

该语句用来恢复租户的数据。

格式

  1. ALTER SYSTEM RESTORE [table_name_list FOR] dest_tenant FROM source_tenant AT 'url' UNTIL 'timestamp' WITH 'restore_option';

参数解释

参数

描述

table_name_list

指定恢复租户中特定表格的数据,其中表名需要包含表所属的数据库(MySQL 租户)或用户(Oracle 租户)。

dest_tenant

指恢复的新租户的名字。

source_tenant

指原集群的租户。

url

指备份的时候设置的 backup_dest。

timestamp

恢复的时间戳,需要大于等于最早备份的基线备份的 CDB_OB_BACKUP_SET_DETAILS 的START_TIME,小于等于日志备份 CDB_OB_BACKUP_ARCHIVELOG_SUMMARY 的 MAX_NEXT_TIME。

restore_option

恢复选项,支持以下几种:

  • backup_cluster_name:源集群的名字,必选项

  • backup_cluster_id:源集群的 cluster_id,必选项

  • pool_list:用户的资源池,必选项

  • locality:租户的 locality 信息,可选项

  • kms_encrypt:为 true 表示需要恢复的时候指定kms_encrypt_info,可选项

示例

  • 恢复租户的数据。
  1. ALTER SYSTEM RESTORE restored_trade FROM trade
  2. AT 'oss://antsys-oceanbasebackup/backup_rd/20200323?host=cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access_id=xxx&access_key=xxx'
  3. UNTIL ' 2020-03-23 08:59:45'
  4. WITH 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool';
  5. ALTER SYSTEM RESTORE restored_trade FROM trade
  6. AT 'file:///data/nfs/physical_backup_test/20200520'
  7. UNTIL '2020-05-21 09:39:54.071670'
  8. WITH 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool';
  • 恢复租户中指定表的数据
  1. ALTER SYSTEM RESTORE `crm`.`sales`, `crm`.`products`, `hr`.`employees` FOR new_tenant1 FROM tenant1
  2. AT 'oss://antsys-oceanbasebackup/backup_rd/?host=cn-hangzhou-alipay-b.oss-cdn.aliyun-inc.com&access_id=xxx&access_key=xxx'
  3. UNTIL '2021-02-28 08:59:45'
  4. WITH 'backup_cluster_name=ob20daily.backup&backup_cluster_id=1&pool_list=restore_pool';

CHANGE TENANT

描述

该语句用来切换租户。

格式

  1. ALTER SYSTEM CHANGE TENANT tenant_name;
  2. ALTER SYSTEM CHANGE TENANT TENANT_ID [=] INTNUM;

参数解释

参数

描述

tenant_name

指定要切换到的租户名称。

TENANT_ID

指定要切换到的租户 ID。

示例

  • 切换至 ID 为 1001 的租户。
  1. ALTER SYSTEM CHANGE TENANT TENANT_ID = 1001;

注意事项

  1. 需以系统租户身份登陆,普通租户无法执行该命令。

  2. 需直连 OBServer 执行,断连接后需重新执行。

  3. 不能在事务执行过程中执行该命令。

  4. 切换到非系统租户后,无法执行 DDL 操作。

BACKUP

描述

该语句用来触发备份。

格式

  1. //设置备份的介质路径
  2. ALTER SYSTEM SET backup_dest = <backup_uri>;
  3. //开启 logarchive
  4. ALTER SYSTEM ARCHIVELOG;
  5. //关闭 logarchive
  6. ALTER SYSTEM NOARCHIVELOG;
  7. //触发基线备份(只支持集群级别)
  8. ALTER SYSTEM BACKUP DATABASE;
  9. //取消当前备份
  10. ALTER SYSTEM CANCEL BACKUP;
  11. //设置备份备份的介质路径
  12. ALTER SYSTEM SET backup_backup_dest = <backup_backup_uri>;
  13. //备份备份的日志
  14. ALTER SYSTEM BACKUP BACKUPPIECE ALL NOT BACKED UP N TIMES [tenant_id = N] [tenant_name = name] [backup_backup_dest=uri];
  15. ALTER SYSTEM BACKUP BACKUPPIECE [= N] [tenant_id = N] [tenant_name = name] [backup_backup_dest=uri] [WITH ACTIVE BACKUPPIECE];
  16. //取消正在备份的备份日志
  17. ALTER SYSTEM CANCEL BACKUP BACKUPPIECE;
  18. //备份备份的数据
  19. ALTER SYSTEM BACKUP BACKUPSET ALL NOT BACKED UP N TIMES [tenant_id = N] [tenant_name = name] [backup_backup_dest=uri];
  20. ALTER SYSTEM BACKUP BACKUPSET = N [tenant_id = N] [tenant_name = name] [backup_backup_dest=uri];
  21. //取消正在备份的备份数据
  22. ALTER SYSTEM CANCEL BACKUP BACKUPSET;
  23. //启动自动备份备份日志
  24. ALTER SYSTEM START BACKUP ARCHIVELOG;
  25. //停止自动备份备份日志
  26. ALTER SYSTEM STOP BACKUP ARCHIVELOG;

参数解释

参数

描述

backup_dest

指定备份的路径,目前支持 OSS 和 FILE 两种,具体格式参考示例。

backup_backup_dest

指定备份备份的目的路径,支持 OSS 和 FILE 两种。

tenant_id

指定租户 ID。

tenant_name

指定租户名称。

BACKUPPIECE ALL NOT BACKED UP N TIMES

备份副本数不足 N 个的日志备份。

BACKUPPIECE [= N]

备份指定 BACKUPPIECE ID 的日志备份,如果指定 WITH ACTIVE BACKUPPIECE,会同时将 ACTIVE 的备份一起备份。

BACKUPSET ALL NOT BACKED UP N TIMES

备份副本数不足 N 个的数据备份。

BACKUPSET = N

备份指定 BACKUPSET ID 的数据备份。

示例

  • 设置备份的路径。
  1. alter system set backup_dest='oss://antsys-oceanbasebackup/backup_dir?host=xxx&access_id=xxx&access_key=xxx';
  2. alter system set backup_dest='file:///data/nfs/physical_backup_dir';
  • 备份备份的日志。
  1. alter system backup backuppiece all not backed up 2 times backup_backup_dest= 'file:///ob_backup_backup/ob_cluster_1_backup_piece_20200125';
  2. alter system backup backuppiece 1 tenant_name tenant_1 backup_backup_dest= 'file:///ob_backup_backup/ob_cluster_1_backup_piece_20200225';

注意事项

需以系统租户身份登陆,普通租户无法执行该命令。

MAXIMIZE

描述

该语句用来设置主备库的保护模式,只能在主库上执行。

格式

  1. ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};

参数解释

参数

描述

AVAILABILITY

设置为最大可用模式。

PERFORMANCE

设置为最大性能模式,为默认配置。

PROTECTION

设置为最大保护模式。

示例

  • 设置主备库的保护模式为最大可用模式。
  1. ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE AVAILABILITY;

DELETE BACKUPSET

描述

该语句用来清理一个备份。

格式

  1. ALTER SYSTEM DELETE BACKUPSET backup_set_id

参数解释

参数

描述

backup_set_id

指定要清理的备份对应的 backup_set 的编号。用户发起一次备份时会有对应的 id,在 CDB_OB_BACKUP_SET_DETAILS 视图中可以查到。

示例

  • 清理 backup_set_id 为 1 的备份数据。
  1. ALTER SYSTEM DELETE BACKUPSET 1;

DELETE OBSOLETE BACKUP

描述

该语句用来清理过期的备份数据。

说明

使用该语句清理过期的备份数据之前,需要先配置过期时间。

格式

  1. ALTER SYSTEM SET backup_recovery_window = <过期时间>;
  2. ALTER SYSTEM DELETE OBSOLETE BACKUP;

参数解释

参数

描述

backup_recovery_window

该配置项用于表示成功备份的数据可以提供恢复的时间窗口,默认值为 0,表示永久保留;建议设置为’7d’,表示备份数据保留一周,一周之后备份数据会被清理掉。

示例

  • 设置备份数据的过期时间为一周,一周后备份数据被清理。
  1. ALTER SYSTEM SET backup_recovery_window = '7d';
  2. ALTER SYSTEM DELETE OBSOLETE BACKUP;