调用ModifyDBClusterEndpoint接口修改PolarDB的集群地址属性,包括读写模式、新节点是否自动加入本地址、一致性级别、事务拆分、主库是否接受读、连接池等。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String ModifyDBClusterEndpoint

系统规定参数。取值:ModifyDBClusterEndpoint

DBClusterId String pc-*************

集群ID。

DBEndpointId String pe-**************

集群地址ID。

Nodes String pi-**************,pi-*************

加入目标地址的读负载节点,多个节点间用英文逗号(,)分隔。 默认为原有节点。

说明
  • PolarDB MySQL版需要传入节点ID。
  • PolarDB PostgreSQL版和PolarDB PostgreSQL版(兼容Oracle)需要传入节点角色名称,例如Writer,Reader1,Reader2
  • ReadWriteMode取值为ReadOnly时,支持只挂载一个节点。但当此节点故障时,该地址可能会有最多1小时的不可用,请勿用于生产环境。因此,推荐至少选择2个节点,以提升可用性。
  • ReadWriteMode取值为ReadWrite时,至少要选择2个节点。
    • PolarDB MySQL版支持选择任意两个节点。当两个节点都是只读节点时,写请求都会发往主节点。
    • PolarDB PostgreSQL版和PolarDB PostgreSQL版(兼容Oracle)必须包含主节点。
ReadWriteMode String ReadWrite

读写模式,取值范围如下:

  • ReadWrite:可读可写(自动读写分离)
  • ReadOnly:只读
AutoAddNewNodes String Enable

新节点是否自动加入本地址,取值范围如下:

  • Enable:是
  • Disable:否(默认值)
EndpointConfig String {"ConsistLevel":"1","DistributedTransaction":"on","MasterAcceptReads":"off","ConnectionPersist": "on"}

集群地址的高级配置,格式为JSON,目前支持设置一致性级别、事务拆分、主库是否接受读和连接池等。

  • 设置负载均衡策略,格式为{\"LoadBalancePolicy\":\"负载均衡策略\"}。取值范围如下:
    • 0:基于连接数负载均衡(默认)
    • 1:基于活跃请求数负载均衡
  • 设置主库是否接受读,格式为{\"MasterAcceptReads\":\"主库是否接受读\"}。取值范围如下:
    • on:表示主库接受读(默认)
    • off:表示主库不接受读
  • 设置事务拆分,格式为{\"DistributedTransaction\":\"事务拆分\"}。取值范围如下:
    • on:开启事务拆分(默认)
    • off:关闭事务拆分
  • 设置一致性级别,格式为{\"ConsistLevel\":\"一致性级别\"}。取值范围如下:
    • 0:最终一致性(弱)
    • 1:会话一致性(中)(默认)
    • 2:全局一致性(强)
  • 设置连接池,格式为{\"ConnectionPersist\":\"连接池\"}。取值范围如下:
    • off:关闭连接池(默认)
    • Session:开启会话级连接池
    • Transaction:开启事务级连接池
  • 设置并行查询,格式为{\"MaxParallelDegree\":\"并行查询\"}。取值范围如下:
    • on:开启并行查询
    • off:关闭并行查询(默认)
  • 设置行存/列存自动引流,格式为{\"EnableHtapImci\":\"行存/列存自动引流\"}。取值范围如下:
    • on:开启行存/列存自动引流功能
    • off:关闭行存/列存自动引流功能(默认)
  • 设置是否开启过载保护,格式为{\"EnableOverloadThrottle\":\"是否开启过载保护\"}。取值范围如下:
    • on:开启过载保护
    • off:关闭过载保护(默认)
说明
  • 仅当PolarDB MySQL版集群地址的读写模式为可读可写(自动读写分离)时,支持设置事务拆分、主库是否接受读、连接池和是否开启过载保护。
  • 当PolarDB MySQL版集群地址的读写模式为只读时,支持基于连接数负载均衡基于活跃请求数负载均衡两种负载均衡策略; 可读可写(自动读写分离)模式的集群地址仅支持基于活跃请求数负载均衡策略。
  • 当PolarDB MySQL版集群地址的读写模式为可读可写(自动读写分离),或集群地址的读写模式为只读且负载均衡策略为基于活跃请求数负载均衡时,支持设置行存/列存自动引流。
  • 仅PolarDB MySQL版支持一致性级别设置为全局一致性。
  • 如果参数ReadWriteMode取值为ReadOnly,一致性级别取值只能为0
  • 您可以同时设置一致性级别、事务拆分、主库是否接受读和连接池,例如{\"ConsistLevel\":\"1\",\"DistributedTransaction\":\"on\",\"ConnectionPersist\":\"Session\",\"MasterAcceptReads\":\"on\"}
  • 事务拆分的设置受一致性级别设置的约束。例如一致性级别取值为0时,不支持开启事务拆分;一致性级别取值为12时,支持开启事务拆分。
DBEndpointDescription String test

地址名称。

返回数据

名称 类型 示例值 描述
RequestId String CD3FA5F3-FAF3-44CA-AFFF-BAF869******

请求ID。

示例

请求示例

http(s)://polardb.aliyuncs.com/?Action=ModifyDBClusterEndpoint
&DBClusterId=pc-*************
&DBEndpointId=pe-**************
&Nodes=pi-**************,pi-*************
&ReadWriteMode=ReadWrite
&AutoAddNewNodes=Enable
&EndpointConfig={"ConsistLevel":"1","DistributedTransaction":"on","MasterAcceptReads":"off","ConnectionPersist": "on"}
&DBEndpointDescription=test
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<ModifyDBClusterEndpointResponse>
    <RequestId>CD3FA5F3-FAF3-44CA-AFFF-BAF869******</RequestId>
</ModifyDBClusterEndpointResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "CD3FA5F3-FAF3-44CA-AFFF-BAF869******"
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidEndpointConfig.Malformed The specified parameter EndpointConfig is not valid. 指定的参数EndpointConfig无效
400 InvalidDBEndpointId.Malformed The specified parameter DBEndpointId is not valid. 指定的参数DBEndpointId无效
404 InvalidDBCluster.NotFound The DBClusterId provided does not exist in our records. 当前的记录中不存在提供的DBClusterId。
404 EndpointStatus.NotSupport Current endpoint status does not support this operation. 当前节点状态不支持此操作

访问错误中心查看更多错误码。