Redistribuição de dados
A redistribuição de dados, em que os dados em nós existentes são alocados uniformemente aos novos nós depois de você escalar um cluster, é uma tarefa demorada, mas crucial, que acelera a resposta do serviço.
Por padrão, a redistribuição é iniciada automaticamente após a expansão do cluster. Para maior confiabilidade, desative a função de redistribuição automática e inicie manualmente uma tarefa de redistribuição depois que a expansão for bem-sucedida. Dessa forma, tanto a escala quanto a redistribuição podem ser tentadas novamente em caso de falhas.
Atualmente, a redistribuição off-line e a redistribuição on-line são suportadas. O modo padrão é a redistribuição off-line.
Antes do início da redistribuição ou quando a redistribuição é pausada, você pode definir prioridades de redistribuição para as tabelas que não foram redistribuídas por esquema ou tabela.
- A função de redistribuição de cluster é suportada nas versões de cluster 8.1.1.200 ou posteriores.
- O agendamento off-line não é suportado na versão 8.2.0 ou posterior.
- Esta função pode ser ativada manualmente somente quando as informações da tarefa do cluster forem exibidas To be redistributed após a expansão.
- Você também pode selecionar o modo de redistribuição ao configurar a expansão do cluster (consulte Configure parâmetros avançados).
- As filas de redistribuição são classificadas com base no tamanho de relpage das tabelas. Para garantir que o tamanho de relpage esteja correto, é aconselhável executar a operação ANALYZE nas tabelas a serem redistribuídas.
Redistribuição off-line
Precauções
- No modo de redistribuição off-line, o banco de dados não oferece suporte a operações DDL e DCL. As tabelas que estão sendo redistribuídas suportam apenas operações DQL simples.
- 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. 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.
Procedimento
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Escolha Clusters. Todos os clusters são exibidos por padrão.
- Na coluna Operation do cluster de destino, escolha More > Scale Node > Redistribute, conforme mostrado na figura a seguir.
A página Redistribution é exibida.
- Na página Redistribute exibida, mantenha o modo de redistribuição offline padrão e clique em Next: Confirm para enviar a tarefa.
Redistribuição on-line
Precauções
No modo de redistribuição on-line, o banco de dados suporta operações parciais DDL e DCL.
- Tabelas que estão sendo redistribuídas suportam operações de inserção, exclusão e atualização e algumas operações DDL. Há suporte para as seguintes funções:
- INSERT, DELETE, UPDATE, MERGE INTO, OVERWRITE, UPSERT
- Consultas Join em grupos de nós
- Renomeação de tabela local, modificação de esquema, DROP, TRUNCATE, TRUNCATE-PARTITION
- As seguintes operações não podem ser executadas em tabelas que estão sendo redistribuídas:
- Executar instruções ALTER TABLE (exceto para TRUNCATE PARTITION), incluindo adicionar ou excluir colunas ou partições.
- Criar, modificar ou excluir índices.
- VACUUM FULL ou CLUSTER não podem ser executados em tabelas durante a redistribuição da tabela.
- Modificar os objetos de sequência dos quais uma coluna depende, incluindo sua criação e modificação. Instruções típicas são CREATE e ALTER SEQUENCE ... OWNED BY.
- Durante a redistribuição de uma tabela com mais de 996 colunas, as instruções UPDATE e DELETE não podem ser executadas. As instruções SELECT e INSERT são permitidas.
- Objetos de banco de dados e de espaço de tabela não podem ser criados, deletados ou modificados durante a redistribuição.
- Uma troca de partição pode ser executada somente se a redistribuição estiver completa para ambas as tabelas a serem trocadas. As duas tabelas pertencem a grupos de nós diferentes e não permitem a troca de partições se uma delas estiver sendo redistribuída.
Procedimento
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Escolha Clusters. Todos os clusters são exibidos por padrão.
- Na coluna Operation do cluster de destino, escolha More > Scale Node > Redistribute, conforme mostrado na figura a seguir.
- Na página Redistribute exibida, defina Advanced como Custom, defina o modo de redistribuição como Online mode e clique em Next: Confirm para enviar a tarefa.
Agendamento off-line
Precauções
O agendamento off-line é semelhante à redistribuição off-line. No modo de agendamento off-line, as tabelas são redistribuídas somente dentro da janela de tempo configurada e a redistribuição é pausada fora da janela de tempo.
- 8.2.0 e versões posteriores não suportam agendamento off-line.
- Se um cluster quebrar durante a redistribuição off-line, Redistribution failed será exibida. Se o cluster for recuperado, a redistribuição será retomada automaticamente. Para atualizar o status, clique em Redistribute após a conclusão da redistribuição.
Procedimento
- Faça logon no console de gerenciamento do GaussDB(DWS).
- Escolha Clusters. Todos os clusters são exibidos por padrão.
- Na coluna Operation do cluster de destino, escolha More > Scale Node > Redistribute, conforme mostrado na figura a seguir.
A página Redistribution é exibida.
- Na página Redistribute exibida, defina Advanced como Custom, defina o modo de redistribuição como Offline scheduling e configure a janela de agendamento e clique em Next: Confirm para enviar a tarefa.
No modo de redistribuição agendada e fora da janela de tempo agendada, uma tarefa de redistribuição é pausada e o status do cluster é Redistribution paused.