Sincronización en tiempo real autónoma DMHS (DM7)

Sincronización en tiempo real autónoma DMHS (DM7)

Prefacio

Plataformas de sistemas operativos compatibles con DMHS: serie Windows (incluidas XP, Win2003, Win7 / 8/10, WinServer2008, etc.), Linux (Redhat, Ubuntu, CentOS, Kylin, Rocky, etc.), Aix, Solaris, etc. Requisitos de memoria: la cantidad total de memoria requerida por DMHS depende de los subprocesos de análisis ejecutados y del número de subprocesos de ejecución simultánea, se requiere al menos 1G de memoria. Requisitos de disco: Los archivos de instalación de DMHS ocupan 277M, incluido el espacio ocupado por las herramientas de administración y las interfaces de administración. Además, se necesita algo de espacio adicional para almacenar los archivos de registro de la operación de DMHS. Permisos del sistema operativo: durante la instalación de Windows, el usuario que instala y ejecuta DMHS debe ser un administrador; cuando se instala bajo la plataforma Linux, el usuario de instalación debe tener permiso para leer y escribir el directorio de instalación de DMHS y agregar la biblioteca dinámica de la interfaz de base de datos involucrada a la biblioteca compartida del sistema Variables de entorno. TCP / IP: configure el sistema para admitir servicios TCP / IP (todas las máquinas instaladas por DMHS deben configurarse con nombres de host o direcciones IP). DMHS necesita usar los siguientes puertos TCP / IP: puerto predeterminado 5345 para la comunicación entre procesos de administración; puerto predeterminado 5346 para la comunicación entre los subsistemas de envío y ejecución; los usuarios pueden definir estos puertos por sí mismos.
El archivo de configuración dmhs.hs se puede mover al directorio bin2 para su configuración Dado que el directorio bin2 es una versión de depuración, los errores son fáciles de solucionar y el servicio también se puede iniciar en el directorio bin2.

Uno, archivo abierto y registro lógico

1.1 Establecer la marca de archivo y la marca de registro lógico. Abra el archivo de configuración del servidor DM7 "dm.ini" y establezca los siguientes valores:

ARCH_INI = 1
RLOG_APPEND_LOGIC = 1
Nota:

"FAST_COMMIT" en el parámetro de configuración dm.ini debe ser 0, de lo contrario causará registros lógicos incompletos y afectará la sincronización.

1.2 Agregar archivo de configuración de archivo. Cree el archivo "dmarch.ini" en el mismo directorio de "dm.ini", el contenido de muestra es el siguiente:

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL 
ARCH_DEST = /opt/dmdbms/arch #归档目录
ARCH_FILE_SIZE = 128 #归档文件大小,单位 MB
ARCH_SPACE_LIMIT = 0 #空间大小限制,0 表示不限制

1.3 Reinicie la base de datos DM7 para que los parámetros de configuración surtan efecto.

1.4 Verificar la corrección de la configuración

1.4.1 Para verificar la corrección de la configuración del archivo, ejecute el siguiente comando SQL:

SELECT ARCH_DEST, ARCH_FILE_SIZE FROM SYS.V$DM_ARCH_INI WHERE ARCH_TYPE='LOCAL' AND ARCH_IS_VALID='Y';

El resultado de la consulta es el siguiente:

行号 ARCH_DEST ARCH_FILE_SIZE
------- ---------------------------- --------------
1 /opt/dmdbms/arch 128
已用时间: 128.384(毫秒). 执行号:3

1.4.2 Verifique la corrección de la configuración del registro lógico, mediante la siguiente consulta:

SELECT PARA_VALUE FROM SYS.V$DM_INI WHERE PARA_NAME = 'RLOG_APPEND_LOGIC';

El resultado de la consulta es el siguiente:

行号 PARA_VALUE
---------- ----------
1 1
已用时间: 20.685(毫秒). 执行号:4.

1.4.3 Consultar el registro online, mediante la siguiente consulta:

SELECT PATH FROM SYS.V$RLOGFILE;

El resultado de la consulta es el siguiente:

行号 PATH
---------- ----------------------------------------
1 /opt/dmdbms/arch/src_db01.log
2 /opt/dmdbms/arch/src_db02.log
已用时间: 1.096(毫秒). 执行号:5.

1.4.4 Compruebe si el parámetro FAST_COMMIT es 0

 select para_value from v$dm_ini where para_name = 'FAST_COMMIT';

El resultado de la consulta es el siguiente:

行号 PARA_VALUE
---------- ----------
1 0
已用时间: 8.691(毫秒). 执行号:585.

Dos, configure DDL

