创建公开数据库链接
CREATE PUBLIC DATABASE LINK “数据库链接别名”
CONNECT TO “登陆用户” IDENTIFIED BY “登陆密码”
USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = IP)(PORT = 1521)))(CONNECT_DATA =(SID = SID)))';
例如:
CREATE PUBLIC DATABASE LINK MYDBLINK
CONNECT TO USER1 IDENTIFIED BY PASSWORD1
USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 10101010)(PORT = 1521)))(CONNECT_DATA =(SID = ORA10)))';
oracle 11g与mysql数据库通过db-link建立数据连接的问题
Oracle 需要安装 getway 采纳连接其他类型的数据库的,你安装了吗?
我仔细看了一下,oracle服务和getway服务放到一起的时候,估计需要用两套listener的信息,一套用于oracle服务(端口1521,)一套用于透明网关(比如端口1520);
我估计这个用oracle的NetManager配置程序就可以配置出来。
然后在tnsnamesora中配置mysql的本地Net服务名。
要创建一个从SQL到Oracle的DBlink,首先需要在该SQL端安装Oracle的客户端(用oracle自己提供的instant client不知道可不可以,没尝试过),安装好客户端以后,可以按照以下的步骤来进行:
>
安装oracle transparent gateway 和 sql server client,再进行相应的配置
sqlserver服务器下载并安装gateways_win32zip,添加OracleOraTg10g_home1TNSListener服务
配置tg_1\tg4msql\admin\inittg4msqlora文件指向SQL SERVER
HS_FDS_CONNECT_INFO=”SERVER=1921681102;DATABASE=mssql“
修改 \network\admin\listenerora增加服务名
(SID_DESC =
(SID_NAME = tg4msql)
(ORACLE_HOME = x:\oracle\\tg_1)
(PROGRAM = tg4msql)
)
注意:SID名称是tg4msql,这个要对应。
重启OracleOraTg10g_home1TNSListener
Oracle数据库服务器
修改network\admin\tnsnamesora增加网络服务名
tg4msql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192SQL网管地址。。)(PORT = 1521))
)
(CONNECT_DATA =
(SID = tg4msql)
)
(HS=OK)
)
以正常方式建dblink并使用即可
create database link SMS_MSQL connect to sa identified by “123456″using ‘tg4msql’;
select from dbosysobjects@SMS_MSQL;
create database link to225[U1]
connect to ultranms[U2] identified by ultranms[U3]
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =(PROTOCOL = TCP)(HOST = 1921682225[U4] )(PORT= 1521))
)
(CONNECT_DATA =
(SID = nms[U5] )
(SERVER =DEDICATED)
)
)';
[U1]创建的dblink的名字
[U2]b机数据库里的用户名
[U3]b机数据库里的用户名密码
[U4]b机的ip地址和端口号
[U5]b机数据库的实例名
oracle中一个数据库表通过另一个数据表的数据同步最新数据采用dblink的方法:
1首先创建一个dblink,可以访问远程数据库
2在本地创建一个快照,映射远程数据表,当远程数据表有变化时,会反应到快照中
3由于快照类似于视图表,所以在本地为快照创建一个触发器,当快照有变化时,会触发相应事件
4在触发器中写同步数据的代码。
以下是触发器代码:
createorreplacetriggerTRI_test_user_AFR
afterinsertorupdateordeleteonsn_test_user
foreachrow
begin
if deleting then
deletefromtest_userwhereid=:oldid;
endif;
if inserting then
insertintotest_user(id,name,age)
values(:newid,:newname,:newage);
endif;
if updating then
updatetest_usersetname=:newname,age=:newagewhereid=:oldid;
endif;
endTRI_test_user_AFR;
当需要在两个Oracle库中取数据进行比较或更新时,就会用到DataLink。
建立方法如下:
Create dababase link 连接名@限定词 connect to 数据库用户 identified by 密码 using 服务名;
建立时需要注意以下问题:
一、global_names参数
在服务器上创建远程连接,则需要根据服务器中的global_names参数情况来创建DBLink:
a 如果Global_names=true,则创建的远程连接必需设置如下:
1、创建的连接名必需是目标数据库中的global_name的值,可以通过:select From global_name的方式进行获取。
2、如果目标数据库和发起连接的数据库在同一台机器上,则需要在创建的远程连接名后加@和限定词。其格式如上,否则不用加 “@限定词”
b 如果global_names=false,则创建的远程连接需设置如下:
1、连接名可以任意取。
2、如果连接名取成了与目标数据库实例名或global_name值相同时,而且目标数据库和发起连接的数据库在同一台机器上,也必需加上连接限定词。
以上就是关于oracle 数据库 dblink怎么用全部的内容,包括:oracle 数据库 dblink怎么用、oracle 11g与mysql数据库通过db-link建立数据连接的问题、如何创建从SQL到Oracle的DBlink等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)