使用数据泵单独导出dblink

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xxzhaobb/article/details/83068597

最新需要单独导出dblink,之前发现通过create database link创建的dblink,通过schema可以导出

通过create public database link 语句创建的dblink,通过schema没法导出,通过加上full=y,导出元数据可以导出dblink

。但是这样会把sys下的其他的元数据也导出来。再导入的时候,会有告警。

今天研究了下,可以使用一下的语句导出导入。

expdp "'/ as sysdba'" directory=DIR dumpfile=dblink.dmp include=db_link full=y

导出的过程如下:

C:\Users\Administrator>expdp "'/ as sysdba'" directory=DIR dumpfile=dblink.dmp i
nclude=db_link full=y

Export: Release 11.2.0.1.0 - Production on 星期二 10月 16 01:23:49 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc
tion
With the Partitioning, OLAP, Data Mining and Real Application Testing options
自动启用 FLASHBACK 以保持数据库完整性。
启动 "SYS"."SYS_EXPORT_FULL_01":  "/******** AS SYSDBA" directory=DIR dumpfile=d
blink.dmp include=db_link full=y
正在使用 BLOCKS 方法进行估计...
处理对象类型 DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 0 KB
处理对象类型 DATABASE_EXPORT/SCHEMA/DB_LINK
已成功加载/卸载了主表 "SYS"."SYS_EXPORT_FULL_01"
******************************************************************************
SYS.SYS_EXPORT_FULL_01 的转储文件集为:
  D:\DUMP\DBLINK.DMP
作业 "SYS"."SYS_EXPORT_FULL_01" 已于 01:23:52 成功完成

查看导出的sql语句

impdp "'/ as sysdba'" directory=DIR dumpfile=dblink.dmp sqlfile=dblink.sql


-- 导出过程
C:\Users\Administrator>impdp "'/ as sysdba'" directory=DIR dumpfile=dblink.dmp s
qlfile=dblink.sql

Import: Release 11.2.0.1.0 - Production on 星期二 10月 16 01:26:57 2018

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Produc
tion
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SYS"."SYS_SQL_FILE_FULL_01"
启动 "SYS"."SYS_SQL_FILE_FULL_01":  "/******** AS SYSDBA" directory=DIR dumpfile
=dblink.dmp sqlfile=dblink.sql
处理对象类型 DATABASE_EXPORT/SCHEMA/DB_LINK
作业 "SYS"."SYS_SQL_FILE_FULL_01" 已于 01:26:59 成功完成
-- CONNECT SYS
ALTER SESSION SET EVENTS '10150 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10904 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '25475 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10407 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '10851 TRACE NAME CONTEXT FOREVER, LEVEL 1';
ALTER SESSION SET EVENTS '22830 TRACE NAME CONTEXT FOREVER, LEVEL 192 ';
-- new object type path: DATABASE_EXPORT/SCHEMA/DB_LINK
CREATE PUBLIC DATABASE LINK "131"
   CONNECT TO "APPS" IDENTIFIED BY VALUES '05248D0BE733DEF84B94DC1B8C76933140'
   USING 'XXXX_rac';
 
CREATE PUBLIC DATABASE LINK "XXXX_131"
   CONNECT TO "APPS" IDENTIFIED BY VALUES '05937694247596309877ED0DD024218509'
   USING '(DESCRIPTION =  
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = XXX)
  )
)';
 
CREATE PUBLIC DATABASE LINK "XXX_87"
   CONNECT TO "SYSTEM" IDENTIFIED BY VALUES '051DA4C75897EB22BBB5BB5F07D6843CCA'
   USING '
(DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=192.168.101.XXX)
      (PORT=1521)
    )
    (CONNECT_DATA=
      (SERVICE_NAME=orcl)
    )
  )
';
 
-- CONNECT STREAMADMIN
CREATE DATABASE LINK "XXXX"
   CONNECT TO "STREAMADMIN" IDENTIFIED BY VALUES '05A0435B49CF8F0AAFF50A39916689D7E3'
   USING 'XXXX';

-- 导入 。 这里有一个错误,原因是有个dblink的schema是其他的,刚好这个用户没有在数据库中建立。

D:\app\test\product\11.2.0\dbhome_1\BIN>impdp "'/ as sysdba'" directory=dump dumpfile=DBLINK.DMP logfile=impdblink.log

Import: Release 11.2.0.4.0 - Production on 星期二 10月 16 09:48:09 2018

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SYS"."SYS_IMPORT_FULL_01"
启动 "SYS"."SYS_IMPORT_FULL_01":  "/******** AS SYSDBA" directory=dump dumpfile=DBLINK.DMP logfile=impdblink.log
处理对象类型 DATABASE_EXPORT/SCHEMA/DB_LINK
ORA-39083: 对象类型 DB_LINK 创建失败, 出现错误:
ORA-31625: 必须有方案 STREAMADMIN 才能导入此对象, 但此方案不可访问
ORA-01435: 用户不存在
失败的 sql 为:
CREATE DATABASE LINK "XXXX"  CONNECT TO "STREAMADMIN" IDENTIFIED BY VALUES ':1'  USING 'XXXX'

作业 "SYS"."SYS_IMPORT_FULL_01" 已经完成, 但是有 1 个错误 (于 星期二 10月 16 09:48:35 2018 elapsed 0 00:00:17 完成)

-- 查看DBLINK 。dblink已经导入 。

SYS@test>select owner,db_link from dba_db_links;

OWNER      DB_LINK
---------- --------------------
PUBLIC     131
PUBLIC     XXX_131
PUBLIC     XXX_87
PUBLIC     DBMS_CLRDBLINK
PUBLIC     TO_NOCDB
DLINKUSER  NO_PUB_DLINK

已选择6行。

SYS@test>

END。

猜你喜欢

转载自blog.csdn.net/xxzhaobb/article/details/83068597
今日推荐