oracle数据备份与还原_第1页
oracle数据备份与还原_第2页
oracle数据备份与还原_第3页
oracle数据备份与还原_第4页
oracle数据备份与还原_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在Oracle11g及以上版本中建议使用数据泵来代替EXP和IMP实用程序,数据泵技术提供了许多新的特性,可以中断导出导入作业然后恢复作业的执行,从一个会话中监控数据泵取作业,在作业执行过程中修改作业属性,以及重启一个失败的数据泵取作业等。o 数据泵导入导出技术的结构 当启动数据泵导入或导出程序时,在数据库服务器端启动相应的服务器进程,完成数据的导入及导出任务,所以我们也称数据泵技术是基于Oracle数据库服务器的,导入及导出的数据文件也保存在数据库服务器端。数据泵取即EXPDP程序启动数据库服务器端的服务器进程,服务器进程完成数据的备份并将备份文件写入数据库服务器端的计算机磁盘空间,文件格式

2、filename.dat。导出的备份文件在导入时只能通过数据泵的导入实用程序IMPDP完成,将数据导入到运行在其他平台上的数据库中。 o 数据泵导入导出与EXP/IMP技术的区别 o Oracle数据泵技术是对传统的EXP和IMP实用程序扩展,使得在数据库服务器端快速的移动数据。这里我们给出二者的主要区别,使得读者在使用时根据需要有所取舍。o 数据泵技术比传统的EXP/IMP技术更快速的移动大量数据,因为数据泵技术采用并行流技术实现快速的并行处理。o 数据泵技术基于数据库服务器,在启动数据泵导入导出实用程序时在数据库服务器端产生服务器进程负责备份或导入数据,并且将备份的数据备份在数据库服务器端

3、。而且服务器进程与EXPDP客户机建立的会话无关。o 传统的EXP/IMP是类似于普通的用户进程,执行象SELECT、INSERT、CREATE等的SQL语句。而数据泵技术类似于启动作业的控制进程,不但启动客户端进程建立会话,还控制整个导入或导出过程,如重启作业。o 使用传统的EXP/IMP实用程序导出的数据格式与数据泵技术导出的数据格式不兼容。o 数据泵技术与传统的导入导出实用程序不同,它使用目录和目录对象存储数据泵导出文件,使用数据泵导出数据前必须先创建目录对象,否则无法使用数据泵导入和导出作业。数据泵技术比传统的导入导出程序具有更多的优点,o 数据泵导入导出技术的优点 o 导入导出速度更

4、快:因为在数据泵导入导出作业中可以启动多个线程,所以可以并行的实现作业,对于移动大数据量,性能显著提高。o 重启失败的作业:这个功能是传统的EXP/IMP程序无法实现的,不论是数据泵导入导出作业停止还是失败,都可以很容易的重启作业。同时也支持手动停止或重启作业。o 实时交互能力:在一个运行的数据泵作业中,可以从其他屏幕或控制终端与当前数据泵作业交互,以监控作业的执行以及更改作业的某些参数。o 独立于客户机:因为数据泵技术是基于数据库服务器的,它是数据库服务器的一部分,一旦启动数据泵作业,则与客户机无关。o 支持网络操作:支持在两个联网的数据库服务器之间导入和导出数据文件,也支持直接的将数据从一

5、个数据库导入另一个数据库,而不需要备份文件。网络操作的方式基于数据库连接,在数据库间直接移动数据的方法不需要磁盘存储。导入功能更加细粒度:在数据泵技术中,使用INCLUDE和EXCLUDE参数使得数据泵实用程序可以导入或导出更加细粒度的对象,如可以选择只导出过程或函数等。o 数据泵导入导出的目录对象 ü 数据泵作业在数据库服务器上创建所有的备份文件,而Oracle要求数据泵必须使用目录对象,以防止用户误操作数据库服务器上特定目录下的操作系统文件。目录对象对应于操作系统上的一个指定目录。ü 如果当前用户是DBA用户,可以使用默认的目录对象而不必再创建数据泵操作的工作目录。此时

