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 = 开启 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; ```