Si se requiere sincronización DDL, entonces es necesario crear tablas auxiliares y activadores DDL. Para el script creado, vea "ddl_sql_dm7.sql" en el subdirectorio de scripts del directorio de instalación de DMHS. Tenga en cuenta que se requiere el usuario de SYSDBA para la creación.
Verifique si el disparador creado y la tabla auxiliar son válidos, verifique la declaración de la tabla auxiliar:

select owner, table_name from dba_tables where owner = 'SYSDBA' and table_name like 'DMHS%' and status = 
'VALID';

El resultado de la consulta es el siguiente:

行号 OWNER TABLE_NAME
---------- ------ ---------------
1 SYSDBA DMHS_DDL_COL
2 SYSDBA DMHS_DDL_SQL
3 SYSDBA DMHS_DDL_CONS
4 SYSDBA DMHS_DDL_IDX
5 SYSDBA DMHS_DDL_RENAME
6 SYSDBA DMHS_DDL_SEQ
7 SYSDBA DMHS_DDL_PART
7 rows got
已用时间: 197.302(毫秒). 执行号:7.

Verifique la declaración de activación:

select owner, trigger_name from dba_triggers where owner = 'SYSDBA' and trigger_name like 'DMHS%' and 
status = 'Y';

El resultado de la consulta es el siguiente:

行号 OWNER TRIGGER_NAME
---------- ------ -----------------------
1 SYSDBA DMHS_DDL_TRIGGER_AFTER
2 SYSDBA DMHS_DDL_TRIGGER_BEFORE
3 SYSDBA DMHS_DDL_TRIGGER_GRANT
4 SYSDBA DMHS_DDL_TRIGGER_REVOKE
已用时间: 12.147(毫秒). 执行号:16.

Tres, configure dmhs.hs

dmhs.hs es el nombre de archivo de configuración predeterminado de DMHS. Si se requiere sincronización DDL, el ejemplo de configuración básica de la fuente es el siguiente:

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
 <base>
 <lang>ch</lang>
 <mgr_port>5345</mgr_port> 
 <ckpt_interval>60</ckpt_interval>
 <siteid>1</siteid>
 </base>
 <cpt>
 <db_type>dm7</db_type>
 <db_server>127.0.0.1</db_server>
 <db_user>SYSDBA</db_user>
 <db_pwd>SYSDBA</db_pwd>
 <db_port>5236</db_port>
 <db_ssl_path></db_ssl_path>
 <db_ssl_pwd></db_ssl_pwd>
 <parse_thr>1</parse_thr>
 <ddl_mask>op:obj</ddl_mask> <!--DDL 配置项-->
 <arch><!--归档清理配置项-->
 <clear_interval>600</clear_interval>
 <clear_flag>2</clear_flag>
 <bak_dir>/dmarch/arch_bak</bak_dir>
 </arch>
 <send><!-- 发送模块配置 -->
 <ip>192.168.10.109</ip>
 <mgr_port>5345</mgr_port>
 <data_port>5346</data_port>
 <trigger>1</trigger><!-- 是否忽略触发器,默认为 0,限定值 0,1 -->
 <constraint>1</constraint><!-- 是否忽略约束,默认为 0,限定值 0,1 -->
 <identity>1</identity>
 <net_turns>0</net_turns>
 <filter><!--过滤配置项-->
 <enable><!-- 白名单,所有允许同步的表 -->
 <item>SYSDBA.*</item>
 </enable>
 </filter>
 <map><!--映射配置项-->
 <item>SYSDBA.*==DMHS.*</item>
 </map>
 </send>
 </cpt>
</dmhs>

Destino (ejemplo):

<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>dm7</db_type>
<db_server>10.0.0.210</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>SYSDBA</db_pwd>
<db_port>5236</db_port>
<db_name></db_name>
<exec_thr>4</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx> 5000 </exec_trx>
<exec_rows>1000</exec_rows>
</exec>
</dmhs>

La configuración básica anterior ahora se describe de la siguiente manera:

  1. El siteid es globalmente único, es decir, el siteid de todos los nodos implicados en el sistema de sincronización DMHS debe ser globalmente único y no se permiten valores duplicados.
  2. Elemento de configuración DDL, si no se requiere sincronización DDL, configúrelo como vacío, es decir, <ddl_mask> </ddl_mask> Por lo tanto, no es necesario crear tablas auxiliares y triggers DDL DMHS.
  3. Elemento de configuración de limpieza de archivo, clear_flag es 1 significa clear, es decir, DMHS elimina los archivos archivados que se han sincronizado; 2 significa que los archivos sincronizados se mueven al directorio bak_dir; 0 significa que no se realiza ninguna operación.
  4. Filtrar elementos de configuración En este ejemplo, se configura una lista blanca, es decir, se habilita, o se puede configurar una lista negra. Las reglas de filtrado son: primero juzgue la lista blanca y luego juzgue la lista negra. Si hay superposición, también se filtrará.
  5. El elemento de configuración de mapeo indica que hay sincronización de tablas entre diferentes modos. Por ejemplo, en este ejemplo, la tabla en el modo SYSDBA en el origen se asigna a la tabla con el mismo nombre en el modo DMHS en el destino.

