ALTER SYSTEM 
=================================



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

BOOTSTRAP 
------------------

#### 描述 

该语句用于自举 OceanBase 集群。

#### 格式 

```javascript
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：

  




```javascript
ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '10.218.248.178:55410';
```



* 多台 RootService 通过逗号（，）分隔：

  




```javascript
ALTER SYSTEM BOOTSTRAP ZONE 'zone1' SERVER '172.24.65.24:55410', ZONE 'zone2' 
SERVER '172.24.65.114:55410';
```



* 启动备库

  




```javascript
ALTER SYSTEM BOOTSTRAP CLUSTER STANDBY ZONE 'zone1' SERVER '10.218.248.178:55410';
```





JOB 
------------

#### 描述 

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

#### 格式 

```javascript
alter_system_job_stmt:
ALTER SYSTEM RUN JOB job_name
[zone | server];
```



#### 参数解释 



|     **参数**     |                                                                                                                        **描述**                                                                                                                         |
|----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| JOB job_name   | 指定任务名称。有特殊字符时需要单引号，其它情况下单引号加与不加都支持，已支持的 JOB 有： * check_partition_table：OBServer 执行 partition table 核对删除任务   * root_inspection：触发 RootService 自检    |
| zone \| server | 该任务指定 Zone 或者 Server 执行。                                                                                                                                                                                                                              |



#### 示例 

* 触发 RootService 自检任务。

  




```javascript
ALTER SYSTEM RUN JOB "root_inspection";
```





MERGE 
--------------

#### 描述 

该语句发起存储层合并。

#### 格式 

```javascript
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 开始合并。 |



#### 示例 

* 发起每日合并。

  




```javascript
OceanBase(root@oceanbase)>alter system major freeze;
Query OK, 0 rows affected (0.06 sec)
```





PARAMETER 
------------------

#### 描述 

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

#### 格式 

```javascript
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          | 指定本次配置项修改的生效范围。它的值主要有以下三种： *  MEMORY：表明只修改内存中的配置项，修改立即生效，且本修改在 Server 重启以后会失效（目前暂时没有配置项支持这种方式）。   * SPFILE：表明只修改配置表中的配置项值，当 Server 重启以后才生效。   * BOTH：表明既修改配置表，又修改内存值，修改立即生效，且 Server 重启以后配置值仍然生效。    SCOPE 默认值为 BOTH。对于不能立即生效的配置项，如果使用 BOTH 或 MEMORY，会报错 。 |
| SERVER         | 只修改指定 Server 实例的某个配置项。                                                                                                                                                                                                                                                                                                                                                                         |
| ZONE           | 表明本配置项的修改针对指定集群的特定 Server 类型，否则，针对所有集群的特定 Server 类型。                                                                                                                                                                                                                                                                                                                                           |


**说明**



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

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

#### 示例 

* 修改配置项 enable_sql_audit 的信息。

  




```javascript
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)
```





REFRESH 
----------------

#### 描述 

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

#### 格式 

```javascript
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 指令。 * 如果指定 tenant 和 cache_name，则清除指定租户的指定 KV Cache   * 如果只指定 tenant，则清除指定租户的全部KV Cache   * 如果不指定 tenant 和 cache_name，则清除所有租户的全部KV Cache    |



#### 示例 

* 刷新单台 OBServer 的 Schema：

  




```javascript
ALTER SYSTEM REFRESH SCHEMA SERVER='172.24.65.24:55410';
```



* 刷新整个 Zone 的 Schema：

  




```javascript
ALTER SYSTEM REFRESH SCHEMA ZONE='zone1';
```





REPLICA 
----------------

#### 描述 

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

#### 格式 

