随着业务量的增加,需要存储的数据也出现剧增,如果所有数据存储到一个数据库中势必会增加数据库的性能消耗。最终造成用户的不友好感受。鉴于此我们计划将数据分多份存储到不同的数据库中,数据库之间可以相互访问,这时候我们就需要建dblink,即分域库。数据库之间通过@分域名称的方式访问。应用程序也可以通过这种方式访问。这样把访问量大的数据放到独立的数据库上,而给客户直接展示的功能配置数据及静态数据单独放到一个库中,便于客户快速查询,友好显示。
假设我们有两个数据库,数据库A,数据库B.我们要实现从A上可以访问B数据库的表,但是B不能访问A数据库的表。
具体步骤如下:
1. 在A数据库的服务端,目录 /home/Oracle/product/10.2.0/db_1/network/admin/tnsnames.ora,添加如下
DBLINK_NAME=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=192.168.5.12) -- 数据库B的ip
(PORT=1521)
)
(CONNECT_DATA=
(SERVICE_NAME=ora920) --- 数据库B的实例名称。
)
)
2. 在数据库A的客户端执行,
create database link "DBLINK_NAME"
connect to INMS20 --- 数据B的用户名
identified by "password" - -数据库B的密码
using 'DBLINK_NAME'; --域名称。
3. 从数据库A客户端访问数据库B的数据表dual.
select * from dual@dblink_name ;
若想数据库B也可以访问数据库A可以反向建立dblink。