Preparar Conexão do Banco de Dados
Saiba mais sobre como configurar definições de conexão de banco de dados, sistema e parâmetro para o Oracle GoldenGate para PostgreSQL.
O Oracle GoldenGate for PostgreSQL se conecta a bancos de dados PostgreSQL usando um driver ODBC pré-empacotado. As conexões podem ser estabelecidas usando um Nome de Origem de Dados (DSN) ou usando uma conexão direta e fornecendo o host, a porta, o banco de dados e outras informações do servidor de banco de dados.
O uso de conexões DSN requer que os detalhes da conexão sejam listados em um arquivo odbc.ini, enquanto o uso de entradas diretas é inserido manualmente ao adicionar uma conexão de banco de dados à interface Web do Serviço de Administração ou por meio do Admin Client.
Observação: PgBouncer não é suportado para conexões do Oracle GoldenGate.
Observação: O Oracle GoldenGate não suporta conexões com o PostgreSQL que usam Pgpool.
Depois de executar as etapas fornecidas a seguir para criar as entradas DSN ou você planeja usar conexões diretas, vá para o tópico Adicionar Conexões de Banco de Dados para saber como criar conexões de banco de dados.
Configurar uma Conexão DSN no Linux
Para criar uma conexão DSN para processos do Oracle GoldenGate, primeiro você precisará adicionar uma variável de ambiente para a implantação do Oracle GoldenGate para PostgreSQL e, em seguida, criar um arquivo odbc.ini para armazenar os atributos de conexão.
-
Faça login na interface web do Service Manager.
-
No painel de navegação esquerdo, clique em Deployments e selecione a implantação PostgreSQL do Oracle GoldenGate. Isso expande as várias configurações para a implantação.
-
Clique em Configuração e, em seguida, clique no sinal de mais (+) ao lado de Variáveis de Ambiente.
-
Forneça as informações a seguir nos dois campos disponíveis. Para o campo Valor da Variável de Ambiente, verifique se ele é o caminho absoluto do arquivo
odbc.ini:Nome da Variável de Ambiente =
ODBCINIValor da Variável de Ambiente =
/ogg/deployment/pgsql/odbc.ini
-
Clique em Submeter para criar a nova variável e, em seguida, reiniciar a implantação no painel Implantações, para que as alterações entrem em vigor.
-
Na pasta
deploymentda instalação do Oracle GoldenGate, crie manualmente um arquivoodbc.inie adicione origens de dados nesse arquivo.
Use as seguintes configurações mínimas ao criar o arquivo DSN:
-
Data Source Name– Um nome definido pelo usuário de uma conexão de banco de dados de origem ou de destino que será referenciada pelos processos do Oracle GoldenGate, como Extract ou Replicat. Os nomes DSN são permitidos com até 32 caracteres alfanuméricos e só podem incluir sublinhado (_) e traço (-) de caracteres especiais. -
IANAAppCodePage=4– É a definição padrão, mas pode ser modificada de acordo com a orientação especificada na página https://docs.progress.com/bundle/datadirect-connect-odbc-71/page/IANAAppCodePage_9.html#IANAAppCodePage_9 quando o conjunto de caracteres do banco de dados não for Unicode. -
InstallDir– É o nome do caminho do driver do protocolo remoto PostgreSQL do Oracle GoldenGate e pode usar um caminho relativo, como:InstallDir =./datadirect -
Driver: É o nome do arquivo de driver do Oracle GoldenGate PostgreSQL Wire Protocol e pode usar um caminho relativo, como:Driver=./datadirect/lib/ggpsql25.so. -
Database: Este é o nome do banco de dados de origem ou de destino. -
Hostname: Este é o endereço IP ou o nome do host do host do banco de dados. -
PortNumber: Esta é a porta de listening do banco de dados. -
O Oracle GoldenGate for PostgreSQL suporta vários hosts e portas para conexões PostgreSQL. Esse recurso é útil na configuração do Oracle GoldenGate High Availability (HA). Em uma configuração HA PostgreSQL, há um servidor principal e vários servidores stand-by. Você pode configurar o formato de string de conexão para especificar vários hosts:
String de Conexão Descrição db-user@host1,host2,host3/db-nameAs conexões seriam tentadas usando a porta de banco de dados PostgreSQL padrão 5432 para todos os hosts ( host1,host2,host3).db-user@host1:1234,host2:2345,host3:3456/db-nameHá uma tentativa de estabelecer conexões usando as portas associadas a cada host especificado na string de conexão. db-user@host1,host2,host3:1234/db-nameTodos os hosts que usam o mesmo número de porta (1234) em todos os hosts ( host1,host2,host3). A tentativa de estabelecer conexões usando a porta 1234 para todos os hosts (host1,host2,host3).db-user@host1,host2,host3:1234/db-nameTodos os hosts que usam o mesmo número de porta (1234) em todos os hosts ( host1,host2,host3). As conexões seriam tentadas usando a porta 1234 para todos os hosts.db-user@host1:3456,host2,host3:1234/db-nameSe a string de conexão for especificada em outros formatos em que o número da porta é especificado para alguns hosts enquanto os outros hosts são especificados sem portas, a especificação da última porta ou da extremidade direita será usada como o número da porta para todos os hosts que não têm um número de porta especificado na string de conexão. Como mostrado na string de conexão:
db-user@host1:3456,host2,host3:1234/db-nameO número da porta para
host2seria 1234, que é o número da porta mais à direita especificado na string de conexão. -
Você também pode fornecer uma
LogonIDe umaPasswordpara o usuário Extract ou Replicat, mas elas serão armazenadas em texto não criptografado. É recomendável deixar esses campos fora do DSN e, em vez disso, armazená-los na wallet do Oracle GoldenGate como um alias de credencial e referenciá-los com o parâmetroUSERIDALIASem Extract e Replicat.
Veja a seguir um arquivo de exemplo odbc.ini com duas entradas DSN. Os nomes da Origem de Dados usados no exemplo abaixo são PG_src e PG_tgt.
|
|
| — |
|
-
Salve e feche o arquivo
odbc.ini. -
Para configurar a conexão de banco de dados do Oracle GoldenGate para uma implantação do PostgreSQL, consulte Adicionar Conexões de Banco de Dados.
Estabelecendo Conexão com um Sistema PostgreSQL Ativado para FIPS com a Versão 14 ou Inferior
Quando o processo Extract do Oracle GoldenGate é executado de um sistema ativado pelo FIPS (Federal Information Processing Standards) instalado com o banco de dados PostgreSQL inferior à versão 14, ele gera o seguinte erro:
ERROR OGG-25359 Could not connect to server with database 'postgres', host 'localhost', port '5432' and user name 'postgres'. Error Message: connection to server at "localhost" (::1), port 5432 failed: could not encrypt password: disabled for FIPSfe_sendauth: error sending password authentication.
O algoritmo de criptografia md5 é o algoritmo de criptografia padrão na versão do banco de dados PostgreSQL inferior a 14 e faz com que o Extract seja encerrado com um erro.
Para executar o processo Extract em um sistema ativado para FIPS que executa a versão do banco de dados PostgreSQL inferior a 14, execute as seguintes etapas:
-
Modifique o arquivo
postgresql.confpara definir a opçãopassword_encryptioncomoscram-sha-256. -
Modifique o arquivo
pg_hba.confpara definir a opçãoMethodcomoscram-sha-256, poismd5não é suportado em um sistema ativado para FIPS. No entanto, esta é uma etapa opcional.A senha do usuário do banco de dados que é usada pelo Oracle GoldenGate Extract deverá ser gerada novamente ou modificada se o usuário do banco de dados já tiver sido criado, após a opção
password_encryptionser definida comoscram-sha-256. Você pode usar a mesma senha para ser gerada novamente.Por exemplo, se o usuário do banco de dados, chamado
admin, usar a senha comopassword123, a mesma senha poderá ser gerada novamente usando a criptografiascram-sha-256.
Configurando o Suporte a SSL para PostgreSQL
O SSL pode ser ativado definindo o parâmetro de configuração SSL como ativado no arquivo de configuração PostgreSQL ($PGDATA/postgresql.conf ). Se o SSL estiver ativado, a entrada hostssl correspondente deverá estar presente ou ser adicionada no arquivo pg_hba.conf.
Quando o SSL é ativado, o Oracle GoldenGate usa o certificado raiz, a lista de revogação de certificação raiz (CRL), o certificado do cliente do servidor e a chave dos locais padrão, conforme mostrado no seguinte trecho de código:
~/.postgresql/root.crt
~/.postgresql/root.crl
~/.postgresql/postgresql.crt
~/.postgresql/postgresql.key
Você precisa criar as entidades desejadas nesta lista e armazená-las em locais apropriados.
Se a configuração do SSL for configurada usando locais não padrão, as variáveis de ambiente a seguir deverão ser configuradas de acordo com o ambiente.
PGSSLROOTCERT
PGSSLCRL
PGSSLCERT
PGSSLKEY
Alterações necessárias no arquivo odbc.ini
O suporte a SSL pode ser ativado definindo o atributo EncryptionMethod DSN como 1 ou 6 no arquivo $ODBCINI.
Se definido como 0 (Sem Criptografia), os dados não serão criptografados.
Se definido como 1 (SSL), os dados serão criptografados usando os protocolos SSL especificados na opção de conexão Versão do Protocolo de Criptografia. Se o método de criptografia especificado não for suportado pelo servidor de banco de dados, a conexão falhará e o driver retornará um erro.
Se definido como 6 (RequestSSL), a solicitação de log-in e os dados serão criptografados usando SSL se o servidor estiver configurado para SSL. Se o servidor não estiver configurado para SSL, uma conexão não criptografada será estabelecida. O protocolo SSL usado é determinado pela definição da opção de conexão Versão do protocolo Crypto.
Se o servidor de banco de dados/certificados de cliente também precisarem ser validados, o arquivo KeyStore correspondente precisará ser criado e os seguintes atributos ODBC DSN deverão ser configurados de acordo no arquivo odbc.ini.
KeyStore=path to .p12 keystore file KeyStorePassword=keystore-passwd TrustStore=path to root certificate ValidateServerCertificate=1
No entanto, o arquivo KeyStore não é obrigatório para validação de certificados de cliente (pelo servidor) quando SSLCert e SSLKey já são fornecidos. Observação: O Banco de Dados do Azure para PostgreSQL usa como padrão para impor conexões SSL. Para aderir a esse requisito, execute os requisitos listados aqui ou, opcionalmente, você pode desativar a imposição de conexões SSL nas configurações de segurança de Conexão da instância do banco de dados usando o Portal do Microsoft Azure.