本頁說明如何使用 AlloyDB for PostgreSQL 寫入端點,簡化應用程式的資料庫連線管理作業。
端點是 AlloyDB 資源,可提供穩定的網域名稱服務 (DNS) 名稱,供應用程式用來連線至 AlloyDB 執行個體。使用端點可將應用程式與例項的特定 IP 位址或統一資源 ID (URI) 解除連結。這項抽象化功能可簡化作業事件 (例如災難復原、備份還原或遷移) 期間的連線管理,因為您可以將端點的 DNS 名稱重新導向至其他執行個體,而不必變更應用程式的設定。
AlloyDB 端點支援 WRITE_ENDPOINT 類型。寫入端點會將流量導向單一 AlloyDB 主要執行個體,並處理讀取和寫入流量。
DNS 名稱是全域性資源,但端點資源本身是區域資源。即使如此,每個端點仍可連結至全域執行個體,且其 DNS 名稱可從任何位置解析。
使用端點的好處
使用寫入端點有以下好處:
- 簡化災難復原程序:如果您執行切換或跨區域容錯移轉至次要叢集,AlloyDB 會自動更新端點,指向新的主要執行個體。應用程式隨後可使用相同的端點 DNS 名稱重新連線,縮短復原時間目標 (RTO)。
- 順暢的備份還原作業:從備份還原執行個體時,AlloyDB 會建立新的執行個體,並指派新的 IP 位址。您可以更新端點,指向新還原的執行個體。這可讓應用程式繼續運作,不必變更設定。
- 簡化遷移作業:遷移期間,您可以將端點從來源資料庫切換至 AlloyDB 執行個體,應用程式中斷情況極少。
限制
- 端點僅支援設為使用私人服務存取權 (PSA) 的執行個體。端點不支援設為使用 Private Service Connect (PSC) 的執行個體。
- 寫入端點不支援 AlloyDB 語言連接器和 AlloyDB Auth Proxy。
- 系統不支援對指向相同目標執行個體的端點進行並行修改作業 (例如同時更新,或更新和刪除作業),否則可能會導致作業失敗。
事前準備
- 安裝並初始化 Google Cloud CLI。
- 啟用 Cloud DNS API。
- 確認您有現有的 AlloyDB 執行個體,可做為端點的目標。
如要取得管理端點所需的權限,請要求管理員授予您專案的 AlloyDB 管理員 (
roles/alloydb.admin) 身分與存取權管理 (IAM) 角色。這個預先定義的角色具備管理端點所需的權限。您或許還可透過自訂角色或其他預先定義的角色取得這些權限。所需確切權限如下:
alloydb.endpoints.createalloydb.endpoints.updatealloydb.endpoints.getalloydb.endpoints.listalloydb.endpoints.delete
詳情請參閱「AlloyDB IAM 角色和權限」。
您可以使用 Google Cloud CLI 建立及管理寫入端點。
建立端點
如要建立寫入端點,請使用 Google Cloud CLI。端點類型必須為 WRITE_ENDPOINT,且必須以單一主要執行個體為目標。
控制台
前往 Google Cloud 控制台的「Endpoints」(端點) 頁面。
按一下「Create endpoint」(建立端點)。
在「Endpoint name」(端點名稱) 欄位中,輸入端點的 ID。 只能使用小寫英文字母 (a 至 z)、數字和連字號,開頭須為小寫英文字母,結尾則須為小寫英文字母或數字。
選擇「Region」(區域)。
在「Endpoint type」(端點類型) 中,選取「Write」(寫入)。
在「目標執行個體」欄位中,選取這個端點應指向的主要執行個體。
點選「建立」。
gcloud
gcloud beta alloydb endpoints create ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--endpoint-type=ENDPOINT_TYPE \
--target-instances=TARGET_INSTANCE_NAME
更改下列內容:
ENDPOINT_ID:端點的專屬 ID。這個 ID 在指定專案和位置中不得重複。PROJECT_ID:您的 Google Cloud 專案 ID。REGION_ID:要建立端點的區域 ID,例如us-central1。ENDPOINT_TYPE:端點資源類型。 僅支援WRITE_ENDPOINT。TARGET_INSTANCE_NAME:端點所指向的 AlloyDB for PostgreSQL 執行個體完整資源名稱。執行個體的完整資源路徑格式如下:projects/$PROJECT/locations/$LOCATION/clusters/$CLUSTER/instances/$INSTANCE。
使用端點連線至執行個體
如要使用端點連線至 AlloyDB 執行個體,請先取得與端點相關聯的自動產生 DNS 名稱。
取得 DNS 名稱
您可以使用 Google Cloud CLI 查看端點的 DNS 名稱。
控制台
前往 Google Cloud 控制台的「Endpoints」(端點) 頁面。
找出要連線的端點,然後複製「DNS name」(DNS 名稱) 欄中的值。
gcloud
使用
gcloud beta alloydb endpoints describe指令:gcloud beta alloydb endpoints describe ENDPOINT_ID \ --project=PROJECT_ID \ --region=REGION_ID更改下列內容:
ENDPOINT_ID:端點 IDPROJECT_ID:您的 Google Cloud 專案 IDREGION_ID:端點所在的區域 ID
在指令輸出內容中,找出
dnsName欄位並複製其值。
使用 psql 連線
取得 DNS 名稱後,即可在連線字串或用戶端工具中將其做為主機使用。舉例來說,如要使用 psql 用戶端連線,請執行下列指令:
psql -h DNS_NAME -U USERNAME -d DATABASE_NAME
更改下列內容:
DNS_NAME:端點的 DNS 名稱USERNAME:要連線的資料庫使用者DATABASE_NAME:要連線的資料庫名稱
如要進一步瞭解如何使用 psql,請參閱「使用 psql 用戶端連線」。
更新端點
如要變更端點指向的執行個體 (例如還原作業後),請使用下列指令:
控制台
前往 Google Cloud 控制台的「Endpoints」(端點) 頁面。
在要更新的端點資料列中,依序按一下「動作」和「編輯」。
在「目標執行個體」欄位中,選取這個端點應指向的新主要執行個體。
按一下「Update」。
gcloud
gcloud beta alloydb endpoints update ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID \
--target-instances=NEW_TARGET_INSTANCE_NAME
更改下列內容:
ENDPOINT_ID:要更新的端點 IDPROJECT_ID:您的 Google Cloud 專案 IDREGION_ID:端點所在的區域 IDNEW_TARGET_INSTANCE_NAME:新目標執行個體的完整資源名稱
列出端點
如要列出指定專案和區域中的所有端點,請使用下列指令:
控制台
前往 Google Cloud 控制台的「Endpoints」(端點) 頁面。
這個頁面會列出目前專案中的所有端點。
gcloud
gcloud beta alloydb endpoints list --project=PROJECT_ID \
--region=REGION_ID
更改下列內容:
PROJECT_ID:您的 Google Cloud 專案 IDREGION_ID:端點所在的區域 ID
查看端點詳細資料
如要查看特定端點的詳細資料,請使用下列 Google Cloud CLI 指令:
gcloud
gcloud beta alloydb endpoints describe ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
更改下列內容:
ENDPOINT_ID:要說明的端點 IDPROJECT_ID:您的 Google Cloud 專案 IDREGION_ID:端點所在的區域 ID
在 Google Cloud 控制台的「Endpoints」頁面中,您可以查看端點詳細資料。
刪除端點
如要刪除端點,請使用下列指令:
控制台
前往 Google Cloud 控制台的「Endpoints」(端點) 頁面。
在要刪除的端點所在列中,按一下 「動作」,然後選取「刪除」。
如要確認,請輸入端點 ID,然後按一下「刪除」。
gcloud
gcloud beta alloydb endpoints delete ENDPOINT_ID \
--project=PROJECT_ID \
--region=REGION_ID
更改下列內容:
ENDPOINT_ID:要刪除的端點 IDPROJECT_ID:您的 Google Cloud 專案 IDREGION_ID:端點所在的區域 ID
切換或跨區域容錯移轉期間的寫入端點行為
雖然端點的 DNS 名稱在建立時會解析為特定執行個體的 IP,但這些端點是動態的。如果發生跨區域複製活動 (例如切換或跨區域容錯移轉 (搶先版)),AlloyDB 寫入端點可確保連線不中斷,不需手動介入。次要叢集升級為新的主要叢集時,端點會自動更新 DNS 記錄,指向新的主要執行個體。這項行為可免除手動重新設定應用程式連線字串的作業,大幅降低作業複雜度,並盡量縮短停機時間,以符合復原時間目標 (RTO)。
作業和 DNS 傳播完成後,應用程式可以使用相同的端點 DNS 名稱,重新連線至新的主要執行個體。
避免在容錯移轉期間發生寫入衝突
在跨區域容錯移轉期間使用寫入端點,有助於避免寫入作業發生衝突,因為系統會自動將新的寫入流量從原始主要叢集導向新叢集。如要進一步瞭解容錯移轉期間的寫入端點行為,請參閱「使用寫入端點避免腦裂」。
後續步驟
- 進一步瞭解如何連線至 AlloyDB 執行個體。