甲骨文中的数据库链接是定义一个数据库到另一个数据库的路径的对象,数据库链接允许你查询远程表和执行远程程序。在任何分布式环境里,dblink都是必要的,另外注意数据库链接是单向的连接。在创建数据库链接的时候,甲骨文在数据字典中存储了相关的数据库链接的信息,在使用数据库链接的时候,甲骨文再通过甲骨文净用户预先定义好的连接信息访问相应的远程数据库来完成相应的工作。
(1)确认从本地数据库到远程数据库的网络连接是否正常,tnsping要能成功。
(2)确认在远程数据库上面有相应的访问权限。
(1)私人:创建的是用户级别的dblink,只有创建该dblink的用户才可以使用这个dblink来访问远程的数据库,同时也只有该用户可以删除这个dblink。
(2)公共:创建的是数据库级别的dblink,本地数据库中所有的用户数据库访问权限的用户或者pl/sql程序都能使用这个dblink。
(3)全球:创建的是网络级别的dblink,这是对甲骨文于网络而言的。
如果你新建了一个用户,那么你必须为它授予以下权限才可以创建dblink:创建数据库链接,创建公共数据库链接,创建会话。
此处 <李> expdp scotttiger172171463orcl 李> 这边我dblink的用户是远程数据库,对应的用户是lyz
-
<李>
network_linkdl_OCPLYZ1
李>
-
<李>
TABLESTESTA
李>
<李> TABLESTESTA 李> 就是来自斯科特表的,而斯科特表没有这个表,当然就报错了……我之前就是因为没写这个,所以一直报这个错,,,,
当然如果你目标库(本地数据库)有这个lyz这个用户,我们也可以这样写:
然后我们再倒入到库就可以 了: 这边要倒入的数据库为 :
由于上面的是基于表的导出,我们可以用下面这个命令:
impdp 斯科特/tiger@orcl 目录=DATA_PUMP_DIR DUMPFILE=exptable。dmp table_exists_action=替换
甲骨文dblink用法总结和expdp和impdp利用dblink倒入导出到本地