设为首页 收藏本站
查看: 560|回复: 0

[经验分享] Oracle 10g 备份与恢复之(expdp与impdp)

[复制链接]
YunVN网友  发表于 2016-8-13 07:04:31 |阅读模式
  
  expdb/impdb工具


  1)在服务端使用
  2)需要先建立DUMP目录并对访问用户授权
  
  建立DUMP目录
  

sql>connect sys/pass as sysdba
sql>create directory dump_dir AS 'e:\dump'
sql>grant read,write on directory dump_dir to system,myuser;
sql>
 


  expdp 选项


Expdp/Impdp的相关参数

EXPDP命令行选项

1. ATTACH

该选项用于在客户会话与已存在导出作用之间建立关联.语法如下

ATTACH=[schema_name.]job_name

Schema_name用于指定方案名,job_name用于指定导出作业名.注意,如果使用ATTACH选项,在命令行除了连接字符串和ATTACH选项外,不能指定任何其他选项,示例如下:

Expdp scott/tiger ATTACH=scott.export_job

2. CONTENT

该选项用于指定要导出的内容.默认值为ALL

CONTENT={ALL | DATA_ONLY | METADATA_ONLY}

当设置CONTENT为ALL 时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

CONTENT=METADATA_ONLY

3. DIRECTORY

指定转储文件和日志文件所在的目录

DIRECTORY=directory_object

Directory_object用于指定目录对象名称.需要注意,目录对象是使用CREATE DIRECTORY语句建立的对象,而不是OS 目录

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump

建立目录:

CREATE DIRECTORY dump as ‘d:dump’;

查询创建了那些子目录:

SELECT * FROM dba_directories;

4. DUMPFILE

用于指定转储文件的名称,默认名称为expdat.dmp

DUMPFILE=[directory_object:]file_name [,….]

Directory_object用于指定目录对象名,file_name用于指定转储文件名.需要注意,如果不指定directory_object,导出工具会自动使用DIRECTORY选项指定的目录对象

Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp

5. ESTIMATE

指定估算被导出表所占用磁盘空间分方法.默认值是BLOCKS

EXTIMATE={BLOCKS | STATISTICS}

设置为BLOCKS时,oracle会按照目标对象所占用的数据块个数乘以数据块尺寸估算对象占用的空间,设置为STATISTICS时,根据最近统计值估算对象占用空间

Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS

DIRECTORY=dump DUMPFILE=a.dump

6. EXTIMATE_ONLY

指定是否只估算导出作业所占用的磁盘空间,默认值为N

EXTIMATE_ONLY={Y | N}

设置为Y时,导出作用只估算对象所占用的磁盘空间,而不会执行导出作业,为N时,不仅估算对象所占用的磁盘空间,还会执行导出操作.

Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y

7. EXCLUDE

该选项用于指定执行操作时释放要排除对象类型或相关对象

EXCLUDE=object_type[:name_clause] [,….]

Object_type用于指定要排除的对象类型,name_clause用于指定要排除的具体对象.EXCLUDE和INCLUDE不能同时使用

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW

8. FILESIZE

指定导出文件的最大尺寸,默认为0,(表示文件尺寸没有限制)

9. FLASHBACK_SCN

指定导出特定SCN时刻的表数据

FLASHBACK_SCN=scn_value

Scn_value用于标识SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同时使用

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp

FLASHBACK_SCN=358523

10. FLASHBACK_TIME

指定导出特定时间点的表数据

FLASHBACK_TIME=”TO_TIMESTAMP(time_value)”

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=

“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”

11. FULL

指定数据库模式导出,默认为N

FULL={Y | N}

为Y时,标识执行数据库导出.

12. HELP

指定是否显示EXPDP命令行选项的帮助信息,默认为N

当设置为Y时,会显示导出选项的帮助信息.

Expdp help=y

13. INCLUDE

指定导出时要包含的对象类型及相关对象

INCLUDE = object_type[:name_clause] [,… ]

