Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ GaussDB(DWS)/ Guia de gerenciamento/ Gerenciamento de clusters lógicos/ Tutorial: converter um cluster físico que contém dados em um cluster lógico
Atualizado em 2024-08-19 GMT+08:00

Tutorial: converter um cluster físico que contém dados em um cluster lógico

Cenário

Um grande cluster de banco de dados geralmente contém uma grande quantidade de dados colocados em tabelas diferentes. Com o recurso de resource management, você pode criar pools de recursos para isolar os recursos de diferentes serviços. Diferentes usuários de serviços podem ser alocados para diferentes pools de recursos para reduzir a concorrência de recursos (CPU, memória, I/O e armazenamento) entre os serviços.

À medida que a escala de serviços cresce, o número de serviços no sistema de cluster também aumenta. A criação de vários pools de recursos torna-se menos eficaz no controle da concorrência de recursos. GaussDB(DWS) usa a arquitetura distribuída. e seus dados são distribuídos em vários nós. Cada tabela é distribuída em todos os DNs no cluster, uma operação em uma tabela de dados pode envolver todos os DNs, o que aumenta as cargas de rede e o consumo de recursos do sistema. Para resolver esse problema, a expansão não é eficaz. É aconselhável dividir um cluster do GaussDB(DWS) em vários clusters lógicos.

Você pode criar um cluster lógico separado e atribuir novos serviços a ele. Desta forma, os novos serviços têm pouco impacto sobre os serviços existentes. Além disso, se a escala de serviço em clusters lógicos existentes aumentar, você poderá expandir os clusters lógicos existentes.

Figura 1 mostra como um exemplo. As tabelas de dados de serviço originais de uma empresa são armazenadas no cluster físico original dws-demo (em verde). Depois que os serviços são comutados para o cluster lógico lc1 (em azul), um novo cluster lógico lc2 é adicionado ao cluster físico por meio de expansão. As tabelas de dados de serviço originais são alternadas para o cluster lógico lc1, e as novas tabelas de dados de serviço são gravadas no cluster lógico lc2. Desta forma, os dados de serviços anteriores e novos são isolados. O usuário u2 associado ao cluster lógico lc2 pode acessar as tabelas do cluster lógico lc1 em clusters lógicos após a autorização.

  • Cluster scale: expanda o cluster físico original de três nós para seis nós e divida-o em dois clusters lógicos.
  • Service isolation: os dados de serviço novos e anteriores são isolados em clusters lógicos diferentes.
Figura 1 Acessar dados em clusters lógicos

Criar um cluster e preparar dados de tabela

  1. Criar um cluster. Para mais detalhes, consulte Criação de um cluster do GaussDB(DWS) 2.0.
  2. Após conectar-se ao banco de dados, crie a tabela t1 como o administrador do sistema dbadmin e insira dois registros de dados na tabela.

    1
    2
    CREATE TABLE t1 (id int, name varchar(20));
    INSERT INTO t1 VALUES (1,'joy'),(2,'lily');
    

Converter para cluster lógico lc1

Durante a conversão, você pode executar instruções DML simples, como adicionar, excluir, modificar e consultar dados. Instruções DDL complexas, como operações em objetos de banco de dados, bloquearão serviços. É aconselhável realizar a conversão fora do horário de pico.

  1. Efetue logon no console do GaussDB(DWS). No painel de navegação, escolha Cluster Management. Clique no nome de um cluster para ir para a página Cluster Information.
  2. Ative no comutador Logical Cluster.

    Figura 2 Ativar a função de cluster lógico

  3. No painel de navegação, escolha Logical Clusters. Clique em Add Logical Cluster no canto superior direito, insira o nome de cluster lógico lc1 e clique em OK.

    Durante a alternância, o cluster atual não está disponível. Aguarde cerca de 2 minutos (o tempo de conversão varia dependendo do volume de dados do serviço). Se lc1 for exibido na página de cluster lógico, a conversão será bem-sucedida.

    Figura 3 Adição de um cluster lógico
    Figura 4 Conversão de cluster lógico bem-sucedida

Adicionar nós ao cluster de elastic_group

  1. Retorne à página Cluster Management. Na coluna Operation do cluster, escolha More > Scale Node > Scale Out.

    Figura 5 Expandir um cluster

  2. Defina New Nodes como 3. Habilite Online Scale-out. Defina elastic_group como o cluster lógico de destino. Confirme as configurações, marque a caixa de seleção de confirmação e clique em Next: Confirm.

    Figura 6 Processo de expandir

  3. Clique em Next: Confirm e, em seguida, clique em OK.

    Aguarde cerca de 10 minutos até que a expansão seja bem-sucedida.

Adicionar cluster lógico lc2

  1. Na página Cluster Management, clique no nome de um cluster para acessar a página de detalhes do cluster. No painel de navegação, escolha Logical Clusters.
  2. Clique em Add Logical Cluster no canto superior direito, selecione três nós no painel direito para adicionar ao painel esquerdo, insira o nome do cluster lógico lc2 e clique em OK.

    Após cerca de 2 minutos, o cluster lógico é adicionado com êxito.

    Figura 7 Adição de um cluster lógico
    Figura 8 Selecionar um anel host
    Figura 9 Cluster lógico adicionado

Criar clusters lógicos, associá-los a usuários e consultar dados em clusters lógicos

  1. Conecte-se ao banco de dados como administrador do sistema e execute a seguinte instrução SQL para consultar a tabela de serviço original t1:

    Verifique se os dados de serviço podem ser consultados após a conversão.

    1
    SELECT * FROM t1;
    

  2. Execute as seguintes instruções para associar u1 ao cluster lógico lc1 e u2 ao cluster lógico lc2 e conceder todas as permissões da tabela de serviço original t1 ao usuário u1:

    1
    2
    3
    CREATE USER u1 NODE GROUP 'lc1' password '{password}';
    CREATE USER u2 NODE GROUP 'lc2' password '{password}';
    GRANT ALL ON TABLE t1 TO u1;
    

  3. Alterne para o usuário u2 e consulte os dados na tabela de serviço original t1. Uma mensagem é exibida, indicando que você não tem permissão para acessar o cluster lógico lc1. Isso indica que os dados estão isolados entre clusters lógicos.

    1
    2
    SET ROLE u2 PASSWORD '{password}';
    SELECT * FROM t1;
    

  4. Alterne de volta para o administrador do sistema dbadmin e conceda a permissão de acesso do cluster lógico lc1 ao usuário u2.

    1
    2
    SET ROLE dbadmin PASSWORD '{password}';
    GRANT USAGE ON NODE GROUP lc1 TO u2;
    

  5. Alterne para o usuário u2 e consulte a tabela t1. Isso prova que o usuário vinculado ao cluster lógico lc2 pode consultar a tabela de serviço original t1 em clusters lógicos. Dessa forma, os dados são compartilhados entre clusters lógicos.

    1
    2
    SET ROLE u2 PASSWORD '{password}';
    SELECT * FROM t1;