Todos os produtos
Search
Central de documentação

AnalyticDB:Migrate from a self-managed Greenplum cluster to AnalyticDB for PostgreSQL

Última atualização: Jun 27, 2026

A Alibaba Cloud otimizou o AnalyticDB for PostgreSQL com base no Greenplum. O serviço oferece suporte a computação vetorial e processamento de transações na arquitetura multi-coordinator. Como utiliza as mesmas operações de API do Greenplum Community Edition, a migração é simples. Este tópico descreve todo o processo de migração, desde a escolha do método até a validação dos resultados.

Antes de migrar

Analise as restrições abaixo antes de iniciar:

  • Migração apenas unidirecional. A migração de dados não suporta sincronização contínua. Caso ocorram gravações durante o processo, insira os novos dados após a conclusão da migração. Pause as operações de escrita durante a migração para evitar degradação de desempenho e lacunas nos dados.

  • Estatísticas pós-migração. Após a migração, o AnalyticDB for PostgreSQL executa ANALYZE para coletar estatísticas destinadas ao planejamento de consultas. A carga de CPU no nó coordenador aumenta temporariamente conforme o volume de dados.

  • Quantidade de nós. Crie uma instância do AnalyticDB for PostgreSQL com pelo menos tantos nós de computação quanto o cluster Greenplum de origem. Ao usar o gpcopy, igualar a quantidade de nós proporciona o melhor throughput de migração.

  • Extensões. Verifique quais extensões o cluster Greenplum autogerenciado utiliza e compare-as com as suportadas pelo AnalyticDB for PostgreSQL. Para a lista completa, consulte Gerenciar extensões.

  • Compatibilidade de sintaxe. O AnalyticDB for PostgreSQL apresenta incompatibilidade parcial com a sintaxe do Greenplum 4X. Revise e atualize os comandos SQL afetados antes da migração.

  • Tabelas particionadas e herdadas. Migre essas tabelas com base nas tabelas filhas, e não na tabela pai.

Visão geral da migração

A migração segue estas quatro etapas:

  1. Avalie os riscos da migração e selecione um método.

  2. Adquira uma instância de teste do AnalyticDB for PostgreSQL e verifique sua abordagem de migração.

  3. Adquira uma instância de produção do AnalyticDB for PostgreSQL e migre seus dados de produção.

  4. Conecte sua aplicação à instância de produção e valide a migração.

Escolha um método de migração

Método

Quando usar

gpcopy

O cluster Greenplum autogerenciado consegue se conectar diretamente à instância do AnalyticDB for PostgreSQL

gptransfer

A instância do AnalyticDB for PostgreSQL consegue se conectar diretamente ao cluster Greenplum autogerenciado

Tabela externa do OSS

O cluster Greenplum autogerenciado e a instância do AnalyticDB for PostgreSQL não conseguem se conectar entre si

O gpcopy não oferece suporte a instâncias no modo de armazenamento elástico (V7.0) ou no modo Serverless. Utilize o gptransfer ou o método de tabela externa do OSS para esses tipos de instância.

Você também pode utilizar o Alibaba Cloud DataWorks (Data Integration) para a migração. Para mais detalhes, consulte Usar o Data Integration para migrar e sincronizar dados em lote.

Migrar dados usando o gpcopy

Pré-requisitos

Antes de começar, confirme os seguintes itens:

  • O cluster Greenplum autogerenciado consegue alcançar a instância do AnalyticDB for PostgreSQL pela rede.

  • Uma conta de superusuário está disponível no cluster Greenplum.

  • A instância do AnalyticDB for PostgreSQL não está no modo de armazenamento elástico (V7.0) nem no modo Serverless. O gpcopy não suporta esses tipos de instância.

Etapa 1: Entrar em contato com o suporte técnico da Alibaba Cloud

Enviar um ticketEnviar um ticket e forneça:

  • O ID da sua instância do AnalyticDB for PostgreSQL

  • O endereço IP e o número da porta do cluster Greenplum autogerenciado

  • Uma conta de superusuário no cluster Greenplum

  • O endereço IP do servidor onde o cluster Greenplum está hospedado

O suporte técnico da Alibaba Cloud baixará e instalará o gpcopy na sua instância do AnalyticDB for PostgreSQL.Enviar um ticket

Etapa 2: Atualizar a lista de permissões de endereços IP

Adicione 0.0.0.0/0 a uma lista de permissões de endereços IP da instância do AnalyticDB for PostgreSQL para permitir acesso externo.

Aviso

O valor 0.0.0.0/0 permite que todos os endereços IP acessem a instância. Remova essa entrada e restaure uma lista de permissões de IP específica imediatamente após a migração.

