Cómo lograr la sincronización de datos entre bases de datos Oracle
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"