データベース クラスタの読み取りスループットと可用性を向上させるには、データベース インスタンスの非同期読み取りプール インスタンスを作成します。読み取りプール インスタンスは、データベース インスタンスの読み取り専用クローンを提供します。これにより、データベース インスタンスが使用できなくなってもデータにアクセスできます。
読み取りプール インスタンスの構成は、データベース インスタンスのマニフェスト ファイルで定義できます。読み取りプール インスタンスごとに、一意のマニフェスト ファイルを作成する必要があります。読み取りプール インスタンスは最大 20 個作成できます。
各読み取りプール インスタンスは、レプリケートするインスタンスと同じ量のストレージを占有します。
非同期読み取りプール インスタンスを作成する
AlloyDB Omni 非同期読み取りプール インスタンスを作成する手順は次のとおりです。
データベース インスタンス マニフェストを作成して、読み取りプール インスタンスのタイプを定義します。
apiVersion: alloydbomni.dbadmin.goog/v1 kind: DBInstance metadata: name: READ_POOL_INSTANCE_NAME namespace: NAMESPACE spec: instanceType: ReadPool dbcParent: name: DB_CLUSTER_NAME
次のように置き換えます。
READ_POOL_INSTANCE_NAME
: このリソースの名前(例:read-pool-instance-1
)。NAMESPACE
: データベース クラスタの Namespace。DB_CLUSTER_NAME
: インスタンスが属するデータベース クラスタの名前。
マニフェストを適用します。
インスタンスのステータスを確認する
読み取りプール インスタンスの可用性を確認するには、次のコマンドを実行します。
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
になります。
読み取りプール インスタンスを設定すると、インスタンス内の行に対するすべての挿入、更新、削除が読み取りプール インスタンスで読み取り可能になります。