Configuração do Banco de Dados
Software de Banco de Dados para Captura
Para capturar de um banco de dados PostgreSQL, o Oracle GoldenGate exige que o plug-in de banco de dados test_decoding seja instalado para o banco de dados. Esse plug-in pode não ter sido instalado por padrão quando o banco de dados foi instalado.
Certifique-se de que o pacote postgresqlversion#-contrib esteja instalado no servidor de banco de dados, conforme mostrado no exemplo:
sudo yum install postgresql14-contrib
Parâmetros no arquivo de configuração do banco de dados PostgreSQL
Para o Oracle GoldenGate, configure os seguintes parâmetros no arquivo de configuração do banco de dados PostgreSQL, $PGDATA/postgresql.conf:
Observação: Essas alterações são necessárias para o banco de dados PostgreSQL principal que o Oracle GoldenGate estará capturando, bem como para qualquer banco de dados stand-by que o Oracle GoldenGate possa capturar no caso de falha do banco de dados principal.
-
Para conectividade remota de um Extract ou Replicat, defina o PostgreSQL
listen_addressespara permitir conectividade remota de banco de dados. Por exemplo:listen_addresses=remotehost_ip_addressObservação: Certifique-se de que a autenticação do cliente esteja definida para permitir conexões de um host do Oracle GoldenGate configurando o arquivo
pg_hba.conf. Para obter mais informações, consulte este documento: O arquivo pg_hba.conf -
Para suportar o Extract do Oracle GoldenGate, o log de gravação antecipada deve ser definido como
logical, que adiciona as informações necessárias para suportar a decodificação de registros transacionais.O número máximo de slots de replicação deve ser definido para acomodar um slot aberto por Extract e, em geral, não é necessário mais de um Extract por banco de dados. Se, por exemplo, a Replicação Nativa PostgreSQL já estiver em uso e estiver usando todos os slots de replicação configurados no momento, aumente o valor para permitir o registro de um Extract.
O máximo de remetentes de write-ahead deve ser definido para corresponder ao valor máximo de slots de replicação.
Opcionalmente, os timestamps de commit podem ser ativados no log de write-ahead, que, quando definido ao mesmo tempo, o log de write-ahead lógico é ativado, rastreará o primeiro registro de commit DML desse ponto em diante, com o valor de timestamp correto. Caso contrário, o primeiro registro encontrado pela captura do Oracle GoldenGate terá um timestamp de commit incorreto.
wal_level = logical # set to logical for Capture max_replication_slots = 1 # max number of replication slots, # one slot per Extract/client max_wal_senders = 1 # one sender per max repl slot track_commit_timestamp = on # optional, correlates tx commit time # with begin tx log record (useful for # timestamp-based positioning) -
Após fazer qualquer uma das alterações anteriores, reinicie o banco de dados.
Use estas instruções para gerenciar as configurações do banco de dados para o Azure para PostgreSQL, Amazon Aurora PostgreSQL, Amazon RDS para PostgreSQL, Google AlloyDB para PostgreSQL e Google Cloud SQL para PostgreSQL.
Azure Database para PostgreSQL
Ao configurar o Oracle GoldenGate for PostgreSQL Extract em um Banco de Dados do Azure para PostgreSQL, a decodificação lógica deve ser ativada e definida como LOGICAL.
Leia a documentação da Microsoft para obter as instruções:
https://learn.microsoft.com/en-us/azure/postgresql/
Outras definições do banco de dados do Azure Database para PostgreSQL podem ser gerenciadas por meio da seção Parâmetros do servidor da instância do banco de dados.
Para conexões com uma instância do Banco de Dados do Azure para PostgreSQL, as definições padrão de Segurança de Conexão do Azure exigem conexões SSL. Para cumprir esse requisito, são necessárias mais etapas para dar suporte a conexões SSL com o Oracle GoldenGate.
Siga o conteúdo listado em Configurando o Suporte SSL para PostgreSQL para obter mais informações.
Amazon Aurora PostgreSQL e Amazon RDS para PostgreSQL
Para o Amazon Aurora PostgreSQL e o Amazon RDS para PostgreSQL, as configurações do banco de dados são modificadas nos grupos de parâmetros.
Revise a documentação da Amazon AWS para obter informações sobre como editar configurações de banco de dados em um novo grupo de parâmetros e atribuí-lo a uma instância de banco de dados:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html
-
Certifique-se de que as definições de configuração do banco de dados listadas anteriormente estejam corretas, verificando-as no grupo de parâmetros designado à instância.
-
A definição
wal_levelpara serviços de banco de dados Amazon é configurada com um parâmetro chamadords.logical_replication, cujo padrão é0e deve ser definido como1se o banco de dados tiver que ser usado como um banco de dados de origem para o Oracle GoldenGate Extract. -
O Amazon RDS não suporta a pré-anexação ou o início do nome do slot de replicação com a string
rds. O comando usado pelo Extract do Oracle GoldenGate para criar o slot de replicação retornará um erro se o nome do slot de replicação começar com a stringrds. Por exemplo, você pode nomear o slot de replicação comoordscdc, em vez derdscdc, para evitar esse erro, conforme mostrado no seguinte exemplo:select slot_name from pg_create_logical_replication_slot('ordscdc', 'test_decoding');Esse comando adiciona o slot de replicação
ordscdc. No entanto, se você usar o nome do slot de replicação comordscdc, ocorrerá o seguinte erro:ERROR: must be superuser or replication role to use logical replication slots in the 'rds' namespace
Limitação:
No Amazon Aurora PostgreSQL versão 12.17, se o comando SHOW em letras maiúsculas for executado, ele reportará o seguinte erro:
"ERROR: must be superuser or replication role to run this operation."
Você deve usar o comando SHOW minúsculo para evitar esse erro.
Google AlloyDB for PostgreSQL
A partir do Oracle GoldenGate release 21.14, o Oracle GoldenGate suporta o Google AlloyDB para PostgreSQL. Ao configurar um Extract do Oracle GoldenGate for PostgreSQL para um Google AlloyDB para PostgreSQL, o parâmetro alloydb.logical_decoding configuration (sinalizador) precisa ser definido como ON.
Google Cloud SQL para PostgreSQL
Ao configurar um Extract do Oracle GoldenGate para PostgreSQL para um banco de dados do Google Cloud SQL para PostgreSQL, a decodificação lógica deve ser definida e é feita definindo a variável cloudsql.logical_decoding como ON. Siga as instruções fornecidas pelo Google sobre como ativar esse flag de banco de dados. Para obter mais informações, consulte https://cloud.google.com/sql/docs/postgres/flags#postgres-l.