impdp 命令使用要点

1、场景 导出远程数据库的数据到本地,再将导出文件导入到本地oracle数据库中

2、条件 两个库的字符集一致

3、使用工具或命令 expdp/impdp

步骤 

本地机器数据库用户名:admin
远程机器数据库用户名:db1
 
现将远程用户db1下的t,t1表导出到本地目录D:\dump
 
步骤:
1.首先找个鸡窝,让母鸡能把蛋下进窝里。
 在D盘下建一个文件夹取名为dump  (如果是liux系统 mkdir  /home/oracle/dump)
2.其次把鸡抓进窝里,防止母鸡把蛋下进公鸡窝里,专业点讲就是建数据库目录。
 
C:\Users\admin>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 7月 10 09:10:40 2012
Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from dba_directories;
 
OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH
------------------------------ ------------------------------ --------------------------------------------------------------------------------
SYS                            ORACLECLRDIR                   E:\Oracle11g\app\admin\product\11.2.0\dbhome_1\bin\clr
SYS                            XMLDIR                         E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/xml
SYS                            DATA_PUMP_DIR                  E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/log/
SYS                            ORACLE_OCM_CONFIG_DIR          E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/ccr/state
 

SQL> create directory mydir as 'd:\dump';
目录已创建。
SQL> grant write,read on directory mydir to admin;    ------授权给admin用户,让admin用户在此目录下有读写权限。
授权成功。
SQL> select * from dba_directories;
 
OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH
------------------------------ ------------------------------ --------------------------------------------------------------------------------
SYS                            MYDIR                          d:\dump
SYS                            ORACLECLRDIR                   E:\Oracle11g\app\admin\product\11.2.0\dbhome_1\bin\clr
SYS                            XMLDIR                         E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/xml
SYS                            DATA_PUMP_DIR                  E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/rdbms/log/
SYS                            ORACLE_OCM_CONFIG_DIR          E:\Oracle11g\app\admin\product\11.2.0\dbhome_1/ccr/state
 
3.再次让母鸡进化,以便母鸡有借腹生蛋的能力。专业点讲就是建一个指向远程数据库的链路。
C:\Users\admin>sqlplus admin/admin      -----以admin用户登录并创建指向db1的链路。
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 7月 10 09:19:12 2012
Copyright (c) 1982, 2010, Oracle.  All rights reserved.

连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create database link admin_to_db1 connect to db1 identified by db1 using 'remote_11g';
数据库链接已创建。
SQL> select * from dual@admin_to_db1;      ------确认数据链路是否可用
D
-
X
 
4.再再次让母鸡顺利产崽。
C:\Users\admin>expdp admin/admin network_link=ADMIN_TO_DB1 directory=mydir dumpf
ile=db1.dmp logfile=db1.log include=table:\"in ('T','T1','T2','T3')\"
Export: Release 11.2.0.1.0 - Production on 星期二 7月 10 10:18:56 2012
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
启动 "ADMIN"."SYS_EXPORT_SCHEMA_10":  admin/******** network_link=ADMIN_TO_DB1 d
irectory=mydir dumpfile=db1.dmp logfile=db1.log include=table:"in ('T','T1','T2'
,'T3')"
正在使用 BLOCKS 方法进行估计...
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 248.0 MB
处理对象类型 SCHEMA_EXPORT/TABLE/TABLE
. . 导出了 "DB1"."T1"                                  82.92 KB   10000 行
. . 导出了 "DB1"."T"                                   10.37 KB       1 行
已成功加载/卸载了主表 "ADMIN"."SYS_EXPORT_SCHEMA_10"
******************************************************************************
ADMIN.SYS_EXPORT_SCHEMA_10 的转储文件集为:
  D:\DUMP\DB1.DMP
作业 "ADMIN"."SYS_EXPORT_SCHEMA_10" 已于 10:21:31 成功完成
5.最后检查鸡窝D:\DUMP里有没有蛋。
 

Oracle跨数据库查询(database link方式)

在Oracle本地数据库端执行赋权dbuser帐号

SQL> grant create database link to dbuser; 

配置本地数据库服务器的tnsnames.ora文件 
$ vi $ORACLE_HOME/network/admin/tnsnames.ora

增加需要远程连接服务器的连接配置,如:

ORCL_REMOTE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradb )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

登录到本地数据库,创建database link

执行如下查询语句,其中ORCL_LINK为database link名(可自定义),ORCL_REMOTE为先前在tnsnames.ora中定义的连接名,
dbuser为用户名,password为密码

create database link ORCL_LINK connect to dbuser identified by password using 'ORCL_REMOTE';

问题 无法识别的指定链接字符   直接将user_db_links 中的host改为相应的ora文件中的内容即可

查询创建database link的2中方式
1)、执行SQL语句。
select * from user_db_links; --用户 DB Link
select * from dba_db_links; --dba DB Link
select * from v$dblink; --当前DB Link

2)、在PL/SQL中,在左边浏览器中点击database links就可以看到数据库链路了。

使用链接的数据库

查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@database link名”,如
select * from table_name@ORCL_LINK

其它:

删除database link(本例中是ORCL_LINK)
SQL> Drop database link ORCL_LINK;

导入 过程

首先在导入库中建立原库的表空间和用户,用户权限和原有用户保持一致即可

创建存放导出数据文件的路径 /u01/data/....

创建directory并给用户读写的权限

create or replace directory  名称 as '路径';

grant write , read on directory 名称 to 用户

 将导出的文件放到新建的路径中

impdp system/pass schemas=user dumpfile=db.dmp logfile=db.log 

posted on 2016-11-15 19:24  飞肠剑  阅读(1540)  评论(0编辑  收藏  举报

导航