調用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. 當前節點狀態不支持此操作

訪問錯誤中心查看更多錯誤碼。