Use bomba de datos + ogg para sincronizar datos de Oracle

Antecedentes de esta migración:

La sala de computación debe reubicarse y se ha creado una nueva base de datos de Oracle. Se planea migrar sin tiempo de inactividad y migrar los datos de la base de datos anterior en el origen a la nueva base de datos en el destino.

Originalmente, quería usar RMAN para migrar, pero debido a que la base de datos anterior es un sistema AIX y la nueva base de datos es un sistema Linux, habrá problemas con la migración de RMAN, por lo que considero usar data pump + ogg para lograr una migración continua.

Aquí se planea exportar por usuario, configurar un solo proceso ogg para usuarios grandes y hacer un lote de procesos ogg para múltiples usuarios pequeños. Este es un ejemplo de sincronización de una de las AMI de usuario.

/*

A veces puede ser necesario configurar y sincronizar algunas tablas de una biblioteca con otras bibliotecas, y a menudo se usa ogg.

*/

Una configuración de base de datos

1.1 Archivo abierto (lado fuente)

El archivado en el origen debe estar habilitado. Si el destino no está habilitado, no afectará la sincronización de ogg. Sin embargo, si el archivo de datos está dañado y la base de datos no se puede restaurar a un momento determinado, se recomienda habilitar el registro de archivo.

#Compruebe si el registro de archivo está habilitado

lista de registro de archivos;

Si el archivado automático está Habilitado, significa que está habilitado. Si está deshabilitado, debe habilitarse:

apagado inmediato;

montaje de inicio;

alterar el registro de archivos de la base de datos;

lista de registro de archivos;

modificar base de datos abierta;

1.2 Active el registro adicional en el nivel de la base de datos (lado del origen)

Verifique el estado de apertura del registro adicional de la base de datos a través de la siguiente declaración sql:

SQL> seleccione SUPPLEMENTAL_LOG_DATA_MIN,supplemental_log_data_pk,supplemental_log_data_ui,

force_logging de v$base de datos;

El valor de retorno sí significa abierto, tanto pk como ui deben abrirse. Tenga en cuenta que no es necesario activar el registro forzado, no importa si ya está activado.

Si no está habilitado, ejecute el siguiente comando para habilitarlo

alterar la base de datos agregar datos de registro complementarios;

alterar la base de datos agregar columnas de datos de registro suplementarios (clave principal, única, clave externa);

alterar el archivo de registro del cambio del sistema;

# comprobar de nuevo

seleccione SUPPLEMENTAL_LOG_DATA_MIN,supplemental_log_data_pk,supplemental_log_data_ui,

force_logging de v$base de datos;

Aviso:

Si la base de datos no se puede abrir en el modo de registro forzado, la tabla de no registro no se puede sincronizar. Si se usa nologging cuando se crea la tabla, se requiere el registro de alter table tablename;

1.3 Crear usuario Goldengate y espacio de tabla (origen y destino)

#给ogg创建单独的表空间

create tablespace OGGTBS datafile '/u01/app/oracle/oradata/orcl/oggtb1.dbf'  size 3g;

#给ogg创建单独的管理用户

CREATE USER GOLDENGATE IDENTIFIED BY "123456" DEFAULT TABLESPACE OGGTBS TEMPORARY TABLESPACE TEMP;

GRANT CONNECT,resource TO goldengate;

GRANT ALTER ANY  TABLE TO goldengate;

GRANT ALTER SESSION TO goldengate;

GRANT CREATE SESSION TO goldengate;

GRANT FLASHBACK ANY TABLE TO goldengate;

GRANT SELECT ANY DICTIONARY TO goldengate;

GRANT SELECT ANY TABLE TO goldengate;

GRANT drop ANY TABLE TO goldengate;

Grant insert any table to goldengate;

Grant update any table to goldengate;

Grant delete any table to goldengate;

Grant create any table to goldengate;

GRANT EXECUTE ON utl_file TO goldengate;

GRANT EXECUTE ON dbms_flashback TO goldengate;

