データベース クラスタの読み取りスループットと可用性を向上させるには、データベース インスタンスの非同期読み取りプール インスタンスを作成します。読み取りプール インスタンスは、データベース インスタンスの読み取り専用クローンを提供します。これにより、データベース インスタンスが使用できなくなってもデータにアクセスできます。
読み取りプール インスタンスの構成は、データベース インスタンスのマニフェスト ファイルで定義できます。読み取りプール インスタンスごとに、一意のマニフェスト ファイルを作成する必要があります。読み取りプール インスタンスは最大 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
: データベース クラスタの 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
になります。
読み取りプール インスタンスを設定すると、インスタンス内の行に対するすべての挿入、更新、削除が読み取りプール インスタンスで読み取り可能になります。