Red de conocimiento informático - Material del sitio web - Cómo lograr la sincronización de datos entre bases de datos Oracle

Cómo lograr la sincronización de datos entre bases de datos Oracle

Para facilitar la operación de sincronización de la tabla de datos especificada, se puede completar combinando dblink y fusionando.

Entorno operativo: la IP de este servidor de base de datos es 192.168.196.76. Hay dos bibliotecas, la central y la sucursal. Generalmente, los datos de la tabla central deben sincronizarse con la sucursal. La biblioteca de origen y la rama son la biblioteca de destino. Los pasos específicos son los siguientes:

1. Cree un enlace db en la biblioteca de origen que apunte a la biblioteca de destino.

Cree una rama de enlace de base de datos. -- ingrese el nombre del dblink que se creará y personalícelo

conéctese al dbuser identificado por "contraseña" --Establezca el nombre de usuario y la contraseña utilizados para conectarse a la base de datos remota

usando '192.168.196.76/branch' --Use el nombre tns para especificar cómo conectarse a la base de datos de destino

Al crear un enlace db, tenga en cuenta que a veces puede informar que el nombre de usuario y la contraseña son incorrectos , cuando en realidad hemos ingresado la información correcta de la cuenta. En este momento, debemos prestar atención al caso de la contraseña ingresada de acuerdo con la configuración del servidor y agregar comillas dobles numéricas antes de la contraseña de la cuenta (debido a las diferentes versiones del servidor).

2. Verifique dblink después del éxito

select * from tb_bd_action@branch; --Consulte la biblioteca brach creada

En circunstancias normales, si dblink se creó correctamente. Puede acceder a tablas de bases de datos remotas de esta manera.

3. Sincronizar datos de la tabla mediante declaraciones de fusión

Este ejemplo necesita sincronizar la tabla tb_sys_sqlscripe en la biblioteca central con la rama. La sintaxis simple es la siguiente:

fusionar en tb_sys_sqlscripe@branch b usando tb_sys_sqlscripe@branch; --consultar la biblioteca brach creada en (b.pk=c. pk.) --Fusionar datos de la tabla.

pk)--Fusiona la tabla desde el centro a la rama, sincroniza el pk según las dos tablas

Si coincide, actualiza el conjunto b.sqlscripe=c.sqlscripe, b.author=c.author --if Si los valores pk son los mismos, actualice los valores en la tabla especificada a la tabla de destino

Si no coinciden, entonces -- si los valores pk son no es lo mismo, inserte todos los datos de la tabla de origen en la tabla de destino

p>

inserte valores (c. pk, c.fk, c.fk, c.fk, c.fk, cfk, cfk, cfk, cfk, cfk, c fk, cfk, cfk, cfk, cfk, cfk, cfk, c. fk)pk, c.fk, c.createtime, c.lastmodifytime, c.author, c. module, c.deleteflag, c.scripttype);

commit;--Recuerde, debe confirmar después fusionándose, de lo contrario los cambios no se confirmarán

4. Convierta la declaración en un procedimiento almacenado o un script, ejecutado manualmente de forma regular o bajo demanda. Una breve introducción al método de creación de un script:

a. Cree una carpeta de combinación

b. La primera declaración de combinación debe escribirse completamente y guardarse en el archivo merge.sql.

c. .bat, edite y escriba el siguiente contenido

sqlplus usuario/contraseña@serverip/database @"cd\merge.sql"