Replicación de datos de PostgreSQL en Autonomous Transaction Processing

Descubra cómo replicar datos de una base de datos de servidor PostgreSQL en Autonomous Transaction Processing mediante OCI GoldenGate.

Antes de empezar

Para completar correctamente este inicio rápido, debe tener lo siguiente:

Configuración de entorno: PostgreSQL

Para configurar el entorno para este inicio rápido:
  1. Ejecute los siguientes comandos para instalar PostgreSQL.
    1. Instale el servidor PostgreSQL:
      sudo yum install postgresql-server
    2. Instale el módulo postgresql-contrib para evitar esta excepción SQL:
      sudo yum install postgresql-contrib
    3. Cree un nuevo cluster de base de datos PostgreSQL:
      sudo postgresql-setup --initdb
    4. Active postgresql.service:
      sudo systemctl enable postgresql.service
    5. Inicie postgresql.service:
      sudo systemctl start postgresql.service
  2. Por defecto, PostgreSQL solo permite conexiones locales. Permita la conectividad remota a PostgreSQL.
    1. En /var/lib/pgsql/data/postgresql.conf, prepare la base de datos para la replicación.
    2. Busque y elimine los comentarios de listen_addresses = 'localhost' y cambie localhost a un asterisco (*):
      listen_addresses = '*'
    3. Defina los siguientes parámetros de la siguiente forma:
      • wal_level = logical
      • max_replication_slots = 1
      • max_wal_senders = 1
      • track_commit_timestamp = on
      Nota

      Configure /var/lib/pgsql/data/pg_hba.conf para asegurarse de que la autenticación de cliente está definida para permitir conexiones desde un host de Oracle GoldenGate. Por ejemplo, agregue lo siguiente:
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      Consulte The pg_hba.conf File para obtener más información.
    4. Reinicie el servidor PostgreSQL:
      sudo systemctl restart postgresql.service
  3. Si utiliza Oracle Cloud Compute para alojar PostgreSQL, abra el puerto 5432:
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. Abra el puerto 5432 en la lista de seguridad de la VCN.
  5. Conectar a PostgreSQL.
    > sudo su - postgres
    > psql
    Nota

    También puede introducir sudo su - postgres psql si el ejemplo anterior no funciona.
  6. Configure PostgreSQL.
    1. Descargue y ejecute seedSRCOCIGGLL_PostgreSQL.sql para configurar la base de datos y cargar los datos de ejemplo.
    2. Ejecute los siguientes comandos para configurar el usuario (asegúrese de sustituir <password> por una contraseña real):
      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Configuración de entorno: Autonomous Transaction Processing (ATP)

  1. Descargue y descomprima el esquema de base de datos de ejemplo.
  2. Desbloquee el usuario GGADMIN.
    1. En la consola de Oracle Cloud, seleccione la instancia de ATP en la página Bases de datos autónomas para ver los detalles y acceder a Database Actions.
    2. Haga clic en Acciones de base de datos y, a continuación, en Usuarios de la base de datos.
    3. Busque GGADMIN, y, a continuación, haga clic en el menú de puntos suspensivos (tres puntos) y seleccione Editar.
    4. En el panel Editar usuario, introduzca la contraseña de GGADMIN, confirme la contraseña y, a continuación, anule la selección de La cuenta está bloqueada.
    5. Haga clic en Aplicar cambios.
  3. Cargue el esquema y los datos de ejemplo de destino.
    1. En el menú Acciones de base de datos, seleccione SQL.
    2. Copie y pegue el script de OCIGGLL_OCIGGS_SETUP_USERS_ADW.sql en la hoja de trabajo de SQL.
    3. Haga clic en Ejecutar script. El separador Salida de script mostrará los mensajes de confirmación.
    4. Borre la hoja de trabajo de SQL y, a continuación, copie y pegue el SQL de OCIGGLL_OCIGGS_SRC_MIRROR_USER_SEED_DATA.sql.
    5. Para verificar que las tablas se han creado correctamente, cierre la ventana SQL y vuelva a abrirla. En el separador Navegador, busque el esquema SRC_OCIGGLL y, a continuación, seleccione las tablas en sus respectivas listas desplegables.

Tarea 1: Creación de recursos de OCI GoldenGate

