可以跨多个数据库共享表

时间:2013-04-26 17:55:29

标签: database oracle plsql

我知道这很可能是不可能的。但我仍然会在这里详述我的问题,如果有人有类似于我需要的东西,那就太棒了。

我有一个托管在Windows服务器上的文件验证系统。该系统保存元数据表,前端文件验证应用程序使用该元数据表来验证各种类型的数据。现在,它迎合了与元数据表托管在同一数据库中的单个应用程序。

问题在于我希望这个系统具有可扩展性,以便它可以验证各种应用程序的文件,其中一些应用程序存在于不同的数据库中。由于我的元数据表中的某些检查是基于Pl / SQL的,因此除非文件验证系统和应用程序数据库的数据库相同,否则我无法运行这些检查。有没有办法让表一次在多个数据库中共享?如果没有,那么可能的解决办法是什么?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

如果要访问多个数据库上的多个表,就好像它是一个表一样,那么您必须使用一个使用数据库链接的视图。您应该首先了解数据库链接,然后创建视图应该不是问题。

数据库链接允许您像访问同一数据库中的表一样访问另一个数据库表。创建数据库链接后,您只需将@mydblink添加到表名中即可。实施例

CREATE DATABASE LINK mydblink 
CONNECT TO user IDENTIFIED BY password
USING 'name_of_other_db'

SELECT * FROM sometable@mydblink

它运行良好,甚至还有两阶段提交远程和本地数据库中的更新。根据您的设置,还有一些了解它,但您可以在oracle文档中阅读所有相关内容。我在一个更大的项目中广泛使用数据库链接,这是你想要做的正确的方法。

http://docs.oracle.com/cd/E11882_01/server.112/e25494/ds_concepts002.htm#ADMIN12083

http://docs.oracle.com/cd/E11882_01/server.112/e26088/statements_5005.htm

这是我在一些谷歌搜索之后发现的链接,告诉我们如何构建一个访问多个数据库中的数据的视图,并提供有关预期性能的一些信息

http://www.dba-oracle.com/t_sql_dblink_performance.htm