您可以在資料庫執行個體的資訊清單檔案中定義讀取集區執行個體設定。每個讀取集區執行個體都需要建立專屬的資訊清單檔案。最多可建立 20 個讀取集區執行個體。
每個讀取集區執行個體占用的儲存空間量,與其複製的執行個體相同。
建立非同步讀取集區執行個體
您可以在資料庫叢集中建立任意數量的讀取集區執行個體。如要建立 AlloyDB Omni 非同步讀取集區執行個體,請完成下列步驟:
建立資料庫執行個體資訊清單,定義讀取集區執行個體類型:
apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBInstance metadata: name: READ_POOL_INSTANCE_NAME namespace: NAMESPACE spec: instanceType: ReadPool nodeCount: READ_POOL_INSTANCE_SIZE dbcParent: name: DB_CLUSTER_NAME更改下列內容:
READ_POOL_INSTANCE_NAME:這個資源的名稱,例如read-pool-instance-1。NAMESPACE:資料庫叢集的命名空間。DB_CLUSTER_NAME:執行個體所屬的資料庫叢集名稱。READ_POOL_INSTANCE_SIZE:讀取集區執行個體中的節點數量。這會決定執行個體的整體運算能力。每個讀取集區執行個體最多可有 20 個節點。
套用資訊清單。
確認執行個體狀態
如要確認讀取集區執行個體是否可用,請執行下列指令:
kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Available")].status}'回應 true 表示讀取集區執行個體可以處理查詢,但可能不會複製資料庫執行個體的資料。
如要驗證讀取集區執行個體的串流狀態,請執行下列指令:
kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Streaming")].status}'回應 true 表示讀取集區執行個體已連線至資料庫執行個體,並主動串流處理變更。
資料庫執行個體無法連線時,讀取集區執行個體會繼續處理查詢。在這種情況下,供應情形狀態會是 true,而串流狀態會是 false。
設定讀取集區執行個體後,您在執行個體中插入、更新及刪除的資料列,都會在讀取集區執行個體中顯示。
限制:處理切換和容錯移轉
如果主要資料庫執行個體發生切換或容錯移轉,唯讀集區執行個體不會自動與新的主要執行個體同步,且會停止複製資料。如要繼續複製資料,請將讀取集區縮減至零,然後備份至所選節點數。
記錄讀取集區目前的節點數量:
NODE_COUNT=$(kubectl get dbinstance -n NAMESPACE \ READ_POOL_INSTANCE_NAME -ojsonpath="{.spec.nodeCount}")更改下列內容:
NAMESPACE:資料庫叢集的命名空間。READ_POOL_INSTANCE_NAME:讀取集區執行個體的名稱。
將讀取集區縮減為零:
kubectl patch dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME \ --type=merge -p '{"spec":{"nodeCount":0}}'將讀取集區調度回所選節點數量:
kubectl patch dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME \ --type=merge -p "{\"spec\":{\"nodeCount\":NODE_COUNT}}"