En este ejemplo de inicio rápido se necesitan despliegues y conexiones tanto para el origen como para el destino.
  1. Cree un despliegue para la base de datos PostgreSQL de origen.
  2. Cree un despliegue para la instancia de Autonomous Transaction Processing de destino.
  3. Cree una conexión a la base de datos PostgreSQL de origen.
    1. En Tipo, asegúrese de seleccionar servidor PostgreSQL.
    2. En Nombre de base de datos, introduzca ociggll.
    3. En Host, introduzca la IP pública de la instancia informática en la que se ejecuta PostgreSQL.
    4. En Puerto, introduzca 5432.
    5. En Nombre de usuario, introduzca ggadmin.
    6. En Contraseña, introduzca una contraseña.
    7. En Protocolo de seguridad, seleccione Sin formato.
  4. Crear conexión para la instancia de Autonomous Transaction Processing de destino.
  5. Cree una conexión a GoldenGate y, a continuación, asigne esta conexión al despliegue PostgreSQL de origen.
  6. Active la conexión de origen al despliegue de origen PostgreSQL.
  7. Asigne la conexión de destino al despliegue de Oracle de destino.

Tarea 2: Activar el registro complementario

Para activar el registro complementario:
  1. Inicie la consola de despliegue de PostgreSQL GoldenGate:
    1. En la página Despliegues, seleccione el despliegue de PostgreSQL para ver los detalles.
    2. En la página de detalles del despliegue de PostgreSQL, haga clic en Iniciar consola.
    3. En la página de conexión de la consola de despliegue, introduzca las credenciales de administrador de GoldenGate proporcionadas en la tarea 1, paso 1.
      Nota

      Se necesita conectarse si no se ha seleccionado IAM como almacén de credenciales al crear un despliegue.
  2. En GoldenGate 23ai, haga clic en Conexiones de base de datos en la navegación izquierda, a continuación, en la base de datos PostgreSQL de origen y, a continuación, en Trandata.
  3. En la página TRANDATA, junto a Información de TRANDATA, haga clic en Agregar TRANDATA (icono de signo más).
  4. En el panel Trandata, en Nombre de esquema, introduzca src_ociggll.* y, a continuación, haga clic en Enviar.
    Nota

    Utilice el campo de búsqueda para buscar src_ociggll y verificar que se han agregado las tablas.

Tarea 3: Creación de los Extracts

  1. Agregue Change Data Capture Extract:
    1. En la navegación izquierda, haga clic en Extractos.
    2. En la página Extracts, haga clic en Agregar Extract (icono más) y, a continuación, rellene los campos de la siguiente forma:
      • En la página Información de Extracción:
        1. En Tipo de extracción, seleccione Extracto de captura de cambios en los datos.
        2. En Nombre de proceso, introduzca un nombre para el Extract, como ECDC.
        3. Haga clic en Siguiente.
      • En la página Opciones de Extracción:
        1. Para las credenciales de origen, seleccione Oracle GoldenGate en la lista desplegable Dominio.
        2. Seleccione la base de datos PostgreSQL de origen en la lista desplegable Alias.
        3. En Nombre de pista de extracción, introduzca un nombre de pista de dos caracteres, como C1.
        4. Haga clic en Siguiente.
      • En la página Parámetros de extracción, reemplace MAP *.*, TARGET *.*; por lo siguiente:
        TABLE SRC_OCIGGLL.*;
    3. Haga clic en Crear y ejecutar.
  2. Agregue el Extract de carga inicial:
    1. En la página Extracts, haga clic en Agregar Extract y, a continuación, rellene el formulario Agregar Extract de la siguiente forma:
      • En la página Información de Extracción:
        1. Para el tipo de Extract, seleccione Extracto de carga inicial.
        2. En Nombre de proceso, introduzca un nombre, como EIL.
        3. Haga clic en Siguiente.
      • En la página Opciones de Extracción:
        1. Para las credenciales de origen, seleccione Oracle GoldenGate en la lista desplegable Dominio.
        2. Seleccione la base de datos PostgreSQL en la lista desplegable Alias.
        3. En Nombre de pista de extracción, introduzca un nombre de pista de dos caracteres, como I1.
        4. Haga clic en Siguiente.
      • En la página Parámetros de extracción, sustituya el contenido del área de texto por lo siguiente:
        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;
        Nota

        Asegúrese de eliminar el parámetro SOURCEDB delante de USERIDALIAS antes de continuar.
    2. Haga clic en Crear y ejecutar.
Vuelva a la página Extracts, donde puede observar el inicio del Extract.