14. JOB_NAME

指定要导出作用的名称,默认为SYS_XXX

JOB_NAME=jobname_string

15. LOGFILE

指定导出日志文件文件的名称,默认名称为export.log

LOGFILE=[directory_object:]file_name

Directory_object用于指定目录对象名称,file_name用于指定导出日志文件名.如果不指定directory_object.导出作用会自动使用DIRECTORY的相应选项值.

Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log

16. NETWORK_LINK

指定数据库链名,如果要将远程数据库对象导出到本地例程的转储文件中,必须设置该选项.

17. NOLOGFILE

该选项用于指定禁止生成导出日志文件,默认值为N.

18. PARALLEL

指定执行导出操作的并行进程个数,默认值为1

19. PARFILE

指定导出参数文件的名称

PARFILE=[directory_path] file_name

20. QUERY

用于指定过滤导出数据的where条件

QUERY=[schema.] [table_name:] query_clause

Schema
用于指定方案名,table_name用于指定表名,query_clause用于指定条件限制子句.QUERY选项不能与
CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等选项同时使用.

Expdp scott/tiger directory=dump dumpfiel=a.dmp

Tables=emp query=’WHERE deptno=20’

21. SCHEMAS

该方案用于指定执行方案模式导出,默认为当前用户方案.

22. STATUS

指定显示导出作用进程的详细状态,默认值为0

23. TABLES

指定表模式导出

TABLES=[schema_name.]table_name[:partition_name][,…]

Schema_name用于指定方案名,table_name用于指定导出的表名,partition_name用于指定要导出的分区名.

24. TABLESPACES

指定要导出表空间列表

25. TRANSPORT_FULL_CHECK

该选项用于指定被搬移表空间和未搬移表空间关联关系的检查方式,默认为N.


设置为Y时,导出作用会检查表空间直接的完整关联关系,如果表空间所在表空间或其索引所在的表空间只有一个表空间被搬移,将显示错误信息.当设置为N时,
导出作用只检查单端依赖,如果搬移索引所在表空间,但未搬移表所在表空间,将显示出错信息,如果搬移表所在表空间,未搬移索引所在表空间,则不会显示错误
信息.

26. TRANSPORT_TABLESPACES

指定执行表空间模式导出

27. VERSION

指定被导出对象的数据库版本,默认值为COMPATIBLE.

VERSION={COMPATIBLE | LATEST | version_string}

为COMPATIBLE时,会根据初始化参数COMPATIBLE生成对象元数据;为LATEST时,会根据数据库的实际版本生成对象元数据.version_string用于指定数据库版本字符串.调用EXPDP

使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.因此,
  
使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
  
  
  调用EXPDP
  SQL>conn system/oracle
  SQL>create DIRECTORY dump_dir AS 'd:\dump';
  SQL>GRANT read,write on DIRCTORY dump_dir to scott;
  
  导出表
  expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp

  
  导出schemas
  expdp system/oracle DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=system.scott;

  
  导出表空间
  expdp system/oracle DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01,user02

  
  导出数据库
   expdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y

  
  
  

  IMPDP

  
  REMAP_DATAFILE 该选项将源数据文件的名称转变为目标数据文件名,当在不用平台之间搬移表空间时可能需要使用该选项
  REMAP_SCHEMA
  impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp REMAP_SCHEMA=scott:system
  
  REMAP_TABLESPACE
