Implementación de Oracle Golden Gate en una máquina virtual Linux (VM) de Azure
Se aplica a: ✔️ Máquinas virtuales Linux
La CLI de Azure se usa para crear y administrar recursos de Azure desde la línea de comandos o en scripts. En esta guía se detalla cómo usar la CLI de Azure para la implementación de la base de datos de Oracle 19c desde la imagen de la galería de Azure Marketplace.
En este documento se muestra paso a paso cómo crear, instalar y configurar Oracle Golden Gate en una máquina virtual de Azure. En este tutorial, se configuran dos máquinas virtuales en un conjunto de disponibilidad en una sola región. Se puede usar el mismo tutorial para configurar OracleGolden Gate para máquinas virtuales en diferentes zonas de disponibilidad en una sola región de Azure o para la configuración de máquinas virtuales en dos regiones diferentes.
Antes de comenzar, asegúrese de que esté instalada la CLI de Azure. Para obtener más información, consulte la guía de instalación de la CLI de Azure.
Introducción
GoldenGate es un software de replicación lógico que permite la replicación en tiempo real, el filtrado y la transformación de datos de una base de datos de origen a una base de datos de destino. Esta característica garantiza que los cambios en la base de datos de origen se repliquen en tiempo real, lo que permite que la base de datos de destino esté actualizada con los datos más recientes.
Use GoldenGate principalmente para casos de replicación heterogénea, como la replicación de datos de diferentes bases de datos de origen a una base de datos única. Por ejemplo, un almacenamiento de datos. También puede usarlo para migraciones multiplataforma, por ejemplo, desde SPARC y AIX a entornos de Linux x86, y escenarios avanzados de alta disponibilidad y escalabilidad.
Además, GoldenGate también es adecuado para migraciones de tiempo de inactividad casi cero, ya que admite migraciones en línea con una interrupción mínima en los sistemas de origen.
Aunque GoldenGate facilita la replicación bidireccional, la aplicación debe configurarse en consecuencia. Además, el software permite filtrar y transformar los datos para cumplir requisitos empresariales específicos, lo que permite a los usuarios usar los datos replicados con diversos fines.
Preparación del entorno
Para llevar a cabo la instalación de Oracle Golden Gate, debe crear dos máquinas virtuales de Azure en el mismo conjunto de disponibilidad. La imagen de Marketplace que se usa para crear las máquinas virtuales es Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.
También debe estar familiarizado con vi, el editor de Unix, y tener un conocimiento básico del servidor X.
La tabla siguiente es un resumen de la configuración del entorno:
Sitio principal | Sitio de réplica | |
---|---|---|
Versión de Oracle | Oracle Database 19.3.1.0 | Oracle Database 19.3.1.0 |
Nombre de la máquina | ggVM1 | ggVM2 |
Sistema operativo | Oracle Linux 7.x | Oracle Linux 7.x |
SID de Oracle | CDB1 | CDB1 |
Esquema de replicación | PRUEBA | PRUEBA |
Propietario/réplica de Golden Gate | C##GGADMIN | REPUSER |
Proceso de Golden Gate | EXTORA | REPORA |
Inicio de sesión en Azure
Abra el shell preferido en Windows, Linux o Azure Shell.
Inicie sesión en su suscripción de Azure con el comando az login. Después, siga las instrucciones que aparecen en pantalla.
$ az login
Compruebe el nombre o el identificador de la suscripción para asegurarse de que está conectado a la suscripción correcta.
$ az account show
{ "environmentName": "XXXXX", "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "id": "<SUBSCRIPTION_ID>", "isDefault": true, "managedByTenants": [], "name": "<SUBSCRIPTION_NAME>", "state": "Enabled", "tenantId": XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "user": { "cloudShellID": true, "name": "aaaaa@bbbbb.com", "type": "user" } }
Generación de claves de autenticación
Usamos la autenticación basada en archivos de claves con ssh para conectarse a la máquina virtual de Oracle Database. Asegúrese de que tiene los archivos de clave privados (denominados id_rsa
) y públicos (denominados id_rsa.pub
) en el shell.
La ubicación de los archivos de clave depende del sistema de origen.
Windows: %USERPROFILE%.ssh Linux: ~/.ssh
Si no existen, puede crear un par de archivos clave.
ssh-keygen -m PEM -t rsa -b 4096
Se crean el directorio .ssh y los archivos de clave. Para más información, consulte Creación y administración de claves SSH para la autenticación en una máquina virtual Linux en Azure
Crear un grupo de recursos
Para crear un grupo de recursos, use el comando az group create. Un grupo de recursos de Azure es un contenedor lógico en el que se implementan y se administran los recursos de Azure.
$ az group create --name GoldenGateOnAzureLab --location westus
Creación y configuración de la red
Creación de una red virtual
Use el siguiente comando para crear la red virtual que hospeda los recursos que creamos en este laboratorio.
$ az network vnet create \
--name ggVnet \
--resource-group GoldenGateOnAzureLab \
--address-prefixes "10.0.0.0/16" \
--subnet-name ggSubnet1 \
--subnet-prefixes "10.0.0.0/24"
Cree un grupo de seguridad de red (NSG)
Cree un grupo de seguridad de red (NSG) para bloquear la red virtual.
$ az network nsg create \ --resource-group GoldenGateOnAzureLab \ --name ggVnetNSG
Cree una regla de NSG para permitir la comunicación dentro de la red virtual.
$ az network nsg rule create --resource-group GoldenGateOnAzureLab --nsg-name ggVnetNSG \ --name ggAllowVnet \ --protocol '*' --direction inbound --priority 3400 \ --source-address-prefix 'VirtualNetwork' --source-port-range '*' \ --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
Cree una regla de NSG para denegar todas las conexiones entrantes.
$ az network nsg rule create \ --resource-group GoldenGateOnAzureLab \ --nsg-name ggVnetNSG \ --name ggDenyAllInBound \ --protocol '*' --direction inbound --priority 3500 \ --source-address-prefix '*' --source-port-range '*' \ --destination-address-prefix '*' --destination-port-range '*' --access deny
Asigne NSG a la subred donde hospedamos nuestros servidores.
$ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
Creación de una red Bastion
Cree una subred Bastion. El nombre de la subred debe ser AzureBastionSubnet.
$ az network vnet subnet create \ --resource-group GoldenGateOnAzureLab \ --name AzureBastionSubnet \ --vnet-name ggVnet \ --address-prefixes 10.0.1.0/24
Cree una dirección IP pública para Bastion.
$ az network public-ip create \ --resource-group GoldenGateOnAzureLab \ --name ggBastionIP \ --sku Standard
Cree un recurso de Azure Bastion. El recurso tarda aproximadamente 10 minutos en implementarse.
$ az network bastion create \ --resource-group GoldenGateOnAzureLab \ --name ggBastion \ --public-ip-address ggBastionIP \ --vnet-name ggVnet \ --sku Standard \ --enable-tunneling \ --enable-ip-connect true
Creación de una máquina virtual de X Server (ggXServer)
Reemplace la contraseña y ejecute el siguiente comando para crear una máquina virtual de estación de trabajo Windows donde se implementa X Server.
$ az vm create \
--resource-group GoldenGateOnAzureLab \
--name ggXServer \
--image MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207 \
--size Standard_DS1_v2 \
--vnet-name ggVnet \
--subnet ggSubnet1 \
--public-ip-sku Standard \
--nsg "" \
--data-disk-delete-option Delete \
--os-disk-delete-option Delete \
--nic-delete-option Delete \
--admin-username azureuser \
--admin-password <ENTER_YOUR_PASSWORD_HERE>
Conexión a ggXServer a través de Bastion
Conéctese a ggXServer mediante Bastion.
- Vaya a ggXServer desde Azure Portal.
- Busque Información general en el panel de navegación izquierdo
- Seleccione Conectar>Bastion en el menú de la parte superior
- Seleccione la pestaña Bastion
- Haga clic en Usar Bastion
Preparación de ggXServer para ejecutar X Server
X Server es necesario para los pasos posteriores de este laboratorio. Siga estos pasos para instalar e iniciar X Server.
Descargue Xming X Server para Windows en ggXServer e instale con todas las opciones predeterminadas.
Asegúrese de que no ha seleccionado Iniciar al final de la instalación
Inicie la aplicación "XLAUNCH" desde el menú Inicio.
Seleccione Varias ventanas
Seleccione Iniciar sin cliente
Seleccione Sin control de acceso
Seleccione Permitir acceso para permitir X Server a través del Firewall de Windows
Si reinicia la máquina virtual de ggXServer, siga los pasos 2 a 6 anteriores para reiniciar la aplicación X Server.
Creación de máquinas virtuales de base de datos de Oracle
Para este laboratorio, creamos máquinas ggVM1
virtuales y ggVM2
a partir de la imagen de Oracle Database 19c. Este comando crea claves SSH si aún no existen en la ubicación de claves predeterminada. Para utilizar un conjunto específico de claves, utilice la opción --ssh-key-value
. Si ya ha creado las claves SSH en la sección Generar claves de autenticación, se usan esas claves.
Al crear una máquina virtual, el parámetro size
indica el tamaño y el tipo de máquina virtual creados. En función de la región de Azure que haya seleccionado para crear la máquina virtual y la configuración de la suscripción, es posible que algunos tamaños y tipos de máquina virtual no estén disponibles para su uso. En el ejemplo siguiente se usa el tamaño mínimo necesario para este laboratorio Standard_DS1_v2
. Si desea cambiar las especificaciones de la máquina virtual, seleccione uno de los tamaños disponibles en Tamaños de máquina virtual de Azure. Para fines de prueba, puede elegir entre los tipos de máquina virtual de uso general (serie D). En el caso de las implementaciones piloto o de producción, la optimización para memoria (serie E y serie M) es más adecuada.
Creación de ggVM1 (principal)
$ az vm create \
--resource-group GoldenGateOnAzureLab \
--name ggVM1 \
--image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
--size Standard_DS1_v2 \
--generate-ssh-keys \
--admin-username azureuser \
--vnet-name ggVnet \
--subnet ggSubnet1 \
--public-ip-address "" \
--nsg "" \
--zone 1
Creación de ggVM2 (replicación)
$ az vm create \
--resource-group GoldenGateOnAzureLab \
--name ggVM2 \
--image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
--size Standard_DS1_v2 \
--generate-ssh-keys \
--admin-username azureuser \
--vnet-name ggVnet \
--subnet ggSubnet1 \
--public-ip-address "" \
--nsg "" \
--zone 2
Conexión a ggVM1 (principal)
Conéctese a ggVM1 mediante Bastion.
- Vaya a ggVM1 desde Azure Portal.
- Vaya a Información general en el panel izquierdo.
- Seleccione Conectar>Bastion en el menú de la parte superior
- Selección de la pestaña Bastion
- Seleccione Usar Bastion
Creación de la base de datos en ggVM1 (principal)
El software de Oracle ya está instalado en la imagen de Marketplace, por lo que el siguiente paso es crear la base de datos.
- Ejecute el software como el usuario
oracle
.
$ sudo su - oracle
- Cree la base de datos con el siguiente comando. Este comando puede tardar entre 30 y 40 minutos en completarse.
$ dbca -silent \
-createDatabase \
-templateName General_Purpose.dbc \
-gdbname cdb1 \
-sid cdb1 \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword OraPasswd1 \
-systemPassword OraPasswd1 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName pdb1 \
-pdbAdminPassword OraPasswd1 \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-storageType FS \
-datafileDestination "/u01/app/oracle/oradata/" \
-ignorePreReqs
La salida tiene que ser similar a la siguiente respuesta.
Copying database files
1% complete
2% complete
8% complete
13% complete
19% complete
27% complete
Creating and starting Oracle instance
29% complete
32% complete
33% complete
34% complete
38% complete
42% complete
43% complete
45% complete
Completing Database Creation
48% complete
51% complete
53% complete
62% complete
70% complete
72% complete
Creating Pluggable Databases
78% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for more details.
- Establezca las variables ORACLE_SID y LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Ejecute lo siguiente para agregar ORACLE_SID y LD_LIBRARY_PATH al archivo .bashrc, de modo que esta configuración se guarde para futuros inicios de sesión. La variable ORACLE_HOME ya debe establecerse en el archivo .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Inicio del agente de escucha de Oracle
$ lsnrctl start
Conexión a ggVM2 (replicación)
Conéctese a ggVM2 mediante Bastion.
- Vaya a ggVM2 desde Azure Portal.
- Vaya a Información general en el panel izquierdo.
- Seleccione Conectar>Bastion en el menú de la parte superior
- Selección de la pestaña Bastion
- Seleccione Usar Bastion
Apertura de puertos de firewall para ggVM1
Configure el firewall para permitir conexiones desde ggVM1. El siguiente comando se ejecuta en ggVM2.
$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit
Creación de la base de datos en ggVM2 (réplica)
- Cambiar al usuario
oracle
si es necesario
$ sudo su - oracle
- Creación de la base de datos
$ dbca -silent \
-createDatabase \
-templateName General_Purpose.dbc \
-gdbname cdb1 \
-sid cdb1 \
-responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword OraPasswd1 \
-systemPassword OraPasswd1 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName pdb1 \
-pdbAdminPassword OraPasswd1 \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-storageType FS \
-datafileDestination "/u01/app/oracle/oradata/" \
-ignorePreReqs
- Establezca las variables ORACLE_SID y ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- Ejecute lo siguiente para agregar ORACLE_SID y LD_LIBRARY_PATH al archivo .bashrc, de modo que esta configuración se guarde para futuros inicios de sesión. La variable ORACLE_HOME ya debe establecerse en el archivo .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
- Inicio del agente de escucha de Oracle
$ lsnrctl start
Configuración de Golden Gate en ggVM1
Siga los pasos de esta sección para instalar y configurar Golden Gate.
Habilitar el modo de archivar registro en ggVM1 (principal)
- Conéctese a
sqlplus
.
$ sqlplus / as sysdba
- Habilitar registro de archivo
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
- Habilite el registro forzado y asegúrese de que, al menos, haya un archivo de registro está presente.
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER SYSTEM set enable_goldengate_replication=true;
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN;
SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SESSION SET CONTAINER=PDB1;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> EXIT;
Descargar el software de Golden Gate
Descargue el archivo 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip de la Página de descarga Oracle Golden Gate, en el título de descarga Oracle GoldenGate 21.3.0.0.0 para Oracle en Linux x86-64.
Después de descargar los archivos .zip en el equipo cliente, puede usar el protocolo de copia segura (SCP) para copiar los archivos a la máquina virtual(ggVM1 and ggVM2). Asegúrese de que el comando
scp
apunta a la ruta de acceso correcta del archivo .zip.Copiar en ggVM1
Inicie sesión y asegúrese de que usa la suscripción correcta según sea necesario, tal como se describe en Inicio de sesión en Azure
Abra el túnel a la máquina virtual de destino mediante el siguiente comando de PowerShell
$ggVM1id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM1 --query 'id' --output tsv) az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM1id --resource-port 22 --port 57500
Para conectarse a la máquina virtual de destino a través del túnel, deje el primer símbolo del sistema en ejecución y abra un segundo símbolo del sistema. En esta segunda ventana del símbolo del sistema, puede cargar archivos desde la máquina local a la máquina virtual de destino mediante el siguiente comando. El archivo de claves
id_rsa
correcto para acceder a la máquina virtual debe residir en el directorio.ssh
o puede apuntar a un archivo de clave diferente mediante el parámetro-i
para el comandoscp
.scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Copiar en ggVM2
Abra el túnel a la máquina virtual de destino mediante el siguiente comando de PowerShell
$ggVM2id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM2 --query 'id' --output tsv) az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM2id --resource-port 22 --port 57501
Deje el primer símbolo del sistema en ejecución y abra un segundo símbolo del sistema para conectarse a la máquina virtual de destino a través del túnel. En esta segunda ventana del símbolo del sistema, puede cargar archivos desde la máquina local a la máquina virtual de destino mediante el siguiente comando. El archivo de claves
id_rsa
correcto para acceder a la máquina virtual debe residir en el directorio.ssh
o puede apuntar a un archivo de clave diferente mediante el parámetro-i
para el comandoscp
.scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
Instalar el software de Golden Gate
Conéctese a ggVM1 mediante Bastion.
- Vaya a ggVM1 desde Azure Portal.
- Vaya a Información general en el panel izquierdo
- Seleccione Conectar>Bastion en el menú de la parte superior
- Selección de la pestaña Bastion
- Seleccione Usar Bastion
Mueva el archivo .zip a la carpeta /opt y, a continuación, cambie el propietario
$ sudo su - $ mv /home/azureuser/*.zip /opt
Descomprimir los archivos (instalar la utilidad descomprimir si aún no está instalado)
$ yum install unzip $ cd /opt $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
Cambiar el permiso
$ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome $ exit
Iniciar el instalador de Golden Gate
$ sudo su - oracle $ export DISPLAY=10.0.0.4:0.0 $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1 $ ./runInstaller
El instalador se abre en ggXServer.
Seleccione 'Oracle GoldenGate para Oracle Database 21c'. Después, seleccione Siguiente para continuar.
Establezca la ubicación de software en /u01/app/oracle/product/19.0.0/oggcore_1, asegúrese de que el cuadro Administrador de inicio esté seleccionado y seleccione Siguiente para continuar.
En la pantalla Summary (Resumen), seleccione Install (Instalar) para continuar.
Espere hasta que la instalación se complete.
Seleccione Cerrar para continuar.
Conéctese a ggVM2 mediante Bastion.
- Vaya a ggVM2 desde Azure Portal.
- Vaya a Información general en el panel izquierdo
- Seleccione Conectar>Bastion en el menú de la parte superior
- Selección de la pestaña Bastion
- Seleccione Usar Bastion
Repita los pasos del 2 al 10 anterior en ggVM2
Configuración del servicio en ggVM1 (principal)
Cree o actualice el archivo tnsnames.ora.
$ sudo su - oracle $ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Cuando se abre el editor vi, tiene que presionar
i
para cambiar al modo de inserción y, a continuación, copiar y pegar el contenido del archivo y presionar la teclaEsc
,:wq!
para guardar el archivo.cdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=cdb1) ) ) pdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=pdb1) ) )
Cree las cuentas de usuario y de propietario de Golden Gate.
Nota
La cuenta del propietario debe tener el prefijo C##.
$ sqlplus / as sysdba
SQL> CREATE USER C##GGADMIN identified by ggadmin; SQL> EXEC dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL'); SQL> GRANT DBA to C##GGADMIN container=all; SQL> connect C##GGADMIN/ggadmin SQL> ALTER SESSION SET CONTAINER=PDB1; SQL> EXIT;
Cree las cuentas de usuario de prueba de Golden Gate
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ sqlplus system/OraPasswd1@pdb1
SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; SQL> GRANT connect, resource, dba TO test; SQL> ALTER USER test QUOTA 100M on USERS; SQL> connect test/test@pdb1 SQL> @demo_ora_create SQL> @demo_ora_insert SQL> EXIT;
Configure el archivo de parámetros de extracción.
Inicie la interfaz de la línea de comandos de Golden Gate (ggsci):
$ sudo su - oracle $ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ ./ggsci
GGSCI> DBLOGIN USERID test@pdb1, PASSWORD test Successfully logged into database pdb1 GGSCI> ADD SCHEMATRANDATA pdb1.test 2017-05-23 15:44:25 INFO OGG-01788 SCHEMATRANDATA has been added on schema test. 2017-05-23 15:44:25 INFO OGG-01976 SCHEMATRANDATA for scheduling columns has been added on schema test. GGSCI> EDIT PARAMS EXTORA
Presione la tecla
i
para cambiar al modo de inserción y copiar y pegar (haga clic con el botón derecho en la ventana SSH) después del archivo de parámetros EXTRACT. Presione la tecla Esc:wq!
para guardar el archivo.EXTRACT EXTORA USERID C##GGADMIN@cdb1, PASSWORD ggadmin RMTHOST 10.0.0.5, MGRPORT 7809 RMTTRAIL ./dirdat/rt DDL INCLUDE MAPPED DDLOPTIONS REPORT LOGALLSUPCOLS UPDATERECORDFORMAT COMPACT TABLE pdb1.test.TCUSTMER; TABLE pdb1.test.TCUSTORD;
Register extract--integrated extract.
GGSCI> dblogin userid C##GGADMIN@cdb1, password ggadmin Successfully logged into database CDB$ROOT. GGSCI> REGISTER EXTRACT EXTORA DATABASE CONTAINER(pdb1) 2023-03-03 19:37:01 INFO OGG-02003 Extract group EXTORA successfully registered with database at SCN 2142014. GGSCI> exit
Configure los punto de comprobación de extracción e inicie la extracción en tiempo real
$ ./ggsci
GGSCI> ADD EXTRACT EXTORA, INTEGRATED TRANLOG, BEGIN NOW EXTRACT (Integrated) added. GGSCI> ADD RMTTRAIL ./dirdat/rt, EXTRACT EXTORA, MEGABYTES 10 RMTTRAIL added. GGSCI> START EXTRACT EXTORA Sending START request to MANAGER ... EXTRACT EXTORA starting GGSCI > INFO ALL Program Status Group Lag at Chkpt Time Since Chkpt MANAGER RUNNING EXTRACT RUNNING EXTORA 00:00:11 00:00:04 GGSCI > EXIT
En este paso, busque el SCN inicial, que se usa más adelante, en otra sección.
$ sqlplus / as sysdba
SQL> alter session set container = pdb1; SQL> SELECT current_scn from v$database; CURRENT_SCN ----------- 2172191 SQL> EXIT;
$ ./ggsci GGSCI> EDIT PARAMS INITEXT
Cuando se abre el editor vi, tiene que presionar
i
para cambiar al modo de inserción y, a continuación, copiar y pegar el contenido del archivo y presionar la teclaEsc
,:wq!
para guardar el archivo.EXTRACT INITEXT USERID C##GGADMIN@cdb1, PASSWORD ggadmin RMTHOST 10.0.0.6, MGRPORT 7809 RMTTASK REPLICAT, GROUP INITREP TABLE pdb1.test.*, SQLPREDICATE 'AS OF SCN 2172191';
GGSCI> ADD EXTRACT INITEXT, SOURCEISTABLE Extract added. GGSCI> EXIT
Configuración del servicio en ggVM2 (réplica)
Cree o actualice el archivo tnsnames.ora.
$ cd $ORACLE_HOME/network/admin $ vi tnsnames.ora
Cuando se abre el editor vi, tiene que presionar
i
para cambiar al modo de inserción y, a continuación, copiar y pegar el contenido del archivo y presionar la teclaEsc
,:wq!
para guardar el archivo.cdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=cdb1) ) ) pdb1= (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=localhost) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=pdb1) ) )
Cree una cuenta de replicación.
$ sqlplus / as sysdba
SQL> ALTER SYSTEM set enable_goldengate_replication=true; SQL> ALTER SESSION SET CONTAINER = pdb1; SQL> CREATE USER REPUSER IDENTIFIED BY REP_PASS CONTAINER=CURRENT; SQL> GRANT DBA TO REPUSER; SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('REPUSER',CONTAINER=>'PDB1'); SQL> CONNECT REPUSER/REP_PASS@PDB1 SQL> EXIT;
Cree una cuenta de usuario de prueba de Golden Gate.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ sqlplus system/OraPasswd1@pdb1
SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; SQL> GRANT connect, resource, dba TO test; SQL> ALTER USER test QUOTA 100M on USERS; SQL> CONNECT test/test@pdb1 SQL> @demo_ora_create SQL> EXIT;
Archivo de parámetros REPLICAT para replicar los cambios.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1 $ ./ggsci
GGSCI> EDIT PARAMS REPORA
Cuando se abre el editor vi, tiene que presionar
i
para cambiar al modo de inserción y, a continuación, copiar y pegar el contenido del archivo y presionar la teclaEsc
,:wq!
para guardar el archivo.REPLICAT REPORA ASSUMETARGETDEFS DISCARDFILE ./dirrpt/repora.dsc, PURGE, MEGABYTES 100 DDL INCLUDE MAPPED DDLOPTIONS REPORT DBOPTIONS INTEGRATEDPARAMS(parallelism 6) USERID repuser@pdb1, PASSWORD REP_PASS MAP pdb1.test.*, TARGET pdb1.test.*;
Configure un punto de control de réplica.
GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt GGSCI> EDIT PARAMS INITREP
Cuando se abre el editor vi, tiene que presionar
i
para cambiar al modo de inserción y, a continuación, copiar y pegar el contenido del archivo y presionar la teclaEsc
,:wq!
para guardar el archivo.REPLICAT INITREP ASSUMETARGETDEFS DISCARDFILE ./dirrpt/tcustmer.dsc, APPEND USERID repuser@pdb1, PASSWORD REP_PASS MAP pdb1.test.*, TARGET pdb1.test.*;
GGSCI> ADD REPLICAT INITREP, SPECIALRUN GGSCI> EXIT
Configuración de la replicación (ggVM1 y ggVM2)
1. Configure la replicación en ggVM2 (réplica)
Inicie sesión en ggsci
.
$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR
Actualice el archivo con lo siguiente.
PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW
Reinicie el servicio de administrador.
GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT
2. Configure la replicación en ggVM1 (principal)
Inicie la carga inicial y busque errores.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT
3. Configure la replicación en ggVM2 (réplica)
Cambie el número de SCN con el número que obtuvo antes.
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191
La replicación iniciada, puede probarla insertando registros nuevos en tablas TEST.
Visualización del estado del trabajo y solución de problemas
Ver informes
Para ver los informes en ggVM1, ejecute los comandos siguientes.
GGSCI> VIEW REPORT EXTORA
Para ver los informes en ggVM2, ejecute los comandos siguientes.
GGSCI> VIEW REPORT REPORA
Visualización del estado e historial
Para ver el estado e historial en ggVM1, ejecute los comandos siguientes.
GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin GGSCI> INFO EXTRACT EXTORA, DETAIL
Para ver el estado e historial en ggVM2, ejecute los comandos siguientes.
GGSCI> DBLOGIN USERID REPUSER@PDB1 PASSWORD REP_PASS GGSCI> INFO REP REPORA, DETAIL
$ sqlplus test/test@pdb1
SQL> select * from TCUSTMER; SQL> select * from TCUSTORD;
Observar la replicación de datos
Conexión a la base de datos principal en ggVM1
$ sqlplus test/test@pdb1
Seleccionar registros existentes de la tabla
SQL> select * from TCUSTORD;
Creación de un registro de prueba
SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102); SQL> COMMIT; SQL> EXIT;
Observe la transacción recogida por Golden Gate (Nota Total de inserciones valor)
$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> STATS EXTORA
Sending STATS request to Extract group EXTORA ...
Start of statistics at 2023-03-24 19:41:54.
DDL replication statistics (for all trails):
*** Total statistics since extract started ***
Operations 0.00
Mapped operations 0.00
Unmapped operations 0.00
Other operations 0.00
Excluded operations 0.00
Output to ./dirdat/rt:
Extracting from PDB1.TEST.TCUSTORD to PDB1.TEST.TCUSTORD:
*** Total statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
*** Daily statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
*** Hourly statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
*** Latest statistics since 2023-03-24 19:41:34 ***
Total inserts 1.00
Total updates 0.00
Total deletes 0.00
Total upserts 0.00
Total discards 0.00
Total operations 1.00
End of statistics.
Conexión a la base de datos principal en ggVM2
$ sqlplus test/test@pdb1
Comprobación de que se ha replicado un nuevo registro
SQL> select * from TCUSTORD;
CUST ORDER_DAT PRODUCT_ ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID ---- --------- -------- ---------- ------------- -------------- -------------- OLLJ 11-APR-99 CYCLE 400 16000 1 102 WILL 30-SEP-94 CAR 144 17520 3 100 JANE 11-NOV-95 PLANE 256 133300 1 100
La instalación y configuración de Golden Gate en Oracle linux ya está completa.
Eliminación de la máquina virtual ggXServer
La máquina virtual ggXServer solo se usa durante la instalación. Puede eliminarlo de forma segura después de completar este documento de laboratorio, pero mantener intacta la configuración del laboratorio de GoldenGate en Azure.
$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes
$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP
Eliminación de Golden Gate en la configuración de Azure Lab
Cuando ya no los necesite, se puede usar el comando siguiente para quitar el grupo de recursos, la máquina virtual y todos los recursos relacionados con este laboratorio.
$ az group delete --name GoldenGateOnAzureLab
Pasos siguientes
Tutorial de creación de máquinas virtuales de alta disponibilidad