Tarea 4: Creación de Distribution Path para el Extract Initial Load

  1. En la página Despliegues, seleccione el despliegue de Autonomous Database de destino.
  2. En la página de detalles del despliegue, haga clic en Iniciar consola y, a continuación, conéctese como usuario administrador.
  3. Si utiliza el almacén de credenciales de IAM, continúe con el paso Crear Distribution Path. Si utiliza el almacén de credenciales GoldenGate, cree un usuario con el que el origen GoldenGate utilice para conectarse al destino GoldenGate.
    1. En el menú de navegación, haga clic en Administración de usuarios.
    2. Haga clic en Agregar nuevo usuario (icono de signo más), complete los campos como se indica a continuación y, después, haga clic en Enviar:
      • En Nombre de usuario, introduzca ggsnet.
      • En Rol, seleccione Operador.
      • Introduzca la contraseña dos veces para su verificación.
  4. En la consola de despliegue de origen PostgreSQL, cree una conexión de ruta para el usuario creado en el paso anterior.
    1. En el menú de navegación, haga clic en Conexiones de ruta.
    2. Haga clic en Agregar conexión de ruta de acceso (icono de signo más), complete los campos como sigue y, después, haga clic en Enviar:
      • En Alias de credencial, introduzca dpuser.
      • En ID de usuario, introduzca ggsnet
      • En Contraseña, introduzca la misma contraseña utilizada en el paso anterior.
  5. Cree un Distribution Path.
    1. En la barra de menús del servicio, haga clic en Distribution Service y, a continuación, en Agregar Distribution Path (icono de signo más).
    2. Complete la pantalla Agregar ruta de la siguiente manera:
      • En la página Path Information:
        1. En Nombre de ruta, introduzca un nombre para esta ruta.
        2. Haga clic en Siguiente.
      • En la página Opciones de Origen:
        1. En Origen Extract, deje el espacio en blanco.
        2. En Nombre de pista, introduzca el nombre de pista Initial Load Extract (I1).
        3. Haga clic en Siguiente.
      • En la página Opciones de Destino:
        1. En Destino, seleccione wss.
        2. En Host de destino, introduzca la URL de despliegue de destino, sin https:// ni barras inclinadas finales.
        3. En Número de puerto, introduzca 443.
        4. En Nombre de pista, introduzca I1.
        5. En Método de autenticación del destino, seleccione Alias de ID de usuario.
        6. En Dominio, introduzca el nombre de dominio creado en el paso anterior.
        7. En Alias, introduzca el alias creado en el paso anterior (dpuser).
        8. Haga clic en Siguiente.
    3. Haga clic en Crear y ejecutar.
    Vuelva a la página Distribution Service, donde puede revisar la ruta creada.
  6. En la consola de despliegue de Autonomous Database de destino, revise la ruta de receptor creada como resultado de la ruta de distribución:
    1. Haga clic en Receiver Service.
    2. Revise los detalles de Distribution Path.

Tarea 5: Adición de un Replicat para Initial Load

  1. En el despliegue de Autonomous Database de destino, agregue una tabla Checkpoint.
    1. En el menú de navegación, haga clic en Conexiones de base de datos
    2. Seleccione la instancia de Autonomous Database de destino y, a continuación, Checkpoints.
    3. En la página Checkpoints, haga clic en Agregar punto de control (icono de más).
    4. En el panel Checkpoint, en Tabla de esquema, introduzca SRCMIRROR_OCIGGLL.CHECKTABLE.
    5. Haga clic en Enviar.
  2. Agregue Replicat.
    1. En el menú de navegación, haga clic en Replicats.
    2. En la página Replicats, haga clic en Agregar Replicat (icono más) y, a continuación, complete los campos Agregar Replicat de la siguiente manera:
      • En la página Información de Replicat:
        1. Para tipo Replicat, seleccione Nonintegrated Replicat.
        2. En Nombre de proceso, introduzca un nombre, como RIL.
        3. Haga clic en Siguiente
      • En la página Opciones de Replicat:
        1. En Replicat Nombre de pista, introduzca el nombre de la pista de la tarea 2 (I1).
        2. En Credenciales de destino, seleccione el dominio y el alias para la conexión de Autonomous Database.
        3. En Tabla de puntos de control, seleccione la tabla de puntos de control que ha creado en el paso 1.
        4. Haga clic en Siguiente.
      • En la página Parameter File, sustituya MAP *.*, TARGET *.*; por lo siguiente:
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Haga clic en Crear y ejecutar.
      Vuelva a la página Replicats, donde puede revisar los detalles de Replicat.
  3. Seleccione Replicat (RIL) y vea los Detalles.
  4. Haga clic en Estadísticas y revise el número de inserciones. Refresque la página.
    • Si el número de inserciones no cambia, se han cargado todos los registros de Initial Load y puede parar el Replicat (RIL).
    • Si el número de inserciones continúa aumentando, siga refrescando la página hasta que todos los registros de Initial Load se hayan cargado antes de continuar.
  5. Verifique Initial Load.
    1. En la consola de Oracle Cloud, en la página de detalles de Autonomous Database, haga clic en Acciones de base de datos y, a continuación, en SQL.
    2. En la herramienta SQL, introduzca cada una de las siguientes sentencias en la hoja de trabajo y haga clic en Ejecutar sentencia:
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CITY;
      SELECT * FROM SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
    La salida debe devolver los datos que se han cargado en las tablas de la base de datos de destino como resultado de Initial Load.