```javascript
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'；大小写通用。 |



#### 示例 

* 副本迁移

  




```javascript
ALTER SYSTEM MOVE REPLICA PARTITION_ID '0%4@1100611139403777'
SOURCE '172.24.65.24:55410'
DESTINATION '172.24.65.26:55410';
```



* 删除副本

  




```javascript
ALTER SYSTEM DROP REPLICA PARTITION_ID '0%4@1100611139403777'
SERVER '172.24.65.26:55410';
```



* 修改副本类型

  




```javascript
ALTER SYSTEM CHANGE REPLICA PARTITION_ID '0%4@1100611139403777'
SERVER '172.24.65.26:55410';
CHANGE REPLICA_TYPE = 'L';
```



* Leader改选

  




```javascript
ALTER SYSTEM SWITCH REPLICA LEADER PARTITION_ID '0%4@1100611139403777'
SERVER '172.24.65.26:55410';
```





ROOTSERVICE 
--------------------

#### 描述 

切换 RS 的角色。

#### 格式 

```javascript
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

  




```javascript
ALTER SYSTEM SWITCH ROOTSERVICE LEADER ZONE 'z1';
```





SERVER 
---------------

#### 描述 

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

#### 格式 

```javascript
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 ...]
```



#### 参数解释 

服务器状态图如下：

![image.png](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/7401155061/p149171.png "image.png")


|    **参数**     |               **描述**                |
|---------------|-------------------------------------|
| ip_port       | 指定 OBServer 的 IP 地址和端口              |
| zone          | 如果指定 Zone，将会对待维护 Server 执行 Zone 校验。 |
| ADD           | 新增服务器。                              |
| DELETE        | 删除服务器。                              |
| CANCEL DELETE | 取消删除服务器。                            |
| START         | 启动服务器。                              |
| STOP          | 停止服务器。                              |
| FORCE STOP    | 强制停止服务器。                            |



#### 示例 

* 新增服务器

  




```javascript
ALTER SYSTEM ADD SERVER '172.24.65.113:55410' ZONE 'zone1';
```


**注意**



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

  

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

  

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

  






THROTTLE 
-----------------

#### 描述 

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

#### 格式 

```javascript
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 的请求限流。

  




```javascript
alter system enable sql throttle for priority <= 100 using queue_time=0.1
```





UNIT 
-------------

#### 描述 

该语句负责 UNIT 资源迁移。

#### 格式 

```javascript
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。

  




```javascript
OceanBase(root@oceanbase)>alter system migrate unit = 1001 destination = '11.11.111.111:19510';
Query OK, 0 rows affected (0.05 sec)
```





ZONE 
-------------

#### 描述 

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

#### 格式 

```javascript
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。

  




```javascript
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.
```





CLUSTER 
----------------

#### 描述 

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

#### 格式 

```javascript
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 | 在主库上修改备库的日志同步方式： * SYNC：强同步   * ASYNC：异步同步    默认为 ASYCN 方式。 |



#### 示例 

* 新增备库

  




```javascript
ALTER SYSTEM ADD CLUSTER 'ob1.test' cluster_id = 1;
```





SWITCHOVER 
-------------------

#### 描述 

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

#### 格式 

```javascript
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              | 把一个主库切换成备库。                                  |



#### 示例 

* 主库切换成备库

  




```javascript
ALTER SYSTEM COMMIT TO SWITCHOVER TO PHYSICAL STANDBY；
```



* 备库切换成主库

  




```javascript
ALTER SYSTEM COMMIT TO SWITCHOVER TO PRIMARY；
```



* 主库宕机，备库切换成主库

  




```javascript
ALTER SYSTEM ACTIVATE PHYSICAL STANDBY CLUSTER；
```



* 旧主库重启，切成备库

  




```javascript
ALTER SYSTEM CONVERT TO PHYSICAL STANDBY；
```





BALANCE TASK 
---------------------

#### 描述 

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

#### 格式 

```javascript
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 | 待清除的任务类型： * ALL：所有的任务；   * AUTO：自动生成的任务；   * MANUAL：用户手动发起的任务。    |



#### 示例 

* 清除所有租户所有没有在调度的任务。

  




```javascript
ALTER SYSTEM REMOVE BALANCE TASK；
```



CANCEL MIGRATE UNIT 
----------------------------

#### 描述 

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

#### 格式 

```javascript
ALTER SYSTEM CANCEL MIGRATE UNIT unit_id;
```



