oracle 数据库 dblink怎么用

oracle 数据库 dblink怎么用,第1张

创建公开数据库链接

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10122536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存