database - 甲骨文数据库同步

标签 database oracle synchronization

这里是上下文:

我在一台服务器上有数据库 A,用于内部生产。 另一台服务器上的数据库 B 将数据库 A 的一些信息提供给网站。 A在内部更新,B可以由网站客户端更新。

保持两个数据库之间完整性的最佳解决方案是什么?

谢谢

最佳答案

数据库无法做出合并数据的智能决策。分布式数据库将强制执行您需要的固有并发控制机制。您将需要查看有关实现分布式架构的 Oracle 文档,或重新考虑您当前(或提议的)架构。

如果您只想链接数据库,则需要为每个数据库执行此操作:

create database link "LINK_NAME"
connect to USERNAME
identified by "PASS"
using 'OTHER_DB_NAME'

您可以对远程数据库中的表执行 CRUD 操作,就像在本地一样,使用 @ 符号。例如:

INSERT INTO table_name@link_name VALUES('x');

会将一行和一列插入到远程数据库中。在这种情况下,您无需担心并发性。

您可以使用实体化 View ,但您将拥有过时的数据。创建物化 View 的基本语法:

CREATE MATERIALIZED VIEW HR.MY_MATERIALIZED_VIEW
NOCACHE
NOCOMPRESS
NOPARALLEL
BUILD IMMEDIATE
REFRESH COMPLETE
AS 
SELECT * FROM table_name;
/

关于database - 甲骨文数据库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1697864/

相关文章:

mysql - 无法计算 Hibernate 中的记录数 :java. lang.ClassCastException : java. util.ArrayList 无法转换为 java.lang.Integer

sql - SQL 查询 APEX 上的 FORM

linux - 在 2 个 cron 任务之间处理 "race-condition"。什么是最好的方法?

git - 将客户的更改从 ftp 同步到 git

java : Synchronising ArrayList for multiple operations

database - 在 Postgres 中定义主键的方式有什么不同吗?

.Net PostgreSQL 连接字符串

sql - 在 Oracle SQL 中查找列的最大值

java - Oracle中基于rowid的更新

.net - azure 中的服务代理有什么替代方案来获取插入或更新数据库的通知?