Oracle expdp/impdp 使用示例
1. 创建目录
使用数据泵之前,需要创建一个存放文件的目录。 这个目录要写入Oracle的数据字典中才能识别。
(1)先查看一下已经存在的目录:
SQL> col owner format a5
SQL> col directory_name format a25
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
----- ------------------------- ------------------------------------------------
SYS BACKUP /u01/backup
(2)把我们把backup 这个目录删除掉,在重新创建一下
SQL> drop directory backup;
Directory dropped.
SQL> select * from dba_directories;
SQL> create directory backup as '/u01/backup';
Directory created.
SQL> select * from dba_directories;
OWNER DIRECTORY_NAME DIRECTORY_PATH
----- ------------------------- ------------------------------------------------
SYS BACKUP /u01/backup
(3)注意事项:
我这里是使用sys用户来进行操作的。 如果是其他用户,那么就需要对这个用户进行赋权。
SQL> grant create any directory to system;
Grant succeeded.
SQL> select * from dba_sys_privs where grantee='SYSTEM';
grantee privilege adm
------------------------------ ---------------------------- ------------
system create any directory no
system global query rewrite no
system create materialized view no
system create table no
system unlimited tablespace yes
system select any table no
如果是其他用户使用sys创建的目录,也需要进行赋权,如:
SQL> grant read,write on directory backup to SYSTEM;
Grant succeeded.
2. 创建测试数据
我们需要演示expdp/impdp的一些功能,所以需要创建2个用户和对应的表空间,并且创建一些测试的数据。 SQL 代码如下:
SQL> create tablespace dave datafile '/u01/app/oracle/oradata/dave/dave01.dbf' size 50m;
SQL> create tablespace bl datafile '/u01/app/oracle/oradata/dave/bl01.dbf' size 50m;
SQL> create user dave identified by dave default tablespace dave temporary tablespace temp;
SQL> create user bl identified by bl default tablespace bl temporary tablespace temp;
SQL> grant read,write on directory backup to dave,bl;
SQL> grant connect,resource to dave,bl;
SQL> conn dave/dave;
Connected.
SQL> create table dave(id number,name varchar2(10));
Table created.
SQL> begin
2 for i in 1 .. 10 loop
3 insert into dave values(i,'dave');
4 end loop;
5 end;
6 /
PL/SQL procedure successfully completed.
SQL> commit;
Commit complete.
SQL> select * from dave;
ID NAME
---------- ----------
1 dave
2 dave
3 dave
4 dave
5 dave
6 dave
7 dave
8 dave
9 dave
10 dave
10 rows selected.
SQL> conn bl/bl;
Connected.
SQL> create table bl(id number,name varchar2(10));
Table created.
SQL> begin
2 for i in 10 .. 20 loop
3 insert into bl values(i,'bl');
4 end loop;
5 commit;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select * from bl;
ID NAME
---------- ----------
10 bl
11 bl
12 bl
13 bl
14 bl
15 bl
16 bl
17 bl
18 bl
19 bl
20 bl
11 rows selected.
3. 开始测试
3.1 FULL=Y全库导出
(1)不指定Job_name
[oracle@qs-dmm-rh2 ~]$ expdp /'/ as sysdba/' directory=backup full=y dumpfile=fullexp.dmp logfile=fullexp.log parallel=2;
-- 注意使用sys 的格式,还有full=y 导出的是非sys和system用户的对象。
Export: Release 10.2.0.4.0 - Production on Friday, 18 March, 2011 15:05:54
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYS"."SYS_EXPORT_FULL_02": '/******** AS SYSDBA' directory=backup full=y dumpfile=fullexp.dmp logfile=fullexp.log parallel=2
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 18.68 MB
……
……
Master table "SYS"."SYS_EXPORT_FULL_02" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_FULL_02 is:
/u01/backup/fullexp.dmp
Job "SYS"."SYS_EXPORT_FULL_02" successfully completed at 15:07:27
expdp/impd 是Job形式的,会调用DBMS_DATAPUMP PL/SQL包,这个API提供高速的导出导入功能;还有DBMS_METADATA PL/SQL包,这个包是将metadata(对象定义)存储在XML里。 所有的进程都能load 和unload 这些metadata。
在备份���间,会自动的生成一张与Job_name 相同名称的表, 该表在备份期间保存metadata数据。 当备份技术后,自动删除该表。
我们可以使用SQL:
SQL>select * FROM dba_datapump_jobs
查看Job 的信息。 如果意外情况导致备份Job失败,那么对应保存metadata的表,还是会存在。 这个时候,如果查询dba_datapump_jobs,会显示该Job为not running。 这时候,我们只需要drop 掉对应的表,在查询dba_datapump_jobs。 就没有记录了。 这个也是一种处理方法。
在开始我就说了,这里没有指定Job name。 所以系统自动给我们生成了一个:SYS_EXPORT_FULL_02。
默认是从SYS_EXPORT_FULL_01开始,因为我之前有一个没有运行的Job,所以这里从2开始了。
(2)指定Job_name
[oracle@qs-dmm-rh2 ~]$ expdp /'/ as sysdba/' directory=backup full=y dumpfile=fullexp3.dmp logfile=fullexp3.log parallel=2 job_name=daveJob;
--在这里我指定了Job_name
Export: Release 10.2.0.4.0 - Production on Friday, 18 March, 2011 15:29:56
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYS"."DAVEJOB": '/******** AS SYSDBA' directory=backup full=y dumpfile=fullexp3.dmp logfile=fullexp3.log parallel=2 job_name=daveJob
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 18.68 MB
……
……
……
Master table "SYS"."DAVEJOB" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.DAVEJOB is:
/u01/backup/fullexp3.dmp
Job "SYS"."DAVEJOB" successfully completed at 15:31:06
3.2 全库导入
[oracle@qs-dmm-rh2 archivelog]$ impdp /'/ as sysdba/' directory=backup full=y dumpfile=fullexp3.dmp logfile=fullexp3.log parallel=2 job_name=daveJob table_exists_action=replace;
注意: 导入的过程会生成归档日志,所以,如果是Data Guard 环境,只需要导入主库就可以了。
3.3 导出表
$ expdp /'/ as sysdba/' directory=backup dumpfile=table.dmp logfile=table.log tables=dave.dave,dave.dba;
注意: 这里必须是同一个schema下的表
或者:
$expdp dave/dave directory=backup dumpfile=table.dmp logfile=table.log tables=dave, dba;
3.4 导入表
$impdp dave/dave directory=backup dumpfile=table.dmp logfile=table.log tables=dave,dba;
3.5 导出用户
$ expdp /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log schemas=dave,bl;
这里是同时导出多个用户
3.6 导入用户
$ impdp /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log schemas=dave,bl table_exists_action=replace;
3.7 导出表空间
$ expdp /'/ as sysdba/' directory=backup dumpfile=tbs.dmp logfile=tbs.log tablespaces=dave,bl;
--同时导出2个表空间
3.8 导入表空间
$ impdp /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log tablespaces=dave table_exists_action=replace;
--导入一个表空间
$ impdp /'/ as sysdba/' directory=backup dumpfile=user.dmp logfile=user.log tablespaces=dave,bl table_exists_action=replace;
--导入2个表空间
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-09/43891.htm
Oracle expdp/impdp 使用示例的更多相关文章
- oracle expdp/impdp 用法详解
http://hi.baidu.com/hzfsai/item/4a4b3fc4b1cf7e51ad00efbd oracle expdp/impdp 用法详解 Data Pump 反映了整个导出/导 ...
- oracle expdp/impdp/可传输表空间
oracle expdp/impdp/可传输表空间/及一些参数 Oracle data pump 导出操作能够将表.索引.约束.权限.PLSQL包.同义词等对象从数据库导出,并将它们保存在一种非文本格 ...
- ORACLE expdp/impdp详解
ORCALE10G提供了新的导入导出工具,数据泵.Oracle官方对此的形容是:Oracle DataPump technology enables Very High-Speed movement ...
- ORACLE expdp/impdp详解(转)
ORCALE10G提供了新的导入导出工具,数据泵.Oracle官方对此的形容是:Oracle DataPump technology enables Very High-Speed movement ...
- Oracle EXPDP/IMPDP示例
待整理: 参考DAVE博客 http://blog.csdn.net/tianlesoftware/article/details/6260138
- Oracle expdp impdp中 exclude/include 的使用
exclude和include参数能够在使用expdp或impdp是对特定的对象或对象类型进行筛选或过滤.比如因工作的需要导出特定的表或不导出特定的表.视图以及存储过程.索引.约束.授权统计信息等等. ...
- ORACLE expdp \ impdp \ exp \ imp
(转自:http://www.cnblogs.com/lanzi/archive/2011/01/06/1927731.html) EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导 ...
- Oracle expdp/impdp导出导入命令及数据库备份
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
- Oracle expdp/impdp导出导入命令及数据库备份(转)
使用EXPDP和IMPDP时应该注意的事项: EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用, ...
随机推荐
- oracle的number的浅析
author:skate time:2011-02-14 oracle的number的浅析 从例如以下几个方面来认识number 1.表示的数值范围 2.占用的存储空间 3.number的性能 ...
- Leetcode 328 Contains Duplicate set和map应用
找出数组中重复的数,裸的map和set题 class Solution { public: bool containsDuplicate(vector<int>& nums) { ...
- 在Expression Blend中制作侧面为梯形的类棱柱体
原文:在Expression Blend中制作侧面为梯形的类棱柱体 在上一篇"在WPF设计工具Blend2中制作立方体图片效果"( http://blog.csdn.net/joh ...
- OpenCV中基于Haar特征和级联分类器的人脸检测
使用机器学习的方法进行人脸检测的第一步需要训练人脸分类器,这是一个耗时耗力的过程,需要收集大量的正负样本,并且样本质量的好坏对结果影响巨大,如果样本没有处理好,再优秀的机器学习分类算法都是零. 今年3 ...
- Codeforces 458A Golden System
经过计算两个字符串的大小对比 主要q^2=q+1 明明是斐波那契数 100000位肯定超LL 我在每一位仅仅取到两个以内 竟然ac了 #include<bits/stdc++.h> usi ...
- IOS status bar
从iOS7开始,该系统提供2样的管理风格状态栏 由UIViewController管理(每UIViewController我们可以有各自不同的状态栏) 由UIApplication管理(由其统一管理的 ...
- matlab进行离散点的曲线拟合
原文:matlab进行离散点的曲线拟合 ployfit是matlab中基于最小二乘法的多项式拟合函数.最基础的用法如下: C=polyfit(X,Y,N) 其中: X : 需要拟合的点的横坐标 Y:需 ...
- C#使用Selenium实现QQ空间数据抓取 登录QQ空间
经@吃西瓜的星星提醒 首先我们介绍下Selenium Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mo ...
- EntityFrameworkCore 单表树状结构配置
数据结构 public class TreeNode { [Key] public long Id { get; set; } public string NodeName { get; set; } ...
- 计算机网络OSI参考模型与tcp/ip四层模型
OSI参考模型--7层 1层物理层:主要定义物理设备标准,如网线的接口类型.光线的接口类型.各种传输介质的传输速率等.它的主要作用是传输比特流(就是由1.0转化为电流强弱来进行传输,到达目的地后在转化 ...