É possível definir a configuração da instância do pool de leitura no arquivo de manifesto da instância de banco de dados. Cada instância do pool de leitura exige a criação de um arquivo de manifesto exclusivo. É possível criar até 20 instâncias do pool de leitura.
Cada instância do pool de leitura ocupa a mesma quantidade de armazenamento que a instância replicada.
Criar uma instância assíncrona do pool de leitura
É possível criar qualquer número de instâncias de pool de leitura no cluster de banco de dados. Para criar uma instância de pool de leitura assíncrona do AlloyDB Omni, siga estas etapas:
Crie o manifesto da instância de banco de dados para definir o tipo de instância do pool de leitura:
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_NAMESubstitua:
READ_POOL_INSTANCE_NAME: um nome para esse recurso. Por exemplo,read-pool-instance-1.NAMESPACE: o namespace do cluster de banco de dados.DB_CLUSTER_NAME: o nome do cluster de banco de dados a que a instância pertence.READ_POOL_INSTANCE_SIZE: o número de nós em uma instância de pool de leitura. Isso determina a capacidade geral de computação da instância. É possível ter no máximo 20 nós por instância de pool de leitura.
Aplique o manifesto.
Verificar o status da instância
Para verificar a disponibilidade da instância do pool de leitura, execute o seguinte comando:
kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Available")].status}'A resposta true indica que a instância do pool de leitura pode atender a consultas,
mas talvez não esteja replicando dados da instância do banco de dados.
Para verificar o status de transmissão da instância do pool de leitura, execute o seguinte comando:
kubectl get dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME -o jsonpath='{.status.conditions[?(@.type=="Streaming")].status}'A resposta true indica que a instância do pool de leitura está conectada à sua
instância de banco de dados e transmitindo mudanças ativamente.
Quando a instância de banco de dados fica inacessível, a instância do pool de leitura continua
atendendo às consultas. Nesse caso, o status de disponibilidade será true, enquanto o status de streaming será false.
Depois de configurar a instância do pool de leitura, todas as inserções, atualizações e exclusões de linhas na instância ficam legíveis na instância do pool de leitura.
Limitação: lidar com alternância e failover
Se a instância principal do banco de dados passar por uma troca ou failover, a instância do pool de leitura não será sincronizada automaticamente com a nova instância principal e vai parar de replicar dados. Para retomar a replicação de dados, reduza o pool de leitura para zero e depois faça backup para o número selecionado de nós.
Registre a contagem atual de nós no pool de leitura:
NODE_COUNT=$(kubectl get dbinstance -n NAMESPACE \ READ_POOL_INSTANCE_NAME -ojsonpath="{.spec.nodeCount}")Substitua:
NAMESPACE: o namespace do cluster de banco de dados.READ_POOL_INSTANCE_NAME: o nome da instância do pool de leitura.
Reduza a escala do pool de leitura para zero:
kubectl patch dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME \ --type=merge -p '{"spec":{"nodeCount":0}}'Reduza o pool de leitura para a contagem de nós selecionada:
kubectl patch dbinstance -n NAMESPACE READ_POOL_INSTANCE_NAME \ --type=merge -p "{\"spec\":{\"nodeCount\":NODE_COUNT}}"