Expansão de um cluster
Quando você precisar de mais recursos de computação e armazenamento, adicione mais nós para expansão de cluster no console de gerenciamento.
- Se um cluster for cobrado no modo anual/mensal, os novos nós no cluster também serão cobrados nesse modo.
- Quando você escala o cluster de armazém de dados padrão, use as mesmas especificações de armazenamento do cluster.
- Os nós não podem ser adicionados a um armazém de dados híbrido (autônomo).
Depois que os dados em um armazém de dados são excluídos, o espaço em disco ocupado pode não ser liberado, resultando em dados sujos e desperdício de disco. Portanto, se você precisar expandir o cluster devido à capacidade de armazenamento insuficiente, execute o comando VACUUM para recuperar o espaço de armazenamento primeiro. Se a capacidade de armazenamento usada ainda for alta depois de executar o comando VACUUM, você poderá expandir o cluster. Para obter detalhes sobre a sintaxe VACUUM, consulte a seção VACUUM na Referência de sintaxe SQL.
Impacto no sistema
- Antes do dimensionamento, saia das conexões de cliente que criaram tabelas temporárias porque as tabelas temporárias criadas antes ou durante a expansão se tornarão inválidas e as operações executadas nessas tabelas temporárias falharão. Tabelas temporárias criadas após a expansão não serão afetadas.
- Depois de iniciar uma tarefa de expansão, o cluster tira automaticamente um snapshot antes do início da tarefa.
- Durante a expansão, funções como reinicialização do cluster, expansão, criação de snapshots, redefinição de senha do administrador do banco de dados e exclusão de cluster são desativadas.
- Durante uma expansão off-line, o cluster é reiniciado automaticamente. Portanto, o cluster permanece Unavailable por um período de tempo. Depois que o cluster é reiniciado, o status se torna Available. Após a expansão, o sistema redistribui dinamicamente os dados do usuário entre todos os nós do cluster.
- Durante a expansão off-line, interrompa todos os serviços ou execute apenas algumas instruções de consulta. Durante a redistribuição de tabelas, um bloqueio compartilhado é adicionado às tabelas. Todas as operações de inserção, atualização e exclusão, bem como as operações DDL nas tabelas, são bloqueadas por um longo período de tempo, o que pode causar um tempo limite de espera de bloqueio. Depois que uma tabela é redistribuída, você pode acessar a tabela. Não execute consultas que levam mais de 20 minutos durante a redistribuição (o tempo padrão para aplicar o bloqueio de gravação durante a redistribuição é de 20 minutos). Caso contrário, a redistribuição de dados pode falhar devido ao tempo limite de espera de bloqueio.
- Em uma expansão on-line, durante a adição do nó, o cluster é bloqueado e os objetos do banco de dados são verificados. Não crie nem exclua bancos de dados ou espaços de tabela nesse período, ou o cluster poderá não ser bloqueado.
- Durante a expansão on-line, você pode executar operações de inserção, atualização e exclusão em tabelas, mas as atualizações de dados ainda serão bloqueadas por um curto período de tempo. A redistribuição consome muitos recursos de CPU e I/O, o que afetará muito o desempenho do trabalho. Portanto, execute a redistribuição quando os serviços forem interrompidos ou durante períodos de carga leve. A expansão baseada em fase também é recomendada: execute redistribuição de alta concorrência durante períodos de carga leve e interrompa a redistribuição ou execute redistribuição de baixa concorrência durante períodos de carga pesada.
- Se um novo snapshot for criado para o cluster após a expansão, o novo snapshot conterá dados nos nós recém-adicionados.
- Se a expansão do cluster falhar, o banco de dados executará automaticamente a operação de reversão em segundo plano para que o número de nós no cluster possa ser restaurado para aquele antes da expansão.
- Se a reversão for bem-sucedida e o cluster puder ser usado normalmente, você poderá executar novamente. Se o dimensionamento ainda falhar, entre em contato com o suporte técnico.
- Se a base de dados não for revertida devido a algumas excepções, o cluster poderá tornar-se Unavailable. Nesse caso, você não pode executar ou reiniciar o cluster. Entre em contato com o suporte técnico.
- No cenário de expansão da nuvem nativa 9.0.2, se o número de intervalos alocados a cada DN não estiver entre [3, 20], o dimensionamento automático será acionado. Você pode exibir o número de buckets usando o parâmetro GUC table_buckets.
- Atualmente, o dimensionamento do bucket suporta apenas o modo off-line. O procedimento é o mesmo do procedimento de dimensionamento existente. O sistema determina e executa automaticamente o processo de dimensionamento do bucket.
- Durante o processo de dimensionamento, o cluster é reiniciado. A reinicialização leva vários minutos. Durante a reinicialização, todas as conexões são fechadas.
- Após a conclusão da reinicialização, o banco de dados pode ser lido, mas não pode ser gravado até que a redistribuição de dados seja concluída.
Por exemplo, se o número de intervalos no nó atual for 32 e o número de DNs no cluster lógico for 9, e o número de DNs precisar ser expandido para 15, como 32/15=2 (arredondado para baixo) não atende ao requisito de [3,20], o dimensionamento automático é acionado.
Pré-requisitos
- O cluster a ser expandido está no estado Available ou Unbalanced.
- O número de nós a serem adicionados deve ser menor ou igual aos nós disponíveis. Caso contrário, a expansão do sistema não é permitida.
- Para expandir um cluster como um usuário do IAM, certifique-se de que o usuário do IAM tenha permissões para VPC, EVC e BMS.
Expansão de um cluster
- Um cluster se torna somente leitura durante a expansão. Tenha cuidado ao realizar esta operação.
- Para garantir a segurança dos dados, é aconselhável criar um instantâneo antes da expansão. Para obter detalhes sobre como criar um snapshot, consulte Snapshots manuais.
- Depois de iniciar uma expansão, o sistema primeiro verifica os pré-requisitos da expansão. Se o cluster falhar na verificação, modifique as configurações conforme solicitado e tente novamente. Para obter detalhes, consulte O que devo fazer se a verificação de expansão falhar?
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Clique em Clusters.
Todos os clusters são exibidos por padrão.
- Na coluna Operation do cluster de destino, escolha More > Scale Node > Scale Out. A página de expansão é exibida.
No modo de faturamento anual/mensal, o número de nós no pacote de desconto não é exibido. O tempo restante e o tempo de expiração são exibidos.
Figura 1 Expansão de cluster
- Especifique o número de nós a serem adicionados.
- O número de nós após a expansão deve ser pelo menos três nós a mais do que o número original. O número máximo de nós que podem ser adicionados depende da cota disponível. Além disso, o número de nós após a expansão não pode exceder 256.
Se a cota de nó for insuficiente, clique em Increase quota para enviar um tíquete de serviço e solicitar uma cota de nó mais alta.
- Flavor dos novos nós deve ser o mesmo dos nós existentes no cluster.
- A VPC, a sub-rede e o grupo de segurança do cluster com novos nós adicionados são os mesmos do cluster original.
- O número de nós a serem adicionados a um cluster multi-AZ deve ser múltiplo de 3.
- O número de nós após a expansão deve ser pelo menos três nós a mais do que o número original. O número máximo de nós que podem ser adicionados depende da cota disponível. Além disso, o número de nós após a expansão não pode exceder 256.
- Configure parâmetros avançados.
- Se você escolher Default, Scale Online será desativado, Auto Redistribution será ativada e Redistribution Mode será Offline por padrão.
- Se você escolher Custom, poderá configurar os seguintes parâmetros de configuração avançada para expansão on-line:
- Scale Online: a expansão on-line pode ser ativada. Durante a expansão on-line, dados podem ser adicionados, excluídos, modificados e consultados no banco de dados; e há suporte para algumas sintaxes DDL. Erros serão relatados para as sintaxes não suportadas.
- Auto Redistribution: a redistribuição automática pode ser ativada. Se a redistribuição automática estiver ativada, os dados serão redistribuídos imediatamente após a conclusão da expansão. Se esta função estiver desabilitada, somente a expansão será executada. Nesse caso, para redistribuir dados, selecione um cluster e escolha More > Scale Node > Redistribute.
- Redistribution Concurrency: se a redistribuição automática estiver ativada, você poderá definir o número de tarefas de redistribuição simultâneas. O intervalo de valores é de 1 a 32. O valor padrão é 4.
- Redistribution Mode: pode ser definido como Online ou Offline. Depois de confirmar que as informações estão corretas, clique em OK na caixa de diálogo exibida.
- Clique em Next: Confirm.
- Clique em Submit.
- Depois que você enviar a solicitação de expansão, as informações de tarefa do cluster serão alteradas para Scaling out e o processo levará vários minutos. Durante a expansão, o cluster é reiniciado automaticamente. Portanto, o status do cluster permanecerá Unavailable por um tempo. Depois que o cluster for reiniciado, o status será alterado para Available. Na última fase da expansão, o sistema redistribui dinamicamente os dados do usuário no cluster, durante os quais o cluster está no estado Read-only.
- Um cluster é dimensionado com êxito somente quando o cluster está no estado Available e as informações da tarefa Scaling out não são exibidas. Em seguida, você pode usar o cluster.
- Se Scale-out failed for exibido, o cluster não será expandido.
Expansão com nós ociosos
Para garantir a confiabilidade, prepare os nós do ECS ou do BMS primeiro consultando Adição de nós para um cluster de grande escala e expande o cluster com nós ociosos.
- Desabilite a redistribuição automática quando você expandir um cluster em grande escala para facilitar novas tentativas em cima de falhas para a confiança melhorada.
- Após a conclusão da expansão, execute manualmente redistribution para garantir que várias tentativas possam ser executadas nessa fase.
Precauções
- Um número de nós disponíveis deve ser adicionado ao cluster com antecedência para que os nós ociosos possam ser criados e adicionados para expandir.
- A regra de antiafinidade determina que o número de nós a serem adicionados de cada vez deve ser um múltiplo inteiro do tamanho do anel de cluster.
- Depois de iniciar uma expansão, o sistema primeiro verifica os pré-requisitos da expansão. Se o cluster falhar na verificação, modifique as configurações conforme solicitado e tente novamente. Para obter detalhes, consulte O que devo fazer se a verificação de expansão falhar?
Procedimento
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Clique em Clusters. Todos os clusters são exibidos por padrão.
- Na coluna Operation do cluster de destino, escolha More > Scale Node > Scale Out.
Se houver nós ociosos no cluster, o sistema exibirá uma mensagem perguntando se deseja adicionar nós.
- Configure os parâmetros de expansão e redistribuição conforme necessário. Para mais detalhes, consulte Expansão de um cluster.
Em seguida, clique em Next: Confirm.
- Confirme as informações e clique em Submit.
Exibir detalhes da expansão
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Escolha Clusters.
- Na coluna Task Information de um cluster, clique em View Details.
- Verifique o status de expansão do cluster na página de detalhes de expansão.