将一个表镜像/复制/更新到另一个表中的不同数据库 - ORACLE

问题描述

我在两台服务器上部署了两个相同的数据库,我想在表上从一个数据库更新/镜像到另一个数据库。

例如。一张表 dbName1.Cars 要在 dbName2.Cars 上更新。有没有办法在 dbName1 上添加一些作业或调度程序来填充 dbName2?

我使用的是 ORACLE 数据库。

解决方法

由于您有两个数据库,因此您需要一个数据库链接,因此 - 简化 - 您需要

insert into cars@db_link select * from cars;

如果您将这样的代码放入存储过程,您可以使用DBMS_SCHEDULER(或DBMS_JOB)包安排其执行并使其在您想要的任何时候运行(例如午夜后 2:30,早上 10:30...,每天/每周一次/仅在周末...)


或者,创建一个物化视图。再次简化:

create materialized view mv_cars as select * from cars@db_link;

它允许您安排从按需(您明确说“立即刷新!”)到 Oracle 支持的其他选项的刷新间隔。


另外,请阅读 Golden GateAdvanced Replication。不过,这些选项并不是那么简单。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...