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 求解决方案

PL-SQL(免安装版本)报错ORA-12154

PLSQL链接oracle报错--ORA-12154: TNS: 无法解析指定的连接标识符

PLSQL链接oracle报错--ORA-12154: TNS: 无法解析指定的连接标识符

新建ORACLE数据库实例时ORA-12154: TNS: 无法解析指定的连接标识符的解决