6、,数据泵作业会将备份文件、日志文件以及SQL文件存储在该目录下,我们使用如下指令查找该默认目录。 SQL> select * 2 from dba_directories 3 where directory_name ='DATA_PUMP_DIR'OWNER DIRECTORY_NAME DIRECTORY_PATH- - SYS DATA_PUMP_DIR F:appAdministraoradminorcldpdump o 不具备目录对象时的错误提示D: expdp scott/tigerorclExport: Release11.1.0.6.0 - Product

7、ion on 星期四, 27 8月, 2009 18:45:08Copyright (c) 1982, 2007, Oracle. All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsORA-39002: 操作无效ORA-39070: 无法打开日志文件。ORA-39145: 必须指定目录对象参数且不能为空o 用户创建自己数据泵备份目录的步骤,以SCOTT用户

8、创建目录对象为例:1.向SCOTT用户授权SQL> conn system/oracleorcl已连接。SQL> grant create any directory to scott;2.创建目录SQL> conn scott/tigerorcl已连接。SQL> create directory scott_pump_dir as d:/scottpumpdir; o 数据泵导出(EXPDP)概述及参数含义 o 数据泵导出EXPDP类似于传统的EXP实用程序导出数据,使用EXPDP允许挂起和恢复作业,并且实现与正在运行的作业交互,可以从正在运行的导出作业中分离,也支持

9、从失败或终止的作业中重启。o 使用EXPDP使得导出是对象选择的粒度更细,并提供并行处理,使用多个数据流导出数据,允许控制导出操作使用的线程数,EXPDP支持两种数据访问方法,即使用外部表和直接路径访问方法。使用外部表允许数据库服务器从操作系统文件中读取数据,而直接路径方法使用直接路径API,它很好的改善了导出导入的性能,因为其内部流的数据格式和存储在备份文件中的数据格式相同,减少了数据转换的时间。o EXPDP提供了三种提取数据的方法,一是只提取数据库中的元数据即数据库对象的定义,二是只提取数据库中的数据而忽略数据库对象的定义,三是同时提取数据库中的元数据和数据。o EXPDP实用程序参数。

10、D:>expdp help=y ü ATTACH:说明EXPDP附加到一个正在运行的现有的EXPDP作业。方式为ATTACH = JOB_NAME;ü CONTENT:说明要导出的数据是元数据还是数据,或者包括元数据和数据,选项包括ALL、DATA_ONLY和METADATA_ONLY。ü DIRECTORY:说明要导出的备份文件,日志文件和SQL文件的存储目录,此时必须事先创建该目录对象,当然可以将其他用户创建的目录对象赋予该当前用户。否则无法启动EXPDP程序。ü DUMPFILE:导出的备份文件的文件名,格式为FILENAME.DMP。 &#

11、252; ESTIMATE:计算EXPDP导出作业的导出文件的大小,选项包括基于BLOCKS或者基于STATISTICS,其中BLOCKS基于数据库块大小的倍数计算备份文件大小,而基于STATISTICS使用当前对象的统计量来计算到导出的备份文件的大小。ü ESTIMATE_ONLY:在EXPDP没有实际地导出作业时估计导出文件的大小,该参数的值为Y或N。 ü EXCLUDE:排除不需要导出的特定对象类型,如EXCLUDE=TABLE:DEPT,对于任何不导出的对象,也不会导出与它有依赖关系的对象,如不导出表,也不会导出和表相关的任何索引、过程和约束等。ü FLA

12、SHBACK_SCN:允许在导出数据库时使用数据库闪回特性,此时EXPDP使用规定的SCN进行闪回。ü FULL:说明是否导出整个数据库对象,如果该参数为Y,说明导出数据库的所有对象。ü INCLUDE:说明要导出的特定对象类型,此时会导出该参数指定的对象和与它们有依赖关系的对象。ü JOB_NAME:为了便于管理运行的EXPDP作业设置当前作业的名字。系统默认的命名格式为sys_operation_mode_nn。如导出SCOTT用户的元数据,此时的作业名字为"SCOTT"."SYS_EXPORT_SCHEMA_01"。&