Etapa 3: Instalar o gpcopy no servidor Greenplum

  1. Baixe o gpcopy no servidor onde o cluster Greenplum autogerenciado está hospedado.

    Este tópico utiliza o gpcopy 2.3.2. Use a versão 2.3.x do gpcopy para a migração. A versão 2,4.x exige criptografia SSL — consulte Configurar criptografia SSL caso utilize essa versão.
  2. No diretório onde o pacote do gpcopy está localizado, execute o script a seguir para instalar o gpcopy:

    #!/bin/bash
    
    tar xzvf gpcopy-2.3.2.tar.gz
    
    cd gpcopy-2.3.2/
    cp gpcopy $GPHOME/bin
    cp gpcopy_helper $GPHOME/bin
    chmod 755 $GPHOME/bin/gpcopy
    chmod 755 $GPHOME/bin/gpcopy_helper
    
    host_sql=`psql -A -t -c "select address from gp_segment_configuration where role = 'p' and content >= 0 group by address"`
    host=(${host_sql})
    host_len=${#host[@]}
    
    host_str=""
    for ((i=0; i<$host_len; ++i)); do
        host_str=$host_str" -h "${host[$i]}
    done
    
    gpscp $host_str gpcopy_helper =:$GPHOME/bin
    gpssh $host_str -e "chmod 755 $GPHOME/bin/gpcopy_helper"

Etapa 4: Executar a migração

Execute o comando a seguir para migrar os dados:

gpcopy --full \
  --source-host <SOURCEHOST> \
  --source-port <SOURCEPORT> \
  --source-user <SOURCEUSER> \
  --dest-host <DESTHOST> \
  --dest-port <DESTPORT> \
  --dest-user <DESTUSER> \
  --jobs 4 \
  --drop \
  --validate count

Substitua os espaços reservados pelos valores reais:

Espaço reservado

Descrição

Observações

<SOURCEHOST>

Endereço IP do servidor Greenplum

Use localhost se estiver executando o comando no servidor Greenplum

<SOURCEPORT>

Número da porta do cluster Greenplum

Padrão: 5432. Execute gpstate -s para verificar a porta real

<SOURCEUSER>

Conta de superusuário do Greenplum

<DESTHOST>

Endereço IP do nó coordenador do AnalyticDB for PostgreSQL

Entre em contato com o suporte técnico da Alibaba Cloud

<DESTPORT>

Número da porta do nó coordenador

Entre em contato com o suporte técnico da Alibaba Cloud

<DESTUSER>

Conta de superusuário do AnalyticDB for PostgreSQL

Entre em contato com o suporte técnico da Alibaba Cloud

Opções principais:

Opção

Descrição

--full

Migra todos os bancos de dados de usuário. Substitua por -d <database name> para migrar um único banco de dados

--jobs

Quantidade de tabelas migradas em paralelo. Padrão: 4. Configure este parâmetro conforme seus requisitos de negócio. Recomendamos calcular o valor usando a fórmula: 2 × Número de conexões + 1

--validate count

Valida a migração comparando a contagem de linhas entre as tabelas de origem e destino

Etapa 5: Restaurar os controles de acesso

Após a conclusão da migração:

  1. Atualize a lista de permissões de endereços IP de 0.0.0.0/0 para os endereços IP necessários ao seu negócio.

  2. Entre em contato com o suporte técnico da Alibaba Cloud para restaurar a configuração da conta de superusuário, os grupos de segurança e as configurações de login sem senha do pg_hba.

Migrar dados usando o gptransfer

Pré-requisitos

Antes de começar, confirme os seguintes itens:

  • A instância do AnalyticDB for PostgreSQL consegue alcançar o cluster Greenplum autogerenciado pela rede.

  • Uma conta privilegiada existe na instância do AnalyticDB for PostgreSQL. Caso contrário, crie uma — consulte Criar uma conta de banco de dados.

Etapas

  1. Crie uma conta privilegiada para a instância do AnalyticDB for PostgreSQL, caso ainda não exista.

  2. Adicione 0.0.0.0/0 a uma lista de permissões de endereços IP da instância do AnalyticDB for PostgreSQL para permitir acesso externo.

    Aviso

    O valor 0.0.0.0/0 permite que todos os endereços IP acessem a instância. Remova essa entrada imediatamente após a migração.

  3. Atualize a instância do AnalyticDB for PostgreSQL para a versão secundária mais recente. Consulte Visualizar a versão secundária do mecanismo e Atualizar a versão secundária do mecanismo.

  4. Enviar um ticketEnviar um ticket e forneça: o ID da instância, o endereço IP e o número da porta do cluster Greenplum autogerenciado, uma conta do cluster Greenplum com permissões para migrar dados e o endereço IP do servidor.

  5. Aguarde a conclusão da migração.

  6. Atualize a lista de permissões de endereços IP de 0.0.0.0/0 para os endereços IP necessários ao seu negócio. Valide seus dados e, em seguida, conecte sua aplicação à instância.

Migrar dados usando uma tabela externa do OSS

Utilize este método quando o cluster Greenplum e a instância do AnalyticDB for PostgreSQL não puderem se conectar diretamente. O processo possui três fases: migração de schema, migração de dados da tabela e verificação de dados.

Migração de schema

  1. No nó mestre do cluster Greenplum autogerenciado, exporte o schema DDL usando pg_dumpall:

    export PGHOST=<IP address of the self-managed Greenplum cluster>
    export PGPORT=<Port number of the self-managed Greenplum cluster>
    export PGUSER=<Superuser account of the self-managed Greenplum cluster>
    export PGPASSWORD=<Password of the superuser account>
    
    # For Greenplum 4X
    pg_dumpall -s -q --gp-syntax > full_schema.sql
    
    # For Greenplum 5X or 6X
    pg_dumpall -s --gp-syntax > full_schema.sql
  2. Verifique a existência de bibliotecas personalizadas. Conecte-se ao cluster Greenplum usando psql e execute:

    SELECT * FROM pg_catalog.pg_library;

    Se existirem bibliotecas personalizadas, crie manualmente o schema correspondente na instância do AnalyticDB for PostgreSQL antes de prosseguir.

  3. Aplique o schema DDL na instância do AnalyticDB for PostgreSQL:

    export PGHOST=<IP address of the AnalyticDB for PostgreSQL instance>
    export PGPORT=<Port number of the AnalyticDB for PostgreSQL instance>
    export PGUSER=<Privileged account of the AnalyticDB for PostgreSQL instance>
    export PGPASSWORD=<Password of the privileged account>
    
    psql postgres -f full_schema.sql > psql.log 2>&1 &

    Verifique erros no arquivo psql.log. A maioria dos erros refere-se a diferenças de sintaxe SQL, especialmente no Greenplum 4X. Para detalhes sobre compatibilidade, consulte Comparações de compatibilidade entre o AnalyticDB for PostgreSQL V4.3 e V6.0 e Verificar incompatibilidade entre o AnalyticDB for PostgreSQL V4.3 e V6.0.

Migração de dados da tabela

Etapa 1: Exportar dados do cluster Greenplum

Escolha um dos métodos de exportação a seguir:

Opção A: COPY TO

Execute a instrução COPY TO no cliente psql:

-- Works with Greenplum 4X, 5X, and 6X
COPY public.t1 TO '/data/gpload/public_t1.csv' FORMAT CSV ENCODING 'UTF8';

Para Greenplum 5X ou 6X, use ON SEGMENT para exportar em paralelo:

COPY public.t1 TO '<SEG_DATA_DIR>/public_t1_<SEGID>.csv' FORMAT CSV ENCODING 'UTF8' ON SEGMENT;
Não modifique o espaço reservado <SEGID> — o sistema o substitui automaticamente durante a exportação. Mantenha <SEG_DATA_DIR> como está ou substitua-o por um caminho absoluto.

Opção B: Tabela externa gpfdist

  1. Inicie o serviço gpfdist:

    mkdir -p /data/gpload
    gpfdist -d /data/gpload -p 8000 &
  2. Conecte-se ao cluster Greenplum usando psql e exporte os dados:

    -- Create a writable external table for public.t1
    CREATE WRITABLE EXTERNAL TABLE ext_w_t1 (LIKE public.t1)
    LOCATION ('gpfdist://<IP address of the self-managed Greenplum cluster>:8000/public_t1.csv')
    FORMAT 'CSV' ENCODING 'UTF8';
    
    -- Write the table data to the external table
    INSERT INTO ext_w_t1 SELECT * FROM public.t1;

Etapa 2: Carregar dados no Object Storage Service (OSS)

Carregue os arquivos exportados em um bucket do OSS. O bucket deve estar na mesma região da instância do AnalyticDB for PostgreSQL. Para instruções de upload, consulte Carregar objetos.

Etapa 3: Importar dados para o AnalyticDB for PostgreSQL

Utilize uma tabela externa do OSS para carregar os dados do OSS na sua instância do AnalyticDB for PostgreSQL. Consulte a seção Importar dados do OSS para uma tabela do AnalyticDB for PostgreSQL para obter detalhes.

Verificar resultados da migração

Execute ambas as verificações para confirmar que a migração foi concluída:

  • Verificação de consistência de dados. Compare a contagem de linhas e os valores agregados de campos numéricos entre a origem e o destino. Para tabelas grandes, é aceitável realizar uma comparação baseada em amostragem.

  • Verificação de consistência de negócios. Conecte sua aplicação à instância do AnalyticDB for PostgreSQL e valide se as consultas de negócio são executadas corretamente e retornam os resultados esperados.

Próximos passos