将源表空间的所有对象导入目标表空间
  impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp REMAP_RABLESPACE=user01:user02

  
  REUSE_DATAFILES 是否覆盖已存在的数据文件
  SCHEMAS 导入指定模式(schemas)
  impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp SCHEMAS=scott
  SKIP_UNUSABLE_INDEXED 是否跳过不可使用的索引
  
  SQLFILE 指定导入操作需要执行DDL语句写入到一个脚本
  SQLFILE=[dirctory_object:]file_name
  impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql
  STREAMS_CONFIGURATION
  
  TABLE_EXISTS_ACTION 当表已存在是执行的操作
  skip|append|truncate|replace
  TABLES
  impdp scott/tiger DIRECTOR=dump DUMPFILE=tab.dmp TABLES= emp
  
  TABLESPACES 
  impdp scott/tiger directory=dump dumpfile=tab.dmp tablespace=usr01
  
  TRANSPORT_DATAFILES 该选项指定当搬移表空间时要被导入到目标数据库的数据文件名称
  impdp system/oracle DIRECTORY=dump DUMPFILE=tab.dmp TRANSPORT_DATAFILE='/user01/data/tbs.dbf'
  TRANSPORT_FULL_CHECK 表空间依赖检查
  
  TRANSPORT_TABLESPACE 表空间模式导入
  
  VERSION
  
  调用IMPDP
  impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
  
  impdp system/oracle DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=scott.dept,scott.emp 
  
  REMAP_SCHEMA
=scott:system
  schemas(模式)
  impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott
  impdp system/oracle DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=scott REMAP_SCHEMA=scott:system    
  
  表空间
  impdp system/oracle DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACE=user01
  
  数据库
  impdp system/oracle DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y;
  
  搬移表空间
  nls_database_parameters
  条件约束
  字符集一样和国家字符集一样
  两个数据库不能同名
  不能搬移system和sys用户对象的表空间
  如果是其他平台,将初始参数compatible设置10.0
  
  自包含表空间是指具有有关联关系的表空间集合,假设表空间A包含了表EMP,而表空间B包含了表空间EMP的索引IND_EMP,
  
  如果要搬移表空间B,则必须同时搬移表空间A,则表空间A和B为自包含表空间集合
  违反自包含集合规则
  表空间包含sys对象
  表空间包含了索引所在的表空间,但没有包含索引基表所在的表空间
  表空间集合没有高喊分区表的所有分区
  表空间包含了表所在的表空间,但没有包含LOB列所在的表空间
  
  source database demo 
  dest database orcl    
  
  使用DBMS_TTS包检查表空间是否为自包含的
  SQL>conn system/oracle
  SQL>execute sys.dbms_tts.transport_set_check('user02',tr)
  sql>select * from sys.transport_set_violations;
  
  sql>alter tablespace users read only
  
  SQL>host expdp system/oracle DIRECTORY=dump_dir DUMPFILE=transport.dmp TRANSPORT_TABLESPACE=users
  
  把transport.dmp文件拷贝目标服务器上
  
  在目标数据库上比照两个数据库的块大小,如不一样
  dest
  SQL>alter system set db_cache_size=20m;
  SQL>alter system set db_4k_cache_size=4M;
  
  impdp system/oracle DIRECTORY=dump_dir DUMPFILE=transport.dmp 

  


  TRANSPORT_DATAFILES=d:\oracle\oradata\orcl\users.dbf   REMAP_SCHEMA=scott:hr 

  
  
  

---生产机导入开发机:
----1、删除开发机用户
drop user xxxx cascade;
drop user yyyy cascade;
---2、创建用户
create user xxxx identified by "xxxx" default tablespace stbss;
create user yyyy identified by "yyyy" default tablespace stbss;

---3、设置权限
grant connect,resource to xxxx,yyyy;
grant create user,drop user,alter user, create any view,drop any view to xxxx,yyyy;
grant exp_full_database,imp_full_database,dba,connect,create session to xxxx,yyyy;
----4、将DMP文件COPY到E:\****
----5、导入数据
打开命令行,输入:set ORACLE_SID=orcl
导入命令:
impdp yyyy/yyyy directory=**** dumpfile=xxxxxxx.dmp remap_tablespace=xxxxspace:stbss schemas=yyyy,xxxx

   




-EOF-

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-257015-1-1.html 上篇帖子: Oracle 11g R2 for Win7旗舰版(64位)的安装步骤 下篇帖子: Oracle 使用BBED 查看 ASM Disk Header 内容
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表