13、#252; LOGFILE:说明在导出操作时记录导出过程的日志文件名,其默认名为export.log,和导出文件保存在相同的目录下,即directory参数指定的目录。ü PARALLEL:说明在导出作业时最大的线程数,实现导出作业的并行处理。也可以在作业运行总使用ATTACH改变并行度,PARALLEL参数的默认值为1,表示使用单线程导出单独个备份文件,如果设置多个工作线程,则要指定相同数量的备份文件,这样多个线程可以同时写多个备份文件。给出一个例子,设置并行度为2。 ü QUERY:允许使用SQL语句程序过滤导出的数据,在Oracle11g中,允许使用表名限定SQL语句

14、,使得SQL语句适用于特定的表,如下所示。QUERY=SCOTT.EMP:”WHERE SAL>3000”。说明表EMP中工资SAL大于3000的表被导出。ü SCHEMAS:说明要导出数据的模式,该模式列表可以有多个,使用逗号隔开,如果登录的用户不是导出数据的模式,则登录用户必须拥有exp_full_database的权限。ü STATUS:该参数在给定的时间间隔内给出作业的状态,该参数以秒为单位,默认值为0。 ü TABLES:说明要导出数据库表的列表,此时也会导出与表有依赖关系的对象。ü TABLESPACES:说明要导出的数据库表空间的列表

15、,同时会导出其他表空间中这些表空间中的表有依赖关系的所有对象。ü VERSION:说明要导出的数据库对象到特定版本的数据库。该参数很好的解决了数据库的对象从高版本迁移到低版本的数据库过程中的版本兼容问题。o 交互式参数ü ADD_FILE:向导出备份文件集中增加文件以增加目录空间。如在一个作业运行期间输入CTRL+C组合键切换到交互式导出提示EXPORT>。如果该作业因为备份文件的空间不足导致停止,可以使用ADD_FILE命令增加文件到导出目录中。Export>add_file = data_dump_dir:expdata02.dmp;ü STOP_

16、JOB:停止运行的数据泵作业,数据库服务器端的导出数据服务器进程终止。 ü START_JOB:重新恢复由于某种意外导致停止的数据泵作业。ü KILL_JOB:杀死客户机进程和数据泵作业(服务器进程)。ü CONTINUE_CLIENT:退出交互方式(EXPORT方式)恢复正在运行地导出数据泵作业,实际的数据泵作业不受影响。ü EXIT_CLIENT:停止交互式会话并终止客户机会话,但是实际的数据泵作业不受影响,此时用户可以在当前窗口中继续其他操作 o 数据泵导出(EXPDP)数据库实例 ü 导出整个数据库,我们使用SYSTEM用户登录数据库,

17、限制备份的数据文件的大小为100M,一旦备份数据文件满,则自动创建一个新的备份文件,使用了替换变量%U来实现备份文件的自动创建,其中NOLOGFILE=Y即不记录备份过程。例子25-23 使用EXPDP导出整个数据库F:>expdp system/oracleorcl dumpfile = pump_dir:mydb3_%u.dat filesize = 100m nologfile = y job_name =tom full = y ü 导出一个模式我们导出SCOTT模式,在下例中没有SCHEMA参数,但是默认导出登数据库时的模式对象。例子25-24使用EXPDP导出一个S

18、COTT模式。D:>expdp scott/tigerorcl directory =pump_dir dumpfile=scottschema.dmp logfile =scottschema.log;o 数据泵导出(EXPDP)数据库实例ü 导出特定的表,此时使用TABLES参数指定导入的表的列表,如果该表不属于登录的用户,但是登录用户有访问这些表的权限,则在TABLES参数的表必须使用schema.tablename的方式。例子25-25 使用EXPDP导入特定的表。F:>expdp system/oracleorcl dumpfile = pump_dir:sco