#### 参数解释 



| **参数**  |      **描述**      |
|---------|------------------|
| unit_id | 指定迁移的 UNIT 的 ID。 |



#### 示例 

* 取消 UNIT 1001 的迁移。

  




```javascript
ALTER SYSTEM CANCEL MIGRATE UNIT 1001;
```





RESTORE 
----------------

#### 描述 

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

#### 格式 

```javascript
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 | 恢复选项，支持以下几种： * backup_cluster_name：源集群的名字，必选项   * backup_cluster_id：源集群的 cluster_id，必选项   * pool_list：用户的资源池，必选项   * locality：租户的 locality 信息，可选项   * kms_encrypt：为 true 表示需要恢复的时候指定kms_encrypt_info，可选项    |



#### 示例 

* 恢复租户的数据。

  




```javascript
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';
```





CHANGE TENANT 
----------------------

#### 描述 

该语句用来切换租户。

#### 格式 

```javascript
ALTER SYSTEM CHANGE TENANT tenant_name;

ALTER SYSTEM CHANGE TENANT TENANT_ID [=] INTNUM;
```



#### 参数解释 



|   **参数**    |    **描述**     |
|-------------|---------------|
| tenant_name | 指定要切换到的租户名称。  |
| TENANT_ID   | 指定要切换到的租户 ID。 |



#### 示例 

* 切换至 ID 为 1001 的租户。

  




```javascript
ALTER SYSTEM CHANGE TENANT TENANT_ID = 1001;
```



#### 注意事项 

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

   

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

   

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

   

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

   




BACKUP 
---------------

#### 描述 

该语句用来触发备份。

#### 格式 

```javascript
设置备份的介质路径 ：  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 两种，具体格式参考示例。 |



#### 示例 

* 设置备份的路径。

  




```javascript
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';
```



#### 注意事项 

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

MAXIMIZE 
-----------------------------

描述

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

#### 格式 

```javascript
ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE {AVAILABILITY | PERFORMANCE | PROTECTION};
```



#### 参数解释 



|    **参数**    |      **描述**      |
|--------------|------------------|
| AVAILABILITY | 设置为最大可用模式。       |
| PERFORMANCE  | 设置为最大性能模式，为默认配置。 |
| PROTECTION   | 设置为最大保护模式。       |



#### 示例 

* 设置主备库的保护模式为最大可用模式。

  




```unknow
ALTER SYSTEM SET STANDBY CLUSTER TO MAXIMIZE AVAILABILITY;
```



DELETE BACKUPSET 
-------------------------------------

描述

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

#### 格式 

```javascript
ALTER SYSTEM DELETE BACKUPSET backup_set_id
```



#### 参数解释 



|    **参数**     |                                      **描述**                                       |
|---------------|-----------------------------------------------------------------------------------|
| backup_set_id | 指定要清理的备份对应的 backup_set 的编号。用户发起一次备份时会有对应的 id，在 CDB_OB_BACKUP_SET_DETAILS 视图中可以查到。 |



#### 示例 

* 清理 backup_set_id 为 1 的备份数据。

  




```unknow
ALTER SYSTEM DELETE BACKUPSET 1;
```



DELETE OBSOLETE BACKUP 
-------------------------------------------

描述

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



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

#### 格式 

```javascript
ALTER SYSTEM SET backup_recovery_window = <过期时间>;
ALTER SYSTEM DELETE OBSOLETE BACKUP;
```



#### 参数解释 



|         **参数**         |                                    **描述**                                    |
|------------------------|------------------------------------------------------------------------------|
| backup_recovery_window | 该配置项用于表示成功备份的数据可以提供恢复的时间窗口，默认值为 0，表示永久保留；建议设置为'7d'，表示备份数据保留一周，一周之后备份数据会被清理掉。 |



#### 示例 

* 设置备份数据的过期时间为一周，一周后备份数据被清理。

  




```unknow
ALTER SYSTEM SET backup_recovery_window = '7d';
ALTER SYSTEM DELETE OBSOLETE BACKUP;
```


