Oracle数据库开发实用教程第10章.ppt
第10章 Oracle数据库的逻辑备份,学习要点EXP/IMP 命令的使用EXPDP/IMPDP 命令的使用,本章主要内容导出/导入Oracle 的数据泵技术EXP/IMP和EXPDP/IMPDP的区别,10.1 数据导出导入数据库的导入导出实用工具IMP和EXP是 Oracle 9i版本以前的逻辑备份与恢复方式,但是在Oracle 9i和Oracle 10g以后仍然保留了这个功能。利用Export可将数据从数据库中提取出来,利用IMP则可将提取出来的数据送回Oracle数据库中去,分为简单导入导出和增量导入导出,数据导入导出模式分为三种模式:表方式、用户方式和全数据库方式,10.1.1 数据导出EXP1数据导出方法(1)交互式。CIMP这样会在后面的执行中边执行导入边要求回答问题。(2)命令行方式。CEXP 用户名/密码SERVICE 参数=VALUE其中:用户名/密码:是连接目标数据库的用户和密码。SERVICE:要连接的目标数据库名称。参数:如表10-2所示。,表10-2 EXP和IMP命令参数表,2数据导出模式表方式,将指定表的数据导出。命令行使用TABLES选项来完成。(1)导出表是使用EXP工具将一个或多个表的结构和存储的数据导出到操作系统文件中。一般用户可以导出自己方案的表,如果要导出其他用户的表,则要求该用户必须具有EXP_FULL_DATABASE角色或DBA角色。,(2)用户方案方式,将指定用户的所有对象及数据导出。命令行使用OWNER选项来完成。【例】将数据库中system用户与sys用户的表导出。SQLexp system/managerTEST file=d:daochu.dmp owner=(system,sys)(3)数据库方式,将数据库中的所有对象导出。命令行使用FULL选项来完成。,(4)增量导出。增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYSTEM来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名缺省为export.dmp,否则必须在命令行中指出要用的文件名。增量导出包括三个类型:“完全”增量导出、“增量型”增量导出、“累计型”增量导出。【例】“完全”增量导出。即备份整个数据库。C EXP system/manager inctype=complete file=990702.dmp,10.1.2 数据导入IMP1数据导入方法数据导入(Import)的过程是数据导出(Export)的逆过程,它们的数据流向不同。(1)交互式。CIMP这样会在后面的执行中边执行导入边要求回答问题。(2)命令行方式。C IMP 用户名/密码SERVICE PARA=VALUE PARA=VALUE其中:SERVICE:数据库名称。PARA:导入参数,2数据导入模式数据导入分为四种模式:表模式、用户模式、数据库模式、增量模式。(1)导入表。【例】将导出文件d:daochu.dmp中的表table1导入。SQLIMP system/managerTEST file=d:daochu.dmp tables=(table1)基本上上面的导入导出够用了,不少情况下我是将表彻底删除,然后导入。(2)导入用户方案。如果导入用户自己的方案使用用户名/密码和FILE 选项即可。如果把数据导入其他用户中,则必须具有DBA权限或IMP_FULL_DATABASE角色。【例】用户导入自己的方案。CIMP sunny/passTEST FILE=SAMPLE.DMP,(3)导入数据库。导入数据库使用FULL选项来完成。【例】利用导出文件SAMPLE.DMP把数据导入数据库TEST。CIMP sunny/passTEST FILE=SAMPLE.DMP FULL=Y,(4)增量导入。【例】如果在星期日,数据库遭到意外破坏,数据库管理员可按以下步骤来恢复数据库。1)用命令CREATE DATABASE重新生成数据库结构。2)创建一个足够大的附段。3)完全增量导入A。Cimp system./manager inctype=RECTORE FULL=Y FILE=A4)累计增量导入E。Cimp system/manager inctype=RECTORE FULL=Y FILE=E5)最近增量导入F。Cimp system/manager inctype=RESTORE FULL=Y FILE=F,10.2 Oracle的数据泵技术,10.2.1 概述Oracle 10g中增加了一个数据逻辑备份的方法,叫做数据泵,这是一种新的导入和导出特性,它彻底改变了数据库用户已经习惯的过去几代 Oracle 数据库的客户/服务器工作方式。现在服务器运行导出和导入任务,可以通过并行方式快速装入或卸载大量数据。,10.2.2 导入导出方法与目录对象,当作为一个没被授权的用户进行导入时,你需要连接到目标模式。如果你拥有 IMP_FULL_DATABASE 角色,那么你可以用自己的身份登录,然后导入到任何目标模式。数据导入导出模式分为如下四种模式:表方式、用户方式、表空间模式和全数据库方式,所以如果要使用数据泵对数据库进行导入导出,需要如下几个步骤:(1)建立目录对象。(2)将目录对象授权给要执行导入导出的用户。(3)此用户进行导入导出。1建立目录对象目录对象就是转储文件和日志文件的位置。【例】创建目录对象export_dumps,使它指向物理目录c:a。SQLCREATE DIRECTORY export_dumps AS c:a;2将目录对象授权给用户【例】把read和write权限授权给用户user_abc,使得此用户可以对目录对象export_ dumps有读和写的权限。SQLGRANT read,write ON DIRECTORY export_dumps TO user_abc;,10.2.3 数据导出EXPDP1导出一个表【例】把用户SCOTT的两个表,即部门表DEPT和职工表EMP导出到文件EXP1.DMP中,其目录对象为 DUMP。C:EXPDP SYSTEM/ORACLE DIRECTORY=DUMPDUMPFILE=EXP1.DMP TABLES=SCOTT.DEPT,SCOTT.EMP;,2导出表空间【例】导出一个表空间USER01的所有对象。C:EXPDP SYSTEM/ORACLE DIRECTORY=DUMP DUMPFILE=A.DMP TABLESPACE=USER01;3导出数据库【例】导出数据库。C:EXPDP SCOTT/TIGER DIRECTORY=DUMP DUMPFILE=DUMP.DMP FULL=Y4导出用户方案【例】导出用户SYSTEM和SCOTT的所有对象方案。C:EXPDP SYSTEM/ORACLE DIRECTORY=DUMP DUMPFILE=A.DMP SCHMAS=SYSTEM,SCOTT;,10.2.4 数据导入IMPDP1导入表【例】导入表DEPT和EMP。C:IMPDP SCOTT/TIGER DIRECTORY=DUMP_DIR DUMPFILE=AA.DMP TABLES=DEPT,EMP;2导入用户方案【例】导入用户SCOTT的所有对象。C:IMPDP SCOTT/TIGER DIRECTORY=DUMP_DIR DUMPFILE=AA.DMP SCHEMAS=SCOTT;,3导入数据库【例】利用转储文件AA.DMP和目录对象DUMP_DIR导入整个数据库C:IMPDP SCOTT/TIGER DIRECTORY=DUMP_DIR DUMPFILE=AA.DMP FULL=Y;4导入表空间USER01【例】利用转储文件AA.DMP 和目录对象DUMP_DIR导入USER01表空间。C:IMPDP SCOTT/TIGER DIRECTORY=DUMP_DIR DUMPFILE=AA.DMP TABLESPACES=USER01;,(1)EXP和IMP 是客户端工具,用于客户端和服务器端。(2)EXPDP和IMPDP是服务器端工具,只能用于服务器端。,10.3 EXP/IMP和EXPDP/IMPDP区别,10.5 本章小结,Oracle数据导入导出IMP/EXP就相当于Oracle数据还原与备份。大多数情况下都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。EXP命令可以把数据从远程数据库服务器导出到本地的DMP文件,IMP命令可以把DMP文件从本地导入到远程的数据库服务器中。本章主要介绍了传统的数据导入导出工具的使用和数据泵导入导出的方法。EXP和IMP 是客户端工具,用于客户端和服务器端。EXPDP和IMPDP是服务器端工具,只能用于服务器端。,