修改集群参数 
===========================

您可以通过 SQL 语句或 OCP 修改集群参数。

通过 SQL 语句修改集群参数 
------------------------------------

集群参数即配置项，修改配置项的语法如下所示，同时修改多个系统配置项时，请用逗号（,）分隔。

```sql
 ALTER SYSTEM SET param_name = expr
      [COMMENT 'text']
      [PARAM_OPTS]
      [TENANT = 'tenantname']
      
PARAM_OPTS:
[ZONE='zone' | SERVER='server_ip:rpc_port']
```



参数修改语句说明如下：

* `PARAM_OPTS` 是修改配置项时所指定的其它限定条件，例如，指定 Zone、指定 Server 等。

  

* `ALTER SYSTEM` 语句不能同时指定 Zone 和 Server。并且在指定 Zone 时，仅支持指定一个 Zone；指定 Server 时，仅支持指定一个 Server。

  

* 集群级别的配置项（`Scope`) 不能通过普通租户设置，也不可以通过 sys 租户指定普通租户来设置。例如，`ALTER SYSTEM SET memory_limit='100G' TENANT='test_tenant'` 将导致报错，因为 `memory_limit` 是集群级别（`Scope`）的配置项。

  




集群级别与租户级别的配置项设置会有所不同：

* 系统租户设置集群配置项的语法

  ```sql
  ALTER SYSTEM SET mysql_port=8888 [PARAM_OPTS]
  ```

  

* 系统租户设置租户配置项的语法

  ```sql
  ALTER SYSTEM SET clog_max_unconfirmed_log_count=1600 [PARAM_OPTS] TENANT=all|TENANT_NAME
  ```

  

* 租户设置租户配置项的语法

  ```sql
  ALTER SYSTEM SET clog_max_unconfirmed_log_count=1600 [PARAM_OPTS]
  ```

  

  系统租户也可以使用该命令修改系统租户本身的租户配置项的值。
  




示例如下：

* 系统租户设置集群配置项。

  ```sql
  obclient> ALTER SYSTEM SET mysql_port=8888;
  
  obclient> ALTER SYSTEM SET mysql_port=8888 ZONE='z1';
  
  obclient> ALTER SYSTEM SET mysql_port=8888 SERVER='192.168.100.1:2882';
  ```

  

* 系统租户设置租户配置项。

  ```sql
  obclient> ALTER SYSTEM SET clog_max_unconfirmed_log_count=1600 tenant='test_tenant';
  ```

  

* 租户设置租户配置项。

  ```sql
  obclient> ALTER SYSTEM SET clog_max_unconfirmed_log_count=1600;
  
  obclient> ALTER SYSTEM SET  memory_limit = '100G' SERVER='192.168.100.1:2882';
  
  obclient> ALTER SYSTEM SET  memory_limit = '100G' ZONE='z1';
  ```

  




更多配置项信息，请参见《参考指南》文档中 [系统配置项](../../../../14.reference-guide-oracle-mode/3.system-configuration-items-1/1.system-configuration-items-overview-1.md) 章节。

更多配置项信息，请参见《参考指南》文档中 [系统配置项概述](../../../../14.reference-guide-oracle-mode/3.system-configuration-items-1/1.system-configuration-items-overview-1.md) 章节。

通过 OCP 修改集群参数 
----------------------------------

**说明**

不同 OCP 版本的操作界面可能不同，本节以 OCP V2.5.0 版本为例提供操作指导，OCP 其他版本的操作请参考对应版本的《 OCP 用户指南》文档。

1. 登录 OCP 。

   默认进入 **集群概览** 页面。
   

2. 在 **集群概览** 页面的 **集群列表** 区域，选择待操作的集群并单击其集群名。

   

3. 在显示的页面的左侧导航栏上，单击 **参数管理** 。

   

4. （可选）在 **参数列表** 页面上方的搜索框中，输入参数名相关信息进行模糊搜索。

   ![](https://cdn.nlark.com/yuque/0/2020/png/1669719/1595245608656-16e839aa-a95f-478f-affa-b2da5e69406e.png)
   

5. 找到待修改的参数，在对应的 **操作** 列中，单击 **修改值** 。

   

6. 在弹出的对话框中，修改参数的值及生效范围，单击 **确定** 。

   ![](https://cdn.nlark.com/yuque/0/2020/png/1669719/1595245926153-5349ee86-9333-49eb-97bb-632cd98a0f07.png)

   由于 OceanBase 集群参数可以有全局（即 **集群** ）、Zone 和 Server 三种生效范围，故在修改值时请根据业务需要选择生效范围。

   默认生效范围是 **集群** 。如果需要调整到 Zone 或 Server 的生效范围，则可以在 **生效范围** 列取消选中 **集群** ，此时系统会显示集群下的 Zone 列表。根据提示选择 Zone 并选中，则选中了 Zone 的生效范围；如果选择 Zone 后，继续选择该 Zone 下的 Server 列表，则在 Server 范围生效。

   如果需要修改参数的值同时在不同的范围生效，例如，修改 **backup_concurrency** 在 **Zone 1** 为 **10** ；在 **Zone 2** 为 **12** ；在 **Server 1** 上为 **20** ，则可以在 **值** 列单击 **添加值** 后出现 3 行记录。每行记录可以选中对应的生效范围。
   **说明**

   

   如果单击 **添加值** 后出现多行修改值时，对集群的参数修改顺序是从第一行往下依次执行，并且每次执行成功后，会在 OCP 的 **修改历史** 页签中产生一条历史记录。
   



