【问题标题】:Copying data of one database to another in Oracle在Oracle中将一个数据库的数据复制到另一个数据库
【发布时间】:2020-11-15 12:34:25
【问题描述】:

我正在使用 Oracle 数据库,但可以使用其他数据库,因此标记所有数据库。

我是designing 一个系统,我必须将现有database table 的所有data 注入new database,并且现有数据库中发生的任何更改都应每天反映在新数据库中。我的方法是。

我会将现有database 的所有data 复制到新的database。 然后我将创建一个trigger,它将记录table中的所有更改并存储在另一个table(all the DML operations)中。

一天一次,我的 API 会读取触发器生成的数据并将其复制到新系统中。我不需要实时数据,所以我每天只安排一次作业,将data 复制到新的database

这是正确的方法吗?有什么建议吗?

【问题讨论】:

  • 您基本上是在描述数据库复制。检查您的 dbms 是否开箱即用。
  • 请仅指明您正在使用的数据库。您选择了 4 个。如果有问题的 2 个数据库是不同的 DBMS,请在问题中分别说明。

标签: mysql sql-server database oracle postgresql


【解决方案1】:

通常的做法是每天备份一次主实例并在辅助实例上恢复一次。

您可以将备份和恢复按顺序安排为日常作业。

【讨论】:

  • 在目标系统中注入数据的唯一方法是使用 API。在插入另一个系统之前,我需要将数据写入 json 格式。这就是为什么我需要维护中间层来添加数据。
【解决方案2】:

如果你的复制数据库是Sql server,那么我建议你使用LinkedServer。根据文档:

链接服务器使您能够实现分布式数据库,这些数据库可以 获取和更新其他数据库中的数据。它们是一个很好的解决方案 您需要在没有的情况下实现数据库分片的场景 需要创建自定义应用程序代码或直接从远程加载 数据源。链接服务器具有以下优势:

从 SQL Server 外部访问数据的能力。

发出分布式查询、更新、命令和 跨企业异构数据源的事务。

以类似方式处理不同数据源的能力。

您可以根据文档找到更多信息。

访问https://docs.microsoft.com/en-us/sql/relational-databases/linked-servers/linked-servers-database-engine?view=sql-server-ver15

【讨论】:

    猜你喜欢
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多