19、tt_tables_%u.dat tables=scott.emp,scott.dept nologfile=y job_name=only_scott ü 导出表空间,导出指定表空间使用TABESAPCES参数,如果有多个表空间需要导出,表空间名使用逗号隔开,这里我们使用了PARALLEL参数,指定数据导出并行线程数量,与之对应使用替换变量%U来创建相应数量的备份数据文件,这样每个线程可以独立写一个备份数据文件,提高了导出速度。例子25-26 使用EXPDP导出指定的表空间。D:>expdp system/oracleorcl dumpfile=pump_dir:users_

20、tbs_%u.dmp tablespaces=users filesize=100m parallel=2 logfile=users_tbs.log job_name =exp_users_tbs o 数据泵导出(EXPDP)数据库实例ü 只导出数据,使用EXPDP的CONTENT参数,可以指定导出表数据和元数据(对应参数ALL),导出表行数据(对应参数DATA_ONLY)或只导出元数据即表以及其他数据库对象的定义(对应参数METADATA_ONLY)。例子25-27 使用EXPDP只导出数据行。F:>expdp system/oracleorcl dumpfile =pum

21、p_dir:mydb_dataonly_%u.dat filesize=100m job_name=larry full=y content =data_only logfile =pump_dir:mydb_exp_dataonly_log o 使用参数文件使用参数文件:在使用EXPDP导出数据时,由于参数很多导致每次执行备份都输入一长串指令,这样不但繁琐而且不易修改,Oracle的数据泵技术允许使用参数文件,用户事先在参数文件中创建各种参数,保存该文件为praname.par文件,然后在执行导出时使用参数PARFILE指定参数文件的位置执行导出备份,这样就不用输入一长串参数指令。首先我们建

22、立参数文件如下:directory =pump_dirdumpfile=para_data_only_%u.dmpcontent =data_onlyexclude =table:"in('salgrade','bonus')"logfile=para_data_only.logfilesize=50mparallel=2job_name =para_data_onlyü 保存在文件EXP.PAR内,然后在使用EXPDP备份数据时,可以使用该参数文件,如下所示。D:>expdp scott/tigerorcl parfile=

23、exp.par使用参数PARFILE说明参数文件的位置必须说明绝对路径。o 估计空间导出文件的空间大小,EXPDP使用参数ESTIMATE_ONLY计算导出数据所需要的存储空间,显然这是个有用的参数,在导出的数据大小不清楚时,事先知道备份文件的大小,可以提前分配磁盘空间,防止由于磁盘空间不足而引起的EXPDP导出作业停止。ü 使用EXPDP导出数据时只计算导出作业所需要的空间。f:>expdp system/oracleorcl full =y estimate_only=y estimate=statistics nologfile=yo 数据泵导入(IMPDP)概述及参数含

24、义 o Oracle数据泵导入实用程序(IMPDP)将备份的数据导入到整个数据库、特定的模式、特定的表或者特定的表空间,使用IMPDP也可以在不同平台的数据库之间迁移表空间。IMPDP实用程序通过各种参数支持对数据过滤以及对元数据的过滤,而元数据的过滤可以有效控制要导入的对象类型,如导入表、索引还是授权等等。使用数据泵导入实用程序与数据泵导出实用程序一样可以使用DIRECTORY、PARFILE、DUMPFILE和LOGFILE等参数,但是正如ADD_FILE是数据泵导出EXPDP实用程序专有的一样,SQLFILE参数也是数据泵导入IMPDP实用程序所专有的。在执行数据泵导入作业时,往往需要从