Tarea 6: Creación de Distribution Path para Change Data Capture Extract

  1. En la consola de despliegue Origen PostgreSQL, haga clic en Distribution Service.
  2. Haga clic en Agregar Distribution Path.
  3. Complete la pantalla Agregar ruta de la siguiente manera:
    1. En la página Path Information:
      1. En Nombre de ruta, introduzca un nombre.
      2. Haga clic en Siguiente.
    2. En la página Opciones de Origen:
      1. En Origen Extract, seleccione Integrated Extract (ECDC)).
      2. En Nombre de pista, seleccione el archivo de pista Integrated Extract (C1).
      3. Haga clic en Siguiente.
    3. En la página Opciones de Destino:
      1. En Destino, seleccione wss.
      2. En Host de destino, introduzca la URL de la consola de despliegue de destino (puede encontrarla en la página de detalles del despliegue, sin https:// ni barras inclinadas finales.
      3. En Número de puerto, introduzca 443.
      4. En Nombre de pista, introduzca C1.
      5. En Método de autenticación del destino, seleccione Alias de ID de usuario.
      6. En Dominio, introduzca el nombre de dominio.
      7. En Alias, introduzca el alias.
    4. Haga clic en Crear ruta y ejecutar.
  4. En la consola de despliegue de Autonomous Database de destino, haga clic en Servicio de receptor y, a continuación, en la ruta de receptor creada.

Tarea 7: adición de Replicat para Change Data Capture

  1. En la consola de despliegue de Autonomous Database de destino, agregue un Replicat.
    1. En el menú de navegación del servicio de administración, haga clic en Replicats.
    2. En la página Replicats, haga clic en Add Replicat (icono más) y, a continuación, rellene el formulario Add Replicat de la siguiente forma:
      • En la página Información de Replicat:
        1. Para tipo Replicat, seleccione Nonintegrated Replicat.
        2. En Nombre de proceso, introduzca un nombre, como RCDC.
        3. Haga clic en Siguiente.
      • En la página Opciones de Replicat:
        1. En Replicat Nombre de pista, introduzca el nombre de la pista de la tarea 3 (C1).
        2. En Credenciales de destino, seleccione el dominio y el alias para la conexión de Autonomous Database.
        3. En Tabla de puntos de control, seleccione la tabla de puntos de control.
      • En la página Replicat Parámetros, sustituya MAP *.*, TARGET *.*; por la siguiente asignación:
        MAP SRC_OCIGGLL.*, TARGET SRCMIRROR_OCIGGLL.*;
    3. Haga clic en Crear. No ejecute Replicat.
  2. En la página Replicats, seleccione Replicat en Initial Load (RIL) y vea los Detalles.
  3. Haga clic en Estadísticas y revise el número de inserciones. Refresque la página.
    • Si el número de inserciones no cambia, significa que se han cargado todos los registros de Initial Load y que puede parar el Replicat (RIL).
    • Si el número de inserciones continúa aumentando, siga refrescando la página hasta que todos los registros de Initial Load se hayan cargado antes de continuar.
    Nota

    Si no ve ninguna inserción, haga clic en Servicio de métricas de rendimiento, seleccione el Extracto y, a continuación, haga clic en Estadísticas de base de datos.
  4. Vuelva a la página Replicats y, a continuación, inicie Replicat para Change Data Capture (RCDC).
  5. Después de iniciar Replicat para Change Data Capture, revise sus Detalles y Statistics para ver el número de inserciones.
  6. Verifique la replicación:
    1. Ejecute el siguiente script para realizar inserciones en la base de datos PostgreSQL:
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. En la consola de despliegue PostgreSQL de origen, seleccione Change Data Capture Extract (ECDC) y, a continuación, haga clic en Statistics. Verifique que src_ociggll.src_city tenga 10 inserciones.
      Nota

      Si Extract no ha capturado ninguna inserción, reinicie ECDC Extract.
    3. En la consola de despliegue de Autonomous Database de destino, seleccione el nombre Replicat (RCDC), consulte sus Detalles y, a continuación, compruebe Estadísticas. Verifique que SRCMIRROR_OCIGGLL.SRC_CITY tenga 10 inserciones.

Tarea 8: Supervisión y mantenimiento de procesos