GRANT SELECT ANY TRANSACTION TO goldengate;

1.4 Habilitar la replicación de ogg (origen y destino)

alterar el conjunto del sistema enable_goldengate_replication=true;

1.5 Determinar el conjunto de caracteres de la base de datos (fuente)

$ sqlplus / como sysdba

SQL> mostrar parámetro nls_language

SQL> mostrar el parámetro nls_territory

SQL> seleccione nombre, valor $ de sys.props $ donde nombre = 'NLS_CHARACTERSET';

El conjunto de caracteres de la base de datos es NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET

Por ejemplo:

NLS_LANGUAGE 为 AMERICANO

NLS_TERRITORY es AMÉRICA

NLS_CHARACTERSET es ZHS16GBK

Entonces el conjunto de caracteres de la base de datos es AMERICAN_AMERICA.ZHS16GBK

2. Instalar el software Goldengate (origen y destino)

Instale el software ogg tanto en el origen como en el destino.

Dirección de descarga de software:  https://edelivery.oracle.com/osdc/faces/SoftwareDelivery

 Haga clic en el nombre del archivo para descargar.

2.1 Crear un directorio y configurar variables de entorno

mkdir -p /puerta dorada

chown -R oráculo:oinstall /goldengate

su - oráculo

vi .bash_perfil

Agregado:

exportar OGG_DIR=/goldengate

exportar RUTA=$OGG_DIR:$ORACLE_HOME/bin:$ODI_HOME/oracledi/client:$ODI_JAVA_HOME/bin:$PATH

exportar LD_LIBRARY_PATH=$OGG_DIR:$ORACLE_HOME/lib:/usr/lib

# hacer que los cambios surtan efecto

fuente .bash_profile

2.2 Instalar el software Goldengate

Cargue el paquete de medios de instalación en este directorio: /goldengate

disco compacto / goldengate

tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

./ggsci

#Crear directorio de trabajo OGG

GGSCI (orasvr) 3> crear subdirectorios

cd /goldengate/dirdat

base de datos mkdir

2.3 Agregar tabla de puntos de control

Agregar archivo de parámetros GLOBALS, agregar lista de verificación

GGSCI (fdpdb1) 1>editar parámetros ./GLOBALS

checkpointtable goldengate.checkpoint

GGSCI (fdpdb1) 1>id de usuario de dblogin goldengate, contraseña 123456

GGSCI (fdpdb1) 1>añadir tabla de puntos de control goldengate.punto de control

Configuración de tres Goldengate

3.1 Configurar el proceso MGR (origen y destino)

3.1.1 Archivo de parámetros de configuración

GGSCI (fdpdb1) 2> editar administrador de parámetros

Agregado:

puerto 7839

LISTA DE PORTADOS DINÁMICOS 7850-7959

ARRANQUE AUTOMÁTICO *

EXTRACCIÓN DE REINICIO AUTOMÁTICO *, REINTENTOS 5, MINUTOS DE ESPERA 7