25、备份数据文件中途提取DDL语句,此时需要使用SQLFILE。o 数据泵导入参数(1)目录和文件相关参数ü DIRECTORY:说明备份文件、日志文件和SQL文件的目录对象,如果没有定义目录,则会使用PUMP_DIR的默认值。ü DUMPFILE:说明备份文件名,如导入数据时需要多个备份文件,则用逗号分隔这些文件名,在DUMPFILE参数后可以使用包括目录,如DUMFILE=PUMP_DIR:BACKUP.DMP,也可以使用替换变量(%U)告诉IMPDP可以使用多个备份文件。如DUMPFILE=PUMP_DIR:BACKUP_%U.DMP。ü PARFILE:说明参

26、数文件,IMPDP使用外部定义一个参数文件执行导入行为,该参数文件是本地的,使用时需要告诉IMPDP参数文件的绝对位置。如ü D:IMPDP SYSTEM/ORACLEORCL PARFILE=D:PAREXP.PARü LOGFILE:说明使用日志文件保存导入过程的信息,该参数的值是日志文件的名字名,如LOGFILE =MYLOG.LOG。ü NOLOGFILE:说明不使用日志文件记录导入过程,如NOLOGFILE=Y。ü SQLFILE:说明从备份文件中提取SQL的DDL语句,并写入该参数设置的文件中,如SQLFILE=MYSQLFILE.SQL。该

27、文件默认保存在DIRECTORY参数设置的目录对象中。 o 数据泵导入参数o (2)过滤参数ü INCLUDE:说明要导入的特定对象,如只导入表,此时会导入和导入特定对象有依赖关系的对象如索引、触发器等。下面是使用INCLUDE参数的例子,说明只允许导入表对象,且只有两个表可以导入。INCLUDE=TABLE: "IN (EMP,DEPT) "也可以使用QUERY参数过滤要导入的表数据,此时数据泵导入作业使用外部表数据方法访问数据,而不是采用直接路径方法。如下所示。INCLUDE=TABLE: "IN (EMP,DEPT) "QUERY=EMP

28、: "WHERE sal>3000 ORDER BY sal"ü TABLE_EXITS_ACTION:该参数说明当导入的表已经存在时,IMPDP导入程序的行为,参数TABLE_EXITS_ACTION有四个值,SKIP表示如果该表存在则跳过该表,它是默认值;APPEND将导入的数据行附加到当前存在的表中;TRUNCATE截断表并从导入数据文件中重新装载数据;REPLACE删除存在的表然后重建该表并导入数据。ü EXCLUDE:在导入操作中排除特定的元数据,如不导入特定的表,此时也不会导入和排除对象有依赖关系的其他对象。如下所示告诉IMPDP程序不

29、导入表EMP和DEPT。(3)导入作业参数ü JOB_NAME:说明导入作业名,IMPDP提供了很多可管理性如停止作业和恢复作业,附加(ATTACH)到特定的作业,都需要作业名来关联导入作业。ü PRALLEL:说明当前导入作业的线程数。该值的默认值为1。ü STATUS:监视导入作业的状态频率,该参数的默认值为0(4)导入方式参数ü TABLES:说明允许导入指定的表,如果有多个表使用逗号分隔开,同时也导入与这些表有依赖关系的对象,如索引、触发器和函数等。ü SCHEMAS:说明要导入的模式列表,要使用该参数登录数据库的用户必须拥有imp_f

30、ull_database的权限。ü TABLESPACES:说明要导入的表空间的列表,在导入这些表空间的同时也要求导入与表空间有依赖关系的所有数据库对象。FULL:说明要导入整个数据库。该参数的默认值为n。(5)重新映射参数重新映射使得在数据导入过程中将数据从一个数据库对象移动到另一个数据库对象,可以映射模式,映射数据文件和映射表空间,映射可以理解为“数据对象移动”。ü REMAP_SCHEMA:重新映射模式,可以将对象从一个模式移动到另一个模式,D:>impdp system/oracleorcl dumpfile =pump_dir:SHCEMA_SCOTT.DM

