Depuração e outras ferramentas

Esta página inclui scripts que ajudam a depurar e usar o PostgreSQL.

Migrar operações UPDATE e DELETE para tabelas sem chave primária

Para tabelas sem chaves primárias, o Database Migration Service oferece suporte à migração de snapshots iniciais e instruções INSERT durante a fase de captura de dados alterados (CDC).

Para atualizar os processos UPDATE e DELETE ausentes, consulte as seções posteriores deste documento.

Detectar dados ausentes entre as instâncias de origem e de destino do Cloud SQL

  1. Identifique quais tabelas não têm chaves primárias:
    SELECT tab.table_schema,
           tab.table_name
    FROM information_schema.tables tab
    LEFT JOIN information_schema.table_constraints tco 
              ON tab.table_schema = tco.table_schema
              AND tab.table_name = tco.table_name 
              AND tco.constraint_type = 'PRIMARY KEY'
    WHERE tab.table_type = 'BASE TABLE'
          AND tab.table_schema NOT IN ('pg_catalog', 'information_schema', 'pglogical')
          AND tco.constraint_name IS NULL
    ORDER BY table_schema,
             table_name;
  2. Antes de iniciar a migração, para todas as tabelas sem chaves primárias, verifique se há atualizações ou exclusões usando esta consulta:
    SELECT schemaname,
           relname,
           n_tup_ins,
           n_tup_upd,
           n_tup_del
    FROM pg_stat_user_tables
    WHERE schemaname NOT IN
      ('pglogical', 'pg_catalog', 'information_schema');
    Em que:
    • n_tup_ins: número de linhas inseridas
    • n_tup_upd: número de linhas atualizadas (inclui linhas atualizadas por HOT)
    • n_tup_del: número de linhas excluídas
  3. Salve esses resultados em uma tabela separada ou em um arquivo.
  4. Depois que a configuração da migração for concluída, execute a consulta novamente.
  5. Compare os resultados com os da etapa 3.

Se houver diferenças nos valores de n_tup_upd ou n_tup_del na origem durante a migração, talvez haja algumas atualizações ou exclusões na origem.

Migrar dados manualmente da origem para as instâncias de destino do Cloud SQL

Se você detectar discrepâncias entre a origem e a instância de destino do Cloud SQL, migre os dados usando uma das opções:

  • Opção 1: comparar manualmente os dados entre a origem e o destino do Cloud SQL e executar as consultas SQL apropriadas para atualizar apenas os dados que são diferentes entre a origem e a réplica.

  • Opção 2: execute pg_dump e pg_restore para as tabelas sem chaves primárias. Consulte Exportar dados de um servidor PostgreSQL local usando pg_dump para mais informações.

  • Opção 3: use o comando COPY do PostgreSQL para migrar seus dados. Consulte a documentação do PostgreSQL para mais informações. Essa etapa exige que a VM de réplica possa se conectar à VM de origem.