Oracle同义词和DBLink

目的:

为解决跨库访问问题,可以使用DBLink连接和同义词优化。

步骤:

  • 1、准备2个数据库
    db1.本地库,ip:192.168.167.123,端口1521,服务名orcl
    db2.目标库,ip:39.96.21.123,端口1521,服务名orcl
  • 2、在db1库的tnsnames.ora中新增目标库db2的别名
test_dblink =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 39.96.21.123)(PORT = 1521))
   )
   (CONNECT_DATA =
     (SERVICE_NAME = orcl)
   )
 )
  • 3、在db1中执行建立DBLink的语句,格式如下:

create public database link DBLink_Name connect to UserName identified by "Password" USING 'TnsName';

解释:
DBLink_Name是指要建立的DBLink的名称。
UserName 是目标库中的用户名。
Password 是目标库中的用户名口令。
TnsName 是本地库中的目标库别名

本例中的语句为:
create public database link Test_DBLink connect to prg identified by "prg" USING 'test_dblink'

执行结果
  • 4、在本地库中执行查询,查询目标库中的表数据,语法如下:

select * from Table_Name@DBLink_Name;

解释:
Table_Name是目标库中的表名.
DBLink_Name是新建的DBLink.

本例中的语句为:
select * from user_info@Test_DBLink

  • 5、优化查询方式,为目标库中的表查询建立同义词,语法如下:

create synonym Synonym_Name FOR Table_Name@DBLink_Name;

解释:
Synonym_Name 是要建立的同义词名字.
Table_Name是目标库中的表名.
DBLink_Name是新建的DBLink.

本例中的语句为:
create synonym Test_synonym FOR user_info@Test_DBLink;

优化后的查询语句为:
select * from Test_synonym;

结语:利用DBLink可以实现跨库访问,利用同义词实现查询语句优化和资源保护。如有疑问和建议,欢迎回复交流!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容