Preparar conexión a base de datos
Obtenga información sobre la configuración de la conexión a la base de datos, el sistema y los valores de parámetros para Oracle GoldenGate para PostgreSQL.
Oracle GoldenGate para PostgreSQL se conecta a bases de datos PostgreSQL mediante un controlador ODBC preempaquetado. Las conexiones se pueden establecer mediante un nombre de origen de datos (DSN) o mediante una conexión directa y proporcionando el host, el puerto, la base de datos y otra información del servidor de base de datos.
El uso de conexiones DSN necesita que los detalles de conexión se muestren en un archivo odbc.ini, mientras que las entradas directas se introducen manualmente al agregar una conexión de base de datos a la interfaz web del servicio de administración o mediante el cliente de administración.
Nota: PgBouncer no está soportado para las conexiones de Oracle GoldenGate.
Nota: Oracle GoldenGate no soporta conexiones a PostgreSQL que utilizan Pgpool.
Después de realizar los pasos indicados a continuación para crear las entradas DSN o planea utilizar conexiones directas, continúe con el tema Agregar conexiones de base de datos para saber cómo crear conexiones de base de datos.
Configuración de una conexión DSN en Linux
Para crear una conexión DSN para los procesos de Oracle GoldenGate, primero deberá agregar una variable de entorno para el despliegue de Oracle GoldenGate para PostgreSQL y, a continuación, crear un archivo odbc.ini para almacenar los atributos de conexión.
-
Inicie sesión en la interfaz web de Service Manager.
-
En el panel de navegación de la izquierda, haga clic en Despliegues y, a continuación, seleccione el despliegue PostgreSQL de Oracle GoldenGate. Esto amplía los distintos valores para el despliegue.
-
Haga clic en Configuración y, a continuación, haga clic en el signo más (+) junto a Variables de entorno.
-
Proporcione la siguiente información en los dos campos disponibles. Para el campo Valor de variable de entorno, asegúrese de que sea la ruta absoluta del archivo
odbc.ini:Environment Variable Name (Nombre de variable de ambiente) =
ODBCINIValor de variable de entorno =
/ogg/deployment/pgsql/odbc.ini
-
Haga clic en Enviar para crear la nueva variable y, a continuación, reinicie el despliegue desde el panel Despliegues para que se apliquen los cambios.
-
En la carpeta
deploymentde la instalación de Oracle GoldenGate, cree manualmente un archivoodbc.iniy agregue orígenes de datos en este archivo.
Utilice los siguientes valores mínimos al crear el archivo DSN:
-
Data Source Name: nombre definido por el usuario de una conexión de base de datos de origen o destino a la que harán referencia los procesos de Oracle GoldenGate, como Extract o Replicat. Los nombres DSN tienen un máximo de 32 caracteres alfanuméricos y solo pueden incluir guiones bajos (_) y guiones (-) de caracteres especiales. -
IANAAppCodePage=4: es el valor por defecto, pero se puede modificar según la orientación especificada en la página https://docs.progress.com/bundle/datadirect-connect-odbc-71/page/IANAAppCodePage_9.html#IANAAppCodePage_9 cuando el juego de caracteres de la base de datos no es Unicode. -
InstallDir: es el nombre de la ruta del controlador del protocolo de transferencia PostgreSQL de Oracle GoldenGate y puede utilizar una ruta relativa, como:InstallDir =./datadirect -
Driver: nombre del archivo de controlador del protocolo de transferencia electrónica PostgreSQL de Oracle GoldenGate y puede utilizar una ruta de acceso relativa, como:Driver=./datadirect/lib/ggpsql25.so. -
Database: nombre de la base de datos de origen o destino. -
Hostname: dirección IP o nombre de host del host de la base de datos. -
PortNumber: puerto de recepción de la base de datos. -
Oracle GoldenGate para PostgreSQL soporta varios hosts y puertos para conexiones PostgreSQL. Esta función es útil en la configuración de alta disponibilidad (HA) de Oracle GoldenGate. En una configuración de alta disponibilidad PostgreSQL hay un servidor principal y varios servidores en espera. Puede configurar el formato de cadena de conexión para especificar varios hosts:
Cadena de conexión Descripción db-user@host1,host2,host3/db-nameLas conexiones se intentarían utilizando el puerto de base de datos PostgreSQL por defecto 5432 para todos los hosts ( host1,host2,host3).db-user@host1:1234,host2:2345,host3:3456/db-nameLas conexiones se intentarían utilizando los puertos asociados con cada host especificado en la cadena de conexión. db-user@host1,host2,host3:1234/db-nameTodos los hosts que utilizan el mismo número de puerto (1234) en todos los hosts ( host1,host2,host3). Las conexiones se intentarían mediante el puerto 1234 para todos los hosts (host1,host2,host3).db-user@host1,host2,host3:1234/db-nameTodos los hosts que utilizan el mismo número de puerto (1234) en todos los hosts ( host1,host2,host3). Las conexiones se intentarían utilizando el puerto 1234 para todos los hosts.db-user@host1:3456,host2,host3:1234/db-nameSi la cadena de conexión se especifica en otros formatos en los que el número de puerto se especifica para algunos hosts mientras que los otros hosts se especifican sin puertos, se utilizará la última especificación de puerto o la más a la derecha como número de puerto para todos los hosts que no tienen un número de puerto especificado en la cadena de conexión. Como se muestra en la cadena de conexión:
db-user@host1:3456,host2,host3:1234/db-nameEl número de puerto para
host2sería 1234, que es el número de puerto más a la derecha especificado en la cadena de conexión. -
También puede proporcionar un valor
LogonIDyPasswordpara el usuario Extract o Replicat, pero estos se almacenarán en texto no cifrado. Se recomienda dejar estos campos fuera del DSN y, en su lugar, almacenarlos en la cartera de Oracle GoldenGate como alias de credencial y hacer referencia a ellos con el parámetroUSERIDALIASen Extract y Replicat.
A continuación, se muestra un archivo odbc.ini de ejemplo con dos entradas DSN. Los nombres de origen de datos utilizados en el ejemplo siguiente son PG_src y PG_tgt.
|
|
| — |
|
-
Guarde y cierre el archivo
odbc.ini. -
Para configurar la conexión a la base de datos desde Oracle GoldenGate para un despliegue PostgreSQL, consulte Agregar conexiones a base de datos.
Conexión a un sistema PostgreSQL con FIPS activado con la versión 14 o inferior
Cuando Oracle GoldenGate Extract se ejecuta desde un sistema activado para los Estándares Federales de Procesamiento de la Información (FIPS) instalado con una base de datos PostgreSQL inferior a la versión 14, genera el siguiente error:
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.
El algoritmo de cifrado md5 es el algoritmo de cifrado por defecto en la versión de base de datos PostgreSQL inferior a 14 y hace que el Extract finalice de forma anormal con un error.
Para ejecutar Extract en un sistema activado para FIPS que ejecuta una versión de base de datos PostgreSQL inferior a 14, realice los siguientes pasos:
-
Modifique el archivo
postgresql.confpara definir la opciónpassword_encryptionenscram-sha-256. -
Modifique el archivo
pg_hba.confpara definir la opciónMethodenscram-sha-256, ya quemd5no se admite en un sistema con FIPS activado. Sin embargo, este es un paso opcional.La contraseña para el usuario de base de datos que utiliza Oracle GoldenGate Extract se debe volver a generar o modificar si el usuario de base de datos ya se ha creado, después de definir la opción
password_encryptionenscram-sha-256. Puede utilizar la misma contraseña para volver a generarla.Por ejemplo, si el usuario de la base de datos, denominado
admin, utiliza la contraseña comopassword123, se puede volver a generar la misma contraseña mediante el cifradoscram-sha-256.
Configuración del Soporte SSL para PostgreSQL
SSL se puede activar definiendo el parámetro de configuración SSL en el archivo de configuración PostgreSQL ($PGDATA/postgresql.conf ). Si SSL está activado, la entrada hostssl correspondiente debe estar presente o agregarse en el archivo pg_hba.conf.
Cuando SSL está activado, Oracle GoldenGate utiliza el certificado raíz, la lista de revocación de certificación raíz (CRL), el certificado de cliente de servidor y la clave de las ubicaciones por defecto, como se muestra en el siguiente fragmento:
~/.postgresql/root.crt
~/.postgresql/root.crl
~/.postgresql/postgresql.crt
~/.postgresql/postgresql.key
Debe crear las entidades deseadas a partir de esta lista y almacenarlas en las ubicaciones adecuadas.
Si la configuración de SSL se configura mediante ubicaciones que no son por defecto, se deben configurar las siguientes variables de entorno según el entorno.
PGSSLROOTCERT
PGSSLCRL
PGSSLCERT
PGSSLKEY
Cambios necesarios en el archivo odbc.ini
La compatibilidad con SSL se puede activar definiendo el atributo EncryptionMethod DSN en 1 o 6 en el archivo $ODBCINI.
Si se define en 0 (Sin cifrado), los datos no se cifran.
Si se establece en 1 (SSL), los datos se cifran mediante los protocolos SSL especificados en la opción de conexión Crypto Protocol Version (Versión de protocolo criptográfico). Si el servidor de base de datos no soporta el método de cifrado especificado, la conexión falla y el controlador devuelve un error.
Si se define en 6 (RequestSSL), la solicitud de conexión y los datos se cifran mediante SSL si el servidor está configurado para SSL. Si el servidor no está configurado para SSL, se establece una conexión no cifrada. El protocolo SSL utilizado está determinado por la configuración de la opción de conexión de la versión del protocolo criptográfico.
Si también es necesario validar los certificados de cliente/servidor de base de datos, se debe crear el archivo KeyStore correspondiente y se deben configurar los siguientes atributos DSN de ODBC según corresponda en el archivo odbc.ini.
KeyStore=path to .p12 keystore file KeyStorePassword=keystore-passwd TrustStore=path to root certificate ValidateServerCertificate=1
Sin embargo, el archivo KeyStore no es obligatorio para la validación de certificados de cliente (por parte del servidor) cuando ya se proporcionan SSLCert y SSLKey. Nota: La base de datos de Azure para PostgreSQL se define por defecto para aplicar conexiones SSL. Para cumplir este requisito, realice los requisitos que se muestran aquí o, opcionalmente, puede desactivar la aplicación de conexiones SSL desde la configuración de seguridad de conexión de la instancia de base de datos mediante el portal de Microsoft Azure.