dblink实例创建——报错ora-12154
Posted OkidoGreen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dblink实例创建——报错ora-12154相关的知识,希望对你有一定的参考价值。
First,什么是DBLINK?
**dblink(Database Link)**数据库链接顾名思义就是数据库的链接 ,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
通俗的说:你在A数据库上建立关于B数据库的dblink,就可以在A数据库上取B数据库的数据了!!!
Second,实例操作!
现在我有两个数据库,一个是本地虚拟机的数据库 Oracle 10g:192.168.186.70 一个是本地内网环境公司的数据库:192.168.12.67
现在的需求是:我要从67数据库中 copy cux_trn_oaf_16129 这张表到我的70数据库中,保存为cux_trn_oaf_16036
first,要保证 67数据库中使用的apps 用户 和 70数据库的system 用户都有相应建立dblink的权限
执行:
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
or
select * from dba_sys_privs where privilege like upper('%DATABASE LINK%');
两句话查看相应权限
70数据库:system用户
67数据库:apps用户
在这里插入图片描述
second,创建dblink链接
create public database link Zer0_dblink connect to apps identified by apps
using '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.12.67)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=TEST103)))';
注释:Zer0_dblink 为link链接,apps/apps为67数据库用户的账号密码 using的信息 为数据库连接的TNS信息(千万注意回车!!!!)
然后查询
select * from dba_db_links;
查看是否建立成功
再通过下面这条语句查询是否能连上:
select * from cux_trn_oaf_16129@Zer0_dblink
看下面这个情况,报错:
看到这个问题先不要慌,
第一反应:会不会是数据库不通???
因为67数据库服务器我没资格登上去哦,那就我在本地虚拟机ping一下67服务器:
是通的。
在这里插入图片描述
第二反应:在数据库服务端配置一下tns信息???
找到虚拟机的 %oracle_home%/network/admin/tnsnames.ora 文件,添加tns信息。还是没用?????!!!!!
第三反应:奔溃!!!!!!测试一下tnsping???
在这里插入图片描述
ok的
那么…奔溃啊!!!!!!静下心想想。再删除创建一下???
drop public database link Zer0_dblink;
create public database link Zer0_dblink connect to apps identified by apps
using '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.12.67)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=TEST103)))';
查一下看看
select * from dba_db_links;
发现了!!!!!!怎么有问号?????
如下:
原因:回车空格!!!!!
成功后的样子:
select * from cux_trn_oaf_16129@Zer0_dblink
然后创建表,将信息移过来:
create table cux_trn_oaf_16036 as select * from cux_trn_oaf_16129@Zer0_dblink;
查询一下
select * from cux_trn_oaf_16036
删除dblink:
drop public database link Zer0_dblink;
以上是关于dblink实例创建——报错ora-12154的主要内容,如果未能解决你的问题,请参考以下文章
exp/imp报错:ORA-12154: TNS: 无法解析指定的连接标识符
Oracle 数据库 IMPDP 导入报错, ORA-39083 ORA-04052 ORA-12154 求解决方案
PLSQL链接oracle报错--ORA-12154: TNS: 无法解析指定的连接标识符