31、P remap_schema=scott:linzi上例将SCOTT模式下的所有数据库对象移动到LINZI模式下,这样使用LINZI模式登录数据库,就可以使用SCOTT用户的所有数据库对象。我们通过下例验证重映射模式的结果。ü REMAP_DATAFILE:在导入数据时,重新定义数据文件的名称和目录。如下所示。D:impdp system/oracleorcl directory=pump_dir dumpfile=backup_full.dmp remap_datafile='c:mydb.dbf':'d:mydbnewdb.dbf ü REMAP

32、_TABLESPACE:重映射表空间使得将数据对象从一个表空间移动到另一个表空间。如下所示。D:impdp system/oracleorcl remap_tablespace='users':'mynewusers' directory=pump_dir dumpfile=backup_full.dmp(6)转换参数ü TRANSFORM:该参数说明在导入数据泵作业时可以选择导入某个对象的存储参数或其他属性值,如导入表时,不导入该表的存储属性等。o TRANSFORM参数的语法如下所示:TRANSFORM= transform_name:value:

33、object_typeo 下面我们介绍各个部分:1、transform_name:转换名由四个选项组成,代表四种基本的对象特征。其中SEGMENT_ATTRIBUTES段属性包括物理属性、存储参数、表空间等,该参数的值为Y或N,如果选择SETMENT_ATTRIBUTES=Y则说明导入作业包括对象的这些属性;STORAGE存储属性说明是否导入对象的存储属性,如果STORAGE=Y说明对象的存储属性作为导入作业的一部分。OID说明是否分配新的OID给对象表。PCTSPACE:提供一个正数值,可以增加对象的分配尺寸。2、value:转换名的值中前三个值即SEGMENT_ATTRIBUTES、STO

34、RAGE和OID默认值为Y,说明默认数据泵导入对象的存储属性,和段属性。而PCTSPACE取一个正数值。3、object_type:对象类型说明需要转换那些类型的对象,这些类型包括表、索引、表空间以及约束等。(7)闪回参数ü FLASHBACK_SCN:使用Oracle的闪回特性,允许导入和闪回SCN接近的数据。ü FLASHBACK_TIME:使用Oracle的闪回特性,允许导入和指定闪回时间接近的数据。(8)与可移植表空间有关的参数Oracle的可移植表空间使得将数据从一个数据库移动到另一个数据库非常容易,可以方便的将一个数据库表空间中的数据迁移到其他数据库中的表空间中

35、。ü TRANSPORT_TABLESPACES:说明要迁移的表空间列表。ü TRANSPORT_FULL_CHECK:迁移表空间时,检查迁移表空间内的对象与迁移表空间外的对象是否有依赖性,该参数只有在使用NETWORK_LINK参数时才有效。ü TRANSPORT_DATAFILES:在执行表空间导入时,目标数据库将使用源数据库中拷贝过来的数据文件作为可以移植表空间的数据文件。该参数说明数据文件名。 (9)交互模式参数数据泵导入的交互参数和数据泵导出的交互参数功能是一样的,在数据泵导入参数中没有ADD_FILE参数,它只对数据泵导出程序有效,而其他参数以及切换到

36、交互模式数据泵导入与导出是一样的。ü PARALLEL:说明当前作业的活跃WORKER数量。ü CONTINUE_CLIENT:在切换到交互模式后,返回记录模式。ü EXIT_CLIENT:退出客户登录模式,但是不终止导入作业。ü KILL_JOB:分离或删除当前导入作业。ü START_JOB:在导入作业被意外终止后,可以重启或恢复当前作业。ü STATUS:监视当前导入作业的状态,该参数是一个整数值,默认值为0,如果设置STATUS=5,说明每5秒钟刷新一次导入作业的状态信息。ü STOP_JOB:关闭当前执行的作业并退出客户端,如果有多个导入作业,则顺序关闭这些作业。如果设置STOP_JOB=IMMEDIATE将立即关闭数据泵作业。o 数据泵导入(IMPDP)数据库实例 o (1)导入整个数据库o 导入整个数据库至少需要两个参数,一个是FULL,设置FULL=Y说明是导入全库,一个是DUMPFILE,说明要导入的备份文件的目录和名称,当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论