建议你遇到任何dba_ all_ user_ 或者包含 $ 字符的视图或表都不要试图往里面插东西。
db link就是两个数据库之间连接用的,用create database link 创建。当然,创建之后你就会发现你看的有关db_link的视图被改变了。比如dba_db_links。
当然,创建db link之前,你还需要配置tnsnamesora这个该死的文件让两个数据库相互认识。
需要建立链路 create dblink 具体语法你查下 用plsql比较方便 直接设置下链路名 连接到用户 密码 把tns里要连接的那段复制过去就行了 建好以后通过select from 表@链路名查询就行
删了重新创建一个联邦吧。
DB2联邦数据库建立,相当于Oracle的Db-Link
|字号 订阅
在同一台机器上,用同一用户建立联邦数据库
一、环境:
本机:数据库 a
“远程”:数据库 b
用户实例:db2inst1
二、步骤:
1、在DB2命令窗口运行DB2 GET DBM CFG 来查看当前实例的配置参数,并确保FEDERATED参数设置为YES,您可以通过运行DB2 UPDATE DBM CFG USING FEDERATED YES来设置这个参数。修改这个参数后,必须重新启动实例才会生效(DB2STOP/DB2START)
2、
db2 catalog tcpip node node1 remote 192168050 server 48000
db2 catalog db b as bb at node node1
db2 TERMINATE (必须使用该命令否则可能导致catalog更新不能生效
测试连通性
db2 attach to node1 user db2inst1 using db2inst1
db2 connect to bb user db2inst1 using db2inst1 (若出现问题,修改当前用户主目录下sqllib/instance/db2rfecfg 文件,使其remote =connection 的 值为YES,ENABLE AUTHENICAION=YES,先要db2stop,再执行/db2rfe -f 使其生效)
db2connect reset
3、建立包装器
连接到本地数据库 db2 connect to a
(本地为unix环境)create wrapper DRDA;
(本地为windows环境) create wrapper "DRDA" LIBRARY 'db2drdadll' OPTIONS( ADD DB2_FENCED 'N');
4、
建立服务器(此命令最好在db2 CLP 下执行,不能解析引号)
create server yj type db2/udb version 97 wrapper drda authorization "db2inst1" password "db2inst1" options(node 'node1',dbname 'bb')
此步骤options node 有疑问,待解决,好像Node 存在不存在都可以
5、
用户映射
db2 "create user mapping for "db2inst1" server yj options (add remote_authid 'db2inst1' ,add remote_password 'db2inst1')"
6、
建立别名
db2 "create nickname yj_test for yjdb2inst1test"
CREATE NICKNAME remote_t_usertable FOR remoteserver_195db2inst1t_usertable;
(其中,wrapper使用DB2数据源的缺省名称DRDA server名称是remoteserver_195,t_usertable表在local_db数据库中的nickname是remote_t_usertable)
7、连接到本地数据库
db2 conncet to a
db2 "select from db2inst1yj_test"
db2 update dbm cfg using FEDERATED YES
db2 connect to mydb1
--这里需要注意的是这个语句不能使用db2 ""执行,而是需要进入到db2 Command Line Processor 交互模式。这点是进行了很多尝试才发现的问题,注意问题是在password后面的字符串必须是双引号
--drda是默认的适配器
db2
create server f_mydb2 type db2/udb version 97 wrapper drda authorization db2inst2 password "" options(dbname 'mydb2')
db2 "create user mapping for "db2inst1" server f_mydb2 options (add remote_authid 'db2inst2' , add remote_password '')"
--db2inst2中存在一个表tb2
db2 "create nickname mydb2_tb2 for f_mydb2db2inst2tb2"
db2 "select from mydb2_tb2"
db2 "select from tb1 a inner join mydb2_tb2 b on bid = aid"
以上就是关于oracle db_link全部的内容,包括:oracle db_link、求高手能告诉我oracle数据库中两个相同的库,一个正式库,一个测试库,怎样把测试库的表和正式库连接起来、Oracle连接DB2,Dblink报错 Ora-28500 Ora-02063等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)