如需提高数据库集群的读取吞吐量和可用性,您可以为数据库实例创建异步读取池实例。读取池实例提供数据库实例的只读克隆,可确保即使数据库实例不可用,也能访问数据。
您可以在数据库实例的清单文件中定义读取池实例配置。每个读取池实例都需要创建一个唯一的清单文件。您最多可以创建 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
:数据库集群的命名空间。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
。
设置读取池实例后,您实例中的所有行插入、更新和删除操作都会在读取池实例中变为可读。