Cuatro, servicio de código abierto

Una vez completada la configuración, puede iniciar el servicio DMHS: dmhs_server.
Linux:

./dmhs_serverd start

Windows:

net start dmhs_server

Cinco, carga inicial

La carga inicial es cargar los datos iniciales en la base de datos de origen a la base de datos de destino para que los datos de la tabla de sincronización del origen y el destino sean consistentes en el momento de la sincronización de DMHS. Tanto el servicio DMHS de origen como el servicio DMHS de destino deben habilitarse antes de la carga. El DMHS de destino de este ejemplo usa la base de datos DM7 en el mismo entorno que el origen.
Los pasos son los siguientes:
1) Abra el servicio DMHS de destino:

 ./dmhs_serverd start

2) Comience el destino DMHS:

./dmhs_serverd start
./dmhs_console
DMHS >connect
DMHS >start

La interfaz de inicio es la siguiente:
Inserte la descripción de la imagen aquí
3) Inicie el servicio DMHS de origen:

./dmhs_serverd start
  1. Carga inicial:
./dmhs_serverd start
./dmhs_console
DMHS >connect
DMHS >copy 0 "sch.name='SYSDBA'" DICT|LSN|CREATE|INSERT|INDEX

Los ejemplos son los siguientes:
Inserte la descripción de la imagen aquí

Seis, activa la sincronización

Una vez completada la carga inicial, puede iniciar la sincronización:
DMHS de origen:

./dmhs_console
DMHS >start

Los ejemplos son los siguientes:
Inserte la descripción de la imagen aquí

Siete, algunos ejemplos de carga inicial

示例:LOAD 0 “SCH.NAME=’SYSDBA’AND TAB.NAME=’TEST’” INSERT
说明:装载SYSDBA模式下的TEST表,装载时对该表上S锁,当该表装载完成以后才释放S锁
示例:LOAD 0 “SCH.NAME=’SYSDBA’” INSERT|NOLOCK
说明:装载SYSDBA模式下的所有表,装载时对该表短暂的上S锁,执行语句返回时便释放S锁
示例:LOAD 0 “SCH.NAME=’SYSDBA’AND TAB.NAME LIKE ‘T%’” INSERT
说明:装载SYSDBA模式下所有以T打头的表
示例:LOAD 0 “SCH.NAME=’SYSDBA’AND TAB.NAME=’TEST’”INSERT|“ID>100” 说明:装载TEST表时,只装载该表中ID列大于100的记录
示例:LOAD 0 "SCH.NAME='TEST' AND TAB.NAME='SF'" UPDATE|"OBJ,NAME"|STOP|FILE
说明:当日志分析依然在运行的情况下,暂停日志分析并更新表TEST.SF的OBJ和NAME列的值
示例:DMHS > COPY 0 “SCH.NAME=’TEST’ AND TAB.NAME=’TX’ ” ABSOLUTE|INSERT
说明:使用该掩码装载 TEST.TX 表
示例:DMHS > COPY 0 “SCH.NAME=’TEST’ AND TAB.NAME=’TX’ ” INSERT|AFTER|1000
说明:使用该掩码装载 TEST.TX 表查询结果集 1000 行以后的数据。
示例:DMHS > COPY 0 “SCH.NAME=’TEST’” ALTER|SEQUENCE
说明:把 TEST 用户下的所有序列当前值应用到目标端
示例:DMHS > COPY 0 BACKUP
说明:立即备份虚拟 ID 为 0 的 CPT 所指向的数据库并在目标端还原。
示例:DMHS > COPY 0 BACKUP|"/back"
说明:立即备份虚拟 ID 为 0 的 CPT 所指向的数据库并在目标端还原,源端备份文件存放在”/back”目录。
示例:DMHS > COPY 0 BACKUP|FILE|"/back/test_20160506.bak"
说明:指定源端的备份文件 test_20160506.bak 发送到目标端还原。
示例:DMHS > COPY 0 “SCH.NAME=’USO’” INSERT|THREAD|4|CONTINUE
说明:装载 USO 用户下所有的表,如果某表上次成功装载过这次则跳过该表。
示例:DMHS > COPY 0 “SCH.NAME=’USO’” CREATE|INSERT|THREAD|4
说明: 使用 4 个线程并发的装载 USO 模式下的所有表。

Supongo que te gusta

Origin blog.csdn.net/weixin_43459159/article/details/108778396
Recomendado
Clasificación