暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
DBLINK创建
680
3页
2次
2020-03-10
5墨值下载
Oracle
建立
DBLINK
的详细步骤记录
防火墙
SQL
脚本
测试条件:
假设某公司总部在北京,新疆有其下属的一个分公司。在本次测试中,新疆的计算机为本
地计算机,即本要的
IP
地址为:
192.168.1.100
北京的总部有一个集中的数据库,其
SID
SIDBJ
,用户名:
userbj,
密码:
bj123,
北京的
IP
地址是:
192.168.1.101
在本地
(
新疆
)
的分公司也有一个数据库,其
SID
SIDXJ
,用户:
userxj
,密码:
xj123
新疆的
IP
地址是:
192.168.1.100
要将本地新疆的
SIDXJ
数据库中访问到北京的数据库
SIDBJ
中的数据。
也就是说,在
sidxj
的数据库中,用户
userxj(192.168.1.100)
需要建立
DBLINK
,以
userbj
的用户身份访问
sidBJ(192.168.1.101)
中的数据。
测试环境:两个数据库均建立在
WINXP
上,
ORACLE
的版本均为
Oracle817
建立环境时,要注意关闭两台计算机上的
Windows
的防火墙,否则,会出现能
ping
通,
Oracle
连接不通的情况。
1
、问:如何返回数据库的
GLOBAL_NAME
执行
SELECT * FROM GLOBAL_NAME;
北京的数据库的
GLOBAL_NAME
SIDBJ.US.ORACLE.COM
新疆的数据库的
GLOBAL_NAME
SIDXJ
2
、问:如何查看
Global_name
参数是
true
还是
False?
答:执行:
SQL> show parameter global_name;
执行的结果如下:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
global_names boolean TRUE
表示该参数是
true.
也可以通过查看
v$option
视图,如果其中
Advanced replication
TRUE
,则支持高级复
制功能;否则不支持。
执行语句为:
select * from v$option;
3
、问:如何检查
Oracle
的版本是否支持同步功能?
答:执行
select * from v$option where PARAMETER='Advanced replication'
语句,
如何返回值为
True
,那么就是支持,否则就是不支持。在两个数据库中都是检查是否支持
才行。
建立步骤:
1
、在本地建立一个
Oracle
的客户端连接
tns_xj_to_bj
,用于连接北京的数据库。
2
、新建一个连接
tnsxj
,用于连接本地的
sidxj
数据库,以
tnsxj/userxj/xj123
登录到
PLSQL
中。
下面开始创建连接到北京的远程数据连接
DBLink
create database link SIDBJ.US.ORACLE.COM connect to userbj identified by bj123
using 'tns_xj_to_bj';
其中:
SIDBJ.US.ORACLE.COM
是远程的数据库的
global_name,userbj
是连接
SIDBJ
用户名,
bj123
userbj
的密码,
tns_xj_to_bj
是本地建立的连接到北京的数据库的服务名。
3
、测试连接是否成功:
select * from dual@SIDBJ.US.ORACLE.COM
如果返回结果如下则表示连接成功了。
DUMMY
-----
X
4
、查询已经建立的远程连接名:
SQL> select owner,object_name from dba_objects where object_type='DATABASE
LINK';
OWNER OBJECT_NAME
------------------------------ --------------------------------------------------------------------------------
SYSTEM SIDBJ.US.ORACLE.COM
USERXJ DBLINK_XJ_TO_BJ
USERXJ SIDBJ
5
、至此,在新疆的计算机上建立了一个
DBLINK
,用于连接到北京的数据库上,
在北京的数据库中,建立一个表用于测试。
create table USERBJ.BJ_TEST
(
STU_ID NUMBER,
STU_NAME VARCHAR2(100)
)
在其中增加一条记录:
insert into BJ_TEST (STU_ID, STU_NAME)
values (1, '
钟德荣
');
在新疆的数据库中查询北京的数据库中表的信息:
select * from bj_test@SIDBJ.US.ORACLE.COM
查询结果:
STU_ID STU_NAME
---------- --------------------------------------------------------------------------------
1
钟德荣
表示查询是正常的。
说明:该查询是用
以上脚本全部通过测试。
下面再补充三点:
1
、 创建
DB_Link
时,
"tns_xj_to_bj"
是指服务器端
tnsnames.ora
文件中所定义的环境名,
但在企业中,并没有几个人有权限查看这个文件中的内容。
解决办法:将‘
tns_xj_to_bj’
改写成客户端
tnsnames.ora
文件中对应的实际连接串。如:
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT
= 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
注意:此处“
(SERVER = DEDICATED)”
可有可无,并没什么影响。
2
、查看所有
DBLink
可采用以下两种方式
SQL1
select owner,object_name from dba_objects where object_type='DATABASE
LINK';
SQL2
select * from all_db_links;
但唵更偏向用
SLQ2
No Reason
!呵呵!
3
、删除
DB_Link
drop database link STAGEING.REGRESS.RDBMS.DEV.US.ORACLE.COM;
其中
database
不能更改,
STAGEING.REGRESS.RDBMS.DEV.US.ORACLE.COM
你创建的
DB_Link
值(采用
SQL2
),当然需要用创建该
DB_Link
的用户登录才能成功删
除!
of 3
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。