【问题标题】:Using Oracle SQL (PL/SQL) to create a distributed database使用 Oracle SQL (PL/SQL) 创建分布式数据库
【发布时间】:2020-03-13 07:37:08
【问题描述】:

我必须使用 Oracle PL/SQL 创建一个分布式数据库,但我不知道从哪里开始,也找不到任何关于它的教程。这是一个实验室,所以它都在一个本地环境中,我将在一台机器上运行 3 个虚拟机。我们正在使用这个预构建的 VM:https://www.oracle.com/database/technologies/databaseappdev-vm.html

【问题讨论】:

标签: database oracle plsql distributed


【解决方案1】:

您所说的“分布式数据库”有很多范围。这可能意味着

  • 在它们之间进行通信的数据库链接
  • 休息
  • 使用 AQ 的队列基础设施

所以这真的取决于你所追求的。但是假设数据库链接,那么首先要知道连接远程数据库的网络机制。例如,如果你可以这样做:

sqlplus scott/tiger@some_other_database

那么这意味着“some_other_database”是在您的 $ORACLE_HOME/network/admin/tnsnames.ora 文件中定义的。这意味着在您的数据库中,您现在可以:

SQL> create database link blah
2 connect to scott
3 identified by tiger
4 using 'some_other_database'
5 /

Database link created.

SQL> select * from dual@blah;

“blah”将使用 SCOTT 用户名和密码连接到“some_other_database”,并从当前数据库访问远程数据库。

【讨论】:

    【解决方案2】:

    在不知道为什么必须使用 PL/SQL 以及您的要求是什么的情况下,我建议您研究一下 Oracle Active Data Guard 和/或 Oracle GoldenGate。如果您需要分配负载,这两种产品都是坚如磐石的。

    我想您确实需要一些 CDC(变更数据捕获)功能?

    以下是两者的摘要: https://www.oracle.com/technetwork/database/features/availability/dataguardgoldengate-096557.html

    ADG 适合分布式读取负载,但 GG 可以为完全分布式负载进行多路同步。

    只要这是用于开发/教育,我相信该软件是免费使用的。

    如果您想要动态且快速的东西,那么在 PL/SQL 中创建自定义 CDC 并不有趣。多年前我做过/尝试过一次。它变得越来越复杂。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-17
      • 2022-07-14
      • 2010-11-07
      • 1970-01-01
      • 2016-02-19
      • 1970-01-01
      • 2017-12-21
      相关资源
      最近更新 更多