데이터베이스 클러스터의 읽기 처리량과 가용성을 높이려면 데이터베이스 인스턴스의 비동기 읽기 풀 인스턴스를 만들 수 있습니다. 읽기 풀 인스턴스는 데이터베이스 인스턴스를 사용할 수 없게 되더라도 데이터 액세스를 보장하는 데이터베이스 인스턴스의 읽기 전용 클론을 제공합니다.
데이터베이스 인스턴스의 매니페스트 파일에서 읽기 풀 인스턴스 구성을 정의할 수 있습니다. 각 읽기 풀 인스턴스에는 고유한 매니페스트 파일을 만들어야 합니다. 읽기 풀 인스턴스는 최대 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
입니다.
읽기 풀 인스턴스를 설정하면 인스턴스의 행에 대한 모든 삽입, 업데이트, 삭제가 읽기 풀 인스턴스에서 읽을 수 있게 됩니다.