PURGEOLDEXTRACTS ./dirdat/database/*,usecheckpoints,minkeephours 2

ID DE USUARIO goldengate, CONTRASEÑA 123456

--PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 4

--PURGEMARKERHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10

LAGREPORTHOURS 1

LAGINFOMINUTOS 30

LAGCRITICALMINUTES 45

3.1.2 administrador de inicio

gerente de inicio

info all #Asegúrate de que el proceso se está ejecutando

3.2 Configurar ogg en la fuente

3.2.1 Agregar información de registro adicional para la tabla replicada

Para qué tablas copiar, agregue información de registro adicional para qué tablas

$ cd / puerta de oro

$ ./ggsci

GGSCI> dblogin ID de usuario goldengate, contraseña 123456

Si lo exporta el usuario, agregue el usuario trandata.*

Si se exporta por tabla, agregue el nombre de la tabla trandata

-- Verifique si se ha agregado una configuración de registro adicional para cada tabla

ggsci> nombre de la tabla info trandata

3.2.2 Proceso de extracción de configuración

Aquí, el proceso de extracción comienza con ext, seguido de AM, que es una abreviatura de letra personalizada.

editar parámetro EXT_AM

Agregado:

EXTRAER EXT_AM

SETENV (NLS_LANG = " AMERICAN_AMERICA.ZHS16GBK ")

SETENV (ORACLE_SID = " orcl " )

ID DE USUARIO goldengate, CONTRASEÑA " 123456 "

GETTRUNCATE

REPORTE CADA 1 MINUTOS, TASA

DESCARTAR ARCHIVO ./dirrpt/ EXT_AM.dsc ,AÑADIR,MEGABYTES 1024

THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 60000 IOLATENCY 60000

TRANLOGOPTIONS _DISABLESTREAMLINEDDBLOGREADER

DBOPCIONES PERMITIDAS COLUMNA NO UTILIZADA

ADVERTENCIA TRANS LARGA 2 h, INTERVALO DE COMPROBACIÓN 3 min

EXTRAIL. /dirdat/base de datos/am

FETCHOPTIONS NOUSEINSTANTÁNEA

LECTOR DE DBLOG DE OPCIONES DE TRANSLOGO

OBTENER ACTUALIZACIÓN ANTES

NOCOMPRESSDELETES

CACHEMGR TAMAÑO DE CACHE 1G

TABLA AMI.*; 

3.2.3 Crear un proceso de extracción

agregar extraer EXT_AM , tranlog, comenzar ahora, subprocesos 1

agregue exttrail ./dirdat/database/am , extraiga EXT_AM , megabytes 1024

3.2.4 Configurar el proceso de entrega

Aquí, el proceso de extracción comienza con dpe, seguido de am, que es una abreviatura de letra personalizada.

GGSCI> editar parámetros dpe_am

EXTRACTO dpe_am

PASAR A TRAVÉS DE

RMTHOST 172.22.204.250 , MGRPORT 7839, comprimir

RMTTRAIL. /dirdat/base de datos/am

TABLA AMI.*;

3.2.5 Crear proceso de entrega

agregar extraer dpe_am , exttrailsource ./dirdat/database/am

AGREGAR RMTTRAIL   ./dirdat/database/am , EXTRAER dpe_am , MEGABYTES 1024

3.2.6 Iniciar el proceso de extracción y transferencia

GGSCI> empezar a extraer EXT_AM

GGSCI> empezar a extraer dpe_am

info all #Asegúrese de que todos los procesos estén en el estado de inicio EN EJECUCIÓN

Cree algunos datos de prueba para ver si el proceso de publicación captura los cambios:

estadísticas dpe_am

Ejemplo:

 #Compruebe en el lado de destino si se ha entregado y vea si puede ver el archivo

cd /goldengate/dirdat/base de datos

ls-ltr

Si puede ver el archivo de cola personalizado arriba, es normal:

 

3.3 Inicializar datos

Las operaciones DML incluyen las operaciones INSERTAR, ACTUALIZAR, ELIMINAR y SELECCIONAR. En estas operaciones, las operaciones ACTUALIZAR y ELIMINAR solo registran la columna de datos modificada y el ID de fila (ROWID). Después de que GoldenGate extrae los datos, los convierte a su propio formato y los envía al extremo de destino. Antes de que comience la sincronización, el destino no inicializa los datos (el destino son datos vacíos), luego las operaciones ACTUALIZAR y ELIMINAR DML generadas por la transacción se envían al destino, y el proceso GoldenGate Replicat en el destino informará un error porque no se pueden encontrar los datos, lo que hará que el proceso de replicación se bloquee y se detenga (ABENDED). Por lo tanto, debemos inicializar los datos antes de la sincronización y luego sincronizar después de la inicialización, lo que reduce en gran medida la tasa de error. La forma de sincronizar los datos se puede sincronizar a través de DBLINK, EXP/IMP, SQLLDR o migración de espacio de tablas.

3.3.1 configuración de destino de datos de origen de copia de seguridad de expdp

3.3.1.1 Consultar el número SCN en la fuente

SELECCIONE a."CURRENT_SCN" DE v$base de datos a ;   #Registre el scn detectado , aquí está 1343313

3.3.1.2 Agregar número SCN al exportar

vi expdp_ami_alldata_20230621.par

Agregado:

idusuario='/ como sysdba'

directorio=DMP

dumpfile=expdp_ami_alldata_20230621_%U.dmp

archivo de registro=expdp_ami_alldata_20230621.log

esquemas=ami

compresión=TODO

CLUSTER=N

paralelo=8

excluir=estadísticas

FLASHBACK_SCN= 1343313   #El scn que se encuentra arriba significa que la exportación comienza desde esta posición

# iniciar exportación

nohup expdp parfile=expdp_ami_alldata_20230621.par >nohup_expdp_ami_alldata_20230621.log &

cola -100f nohup_expdp_ami_alldata_20230621.log

Compruebe los registros en busca de errores.

3.3.2 Copie el archivo de copia de seguridad en el destino

3.3.2 Importar datos en el lado de destino

vi impdp_ami_alldata_20230621.par

Agregado:

idusuario='/ como sysdba'

directorio=dmp

dumpfile=expdp_ami_alldata_20230621_%u.dmp

archivo de registro=impdp_ami_alldata_20230621.log

table_exists_action=reemplazar

grupo = n

paralelo=8

#importar

nohup impdp parfile=impdp_ami_alldata_20230621.par >nohup_impdp_ami_alldata_20230621.log &

cola -100f nohup_impdp_ami_alldata_20230621.log

Compruebe los registros en busca de errores.

3.4 Configurar el proceso de replicación en el lado de destino

3.4.1 Configurar el proceso de replicación

editar parámetro rep_am

Agrega el siguiente contenido:

REPLICADO rep_am

SETENV (NLS_LANG = "AMERICAN_AMERICA.ZHS16GBK")

SETENV (ORACLE_SID = " orcl ")

ID DE USUARIO goldengate, CONTRASEÑA 123456

SQLEXEC "ALTERAR LAS RESTRICCIONES DEL CONJUNTO DE SESIÓN=DEFERRED"

REPORTAR A LAS 01:59

REPORTE CADA 30 MINUTOS, TARIFA

REPERROR POR DEFECTO, ABEND

MANILLARCOLISIONES

--DBOPTIONS_NOAUTOMATICSEQUENCEFLUSH

lotesql LOTESPERQUEUE 100, OPSPERBATCH 8000

--TRANSPAS DE GRUPO 2000

--MAXTRANSOPS 500

asumirtargetdefs

DISCARDFILE ./dirrpt/ rep_am.dsc, ANEXAR, MEGABYTES 1024

DESCARTAR VOLVER A LAS 02:30

GETTRUNCATE

PERMITIR ACTUALIZACIONES

---SOURCEDEFS ./dirdef/cj.def

asumirtargetdefs

mapa ami.* ,objetivo ami.*;

/*

Si desea sincronizar varias tablas, escriba así:

mapear usuario.tabla 1, usuario objetivo.tabla 1;

mapear usuario.tabla 2, usuario objetivo.tabla 2;

*/

3.4.2 Agregar proceso de replicación

AGREGAR REPLICAT rep_am , EXTTRAIL . /dirdat/base de datos/am , nodbcheckpoint

3.4.3 Iniciar el proceso de replicación de destino

iniciar replicat rep_am, el scn verificado arriba aftercsn

Ejemplo:

iniciar replicación rep_am, aftercsn 1343313

info all   #Compruebe para asegurarse de que el comando se está ejecutando

3.5 Sincronización de datos de prueba

levemente

Problemas encontrados durante 3.6

instantánea demasiado antigua

Aumentar undo_retention:

Si aún no funciona, busque la tabla grande y configure la sincronización ogg de la tabla grande por separado.

Supongo que te gusta

Origin blog.csdn.net/YABIGNSHI/article/details/131331135
Recomendado
Clasificación