oracle11G第8章备份和恢复_第1页
oracle11G第8章备份和恢复_第2页
oracle11G第8章备份和恢复_第3页
oracle11G第8章备份和恢复_第4页
oracle11G第8章备份和恢复_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

1、清华大学出版社清华大学出版社http:/ Oracle10g 数据库技术数据库技术普通高等教育普通高等教育 “十一五十一五”国家级规划教材国家级规划教材孟德欣孟德欣 主编主编黄伟文黄伟文 谢二莲谢二莲 王先花王先花 副主编副主编第第8章章 备份和恢复备份和恢复8.1 备份和恢复概述8.2 脱机备份和恢复8.3 联机备份和恢复8.4 导出和导入8.5 数据泵技术8.6 在OEM中导入导出数据8.7 恢复管理器8.8 闪回技术8.9 SQL*LOADER工具的使用8.1 备份和恢复概述备份和恢复概述由于计算机系统的故障,数据库有时可能遭到破坏,这时如何尽快恢复数据就成为当务之急。如果平时对数据库做

2、了备份,那么此时恢复数据就显得很容易。Oracle数据库系统的备份和恢复机制就是一项有利措施。备份和恢复指为保护数据库免于数据破坏或在发生数据破坏后进行数据重建的各种策略和步骤。所谓备份是指对重建数据库的数据所建立的副本,恢复指利用备份的数据进行重建数据库的过程。Oracle系统提供了物理备份和逻辑备份两种备份方式。物理备份指对构成数据库的各种物理文件建立副本,这里的物理文件指数据文件、控制文件及归档日志文件等,Oracle系统允许把这些物理文件的副本存放在备份设备上,所谓备份设备指用于放置数据库备份的磁带或磁盘等。逻辑备份指导出数据库对象,如表、表空间、过程等数据库对象。逻辑备份的结果以Or

3、acle提供的内部格式写入操作系统支持下的二进制文件,重建数据库时只需把这个二进制文件导入数据库中即可。 8.1.1 数据库故障类型数据库故障类型 1系统故障系统故障:系统故障指系统在运行过程中,发生操作系统错误、突然停电等意外情况,造成所有正在运行的事务都以非正常方式终止,内存缓冲区中的数据全部丢失,但磁盘、磁带等外设上的数据未受损失。通常情况下,在数据库重新启动时,恢复程序按照日志文件的记录项自动完成恢复操作。因此系统故障的恢复一般不需用户进行干预。2介质故障介质故障:介质故障指系统在运行过程中,由于硬件设施发生损坏,造成数据库中的数据全部或部分丢失。介质故障的危害性最大,但发生的可能性较

4、小。介质故障的恢复,需要由数据库管理员手工装入最新的数据库备份和日志文件备份,并执行恢复命令。3用户故障用户故障:用户故障指系统在运行过程中,可能由于应用程序的错误或手工误操作,造成数据库中的数据被删除或损坏。例如删除数据库中的重要的表,或者误修改了表中的数据。用户故障的恢复可以设置合理的恢复策略,由系统按照日志文件记录的内容进行恢复,或者使用闪回功能,这都需要管理员手工进行干预。8.1.2 备份与恢复的内容备份与恢复的内容一般说来,在Oracle数据库系统中,需要备份和恢复下面4种文件。1数据文件2控制文件3各种参数文件4日志文件 8.1.3 数据库备份的分类数据库备份的分类数据库备份按照备

5、份方式,分为物理备份和逻辑备份。其中,物理备份又分为脱机备份(冷备份)和联机备份(热备份)。脱机备份最简单,必须在关闭数据库的情况下备份,用户不能访问数据库。联机备份指在数据库运行开期间就可以备份,用户仍可以访问数据库。联机备份的实现比较复杂,数据库必须运行在归档模式下。联机备份可以使用脚本或在RMAN中利用备份向导来实现。逻辑备份指将数据库对象以Oracle提供的内部格式写入操作系统支持下的二进制文件。逻辑备份比较灵活,可以指定对特定对象的备份,通常用于转储数据。逻辑备份用EXP命令,逻辑恢复命令为IMP。此外,Oracle 10g还提供功能更完善的数据泵技术,即使用EXPDP和IMPDP命

6、令实现。按照备份工具分类,数据库备份可以分为OS(操作系统)拷贝、EXP/IMP、EXPDP/IMPDP、RMAN及第三方工具备份。按备份的增量分类,数据库备份可以分为全库备份、增量备份和累计增量备份。 8.1.4 备份与恢复策略备份与恢复策略在设计Oracle系统的备份与恢复策略时,应该从以下三个方面来维护数据库的可恢复性。l1)使数据库的损坏次数减到最少,从而使数据库保持最大的可用性。l2)当数据库不可避免地损坏后,要使恢复时间减到最少,从而使恢复的效率达到最高。l3)当数据库损坏后,要确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的可恢复性。在具体实施过程中,制定一个切实可行的备份

7、和恢复策略,应把握以下几点。l1)在数据库结构发生改变时,应该进行一次数据库备份。l2)周期性、有计划地进行数据库备份。备份过程应该保证数据库系统的可恢复性和可用性。如果数据库有较长的关机时间,则可以每周进行一次冷备份,并归档重做日志,对于关键行业的24*7的数据库系统考虑热备份。如果每天都能备份当然会很理想,但要考虑其现实性。8.1.4 备份与恢复策略备份与恢复策略l3)对于关键行业数据库,选择运行模式为归档模式,对于一般的数据库系统或正处于开发和调试的数据库可以采用非归档模式。归档模式可以在数据库发生故障时最大限度恢复数据库,保证不丢失任何已提交的数据,而非归档模式只能恢复数据库到最近的检

8、查点。l4)绝对保证备份设备的安全性。无论采用哪种备份方式,备份设备都应该与当前正在运行的数据库系统所在的磁盘分离,这样就可以保证当数据库发生介质故障时,也不会对备份在备份设备上的数据库备份产生影响。 8.2 脱机备份和恢复脱机备份和恢复如果数据库运行在非归档模式下,则只能进行脱机备份。脱机备份是一种完全备份,即对整个数据库文件的备份。执行脱机备份的过程是首先关闭数据库,然后将数据文件、控制文件和参数文件等拷贝到备份设备上,接着重新启动数据库即可。可以把脱机备份的过程写入一个脚本文件中,自动执行这一过程,或者在RMAN(Recovery Manager,恢复管理器)中来实现。8.2.1 脱机备

9、份脱机备份1确定要备份的文件名称和路径确定要备份的文件名称和路径在进行脱机备份之前,首先确认要备份的数据文件、控制文件等的名称和路径。lSQL SELECT FILE_NAME FROM DBA_DATA_FILES;lSQL SELECT NAME FROM V$CONTROLFILE;lSQL SELECT MEMBER FROM V$LOGFILE;2关闭数据库关闭数据库关闭数据库包括关闭运行在Oracle数据库上的应用程序和所有第三方软件。在Oracle企业管理器中关闭数据库例程,或在SQL*Plus中使用以下命令以正常方式关闭数据库。lSQL CONN SYSTEM/ORCL AS

10、SYSDBAlSQLSHUTDOWN NORMAL8.2.1 脱机备份脱机备份3复制数据库文件复制数据库文件复制整个数据库文件到存储介质上,要保证存储介质的安全及与当前数据库所在磁盘的分离。使用操作系统命令复制数据库的全部数据文件、控制文件,将所有这些文件存放到指定的磁盘目录下。假定备份文件暂存在F:Backup目录下,如使用下面的语句完成复制。lSQL$COPY C:ORACLEPRODUCT10.2.0ORADATAORCLUSERS01.DBF F:Backupl。4重启数据库重启数据库lSQL STARTUP经过上面的三步,完成数据库的脱机备份。脱机备份的优点在于过程简单。但其缺点也是

11、显而易见的,许多关键行业的数据库运行在7*24模式下,数据库不允许停止服务,此时并不适合于做脱机备份,这就需要联机备份。 8.2.2 脱机恢复脱机恢复脱机恢复的步骤比较简单,可以分为以下三个步骤。l1)关闭数据库。采用前面所述的方法。l2)将复制到F:BACKUP目录下的文件重新复制到原来的位置。l3)重新启动数据库。8.3 联机备份和恢复联机备份和恢复8.3.1 切换到归档模式切换到归档模式正如前面所讲的一样,数据库实现联机备份和恢复必须运行在归档模式下,如果当前数据没有运行在归档模式下,可以通过下面的步骤切换到归档模式下。首先,关闭数据库,使用下面的命令。lSQLCONNECT SYSTE

12、M/ORCL AS SYSDBAlSQLSHUTDOWN IMMEDIATE注意,这里登录方式一定是SYSDBA。接着启动例程,装载数据库。使用STARTUP MOUNT命令,此时数据库还没有打开。切换数据库的运行模式时,必须装载数据库但不打开数据库。lSQLSTARTUP MOUNT最后切换到归档模式,并打开数据库。使用下面的命令切换到归档模式并打开数据库。lSQLALTER DATABASE ARCHIVELOG;lSQLALTER DATABASE OPEN;8.3 联机备份和恢复联机备份和恢复在将数据库切换到归档模式后,可以使用下面的语句进行确认。lSQLARCHIVE LOG LIS

13、T;在Oracle 10g中,归档日志文件默认的存储路径放在快速闪回区中,也就是 “use_db_recovery_file_dest”,通过修改初始化参数log_archive_dest_n,这里的n从1到10,可以为归档日志文件最多指定10个不同的路径,从而生成10个副本。8.3.2 用命令方式实现联机备份用命令方式实现联机备份在SQL*Plus中使用SQL命令可以实现联机备份。联机备份包括对表空间、控制文件、归档日志文件以及参数文件和密码文件等。由于参数文件和密码文件的备份只需直接复制到备份设备即可,下面重点介绍对表空间、控制文件的备份。1为部分或全部表空间备份为部分或全部表空间备份联机

14、备份中对于表空间的基本操作步骤如下:1)在为表空间复制文件之前,需要设定要备份的表空间为热备份模式,通过下面的命令来实现。lSQLALTER DATABASE 表空间名称 BEGIN BACKUP2)复制处于热备份模式下的表空间所对应的所有数据文件lSQL$COPY 数据文件名称 备份目录3)复制完成后,再将该表空间设置为非热备份模式,执行下面的命令。lSQLALTER DATABASE表空间名称END BACKUP8.3.2 用命令方式实现联机备份用命令方式实现联机备份4)对每个表空间,依次执行上面的三步。5)强制进行一次日志切换,归档当前联机日志文件。lSQLALTER SYSTEM SW

15、ITCH LOGFILE; 6)备份所有的归档日志文件。下面的操作过程对SYSTEM和USER两个表空间进行备份。首先备份SYSTEM表空间。lSQL ALTER DATABASE SYSTEM BEGIN BACKUP;lSQL $COPY C:ORACLEPRODUCT10.2.0ORADATASYSTEM01.DBF F:BackuplSQL ALTER DATABASE SYSTEM END BACKUP;接着备份USER表空间。lSQL ALTER DATABASE USER BEGIN BACKUP;lSQL $COPY C:ORACLEPRODUCT10.2.0ORADATAUS

16、ERS01.DBF F:BackuplSQL ALTER DATABASE USER END BACKUP;8.3.2 用命令方式实现联机备份用命令方式实现联机备份2备份控制文件备份控制文件备份控制文件要以SYSDBA的身份登录数据库。Oracle对控制文件的备份可以采用下面两种形式。一种是直接复制控制文件,另一种是通过生成一个跟踪文件的方式复制控制文件。1)直接复制控制文件lSQLALTER DATABASE BACKUP CONTROLFILE lTO F:BackupCONTROL_BAK.CTL REUSE;如果备份的文件已经存在,必须指定REUSE选项。2)生成跟踪文件的方式复制控制

17、文件lSQL ALTER DATABASE BACKUP CONTROLFILE TO TRACE;此时,Oracle系统会在USER_DUMP_DEST所指定的目录下生成一个跟踪文件。该文件中就记录了重建控制文件的SQL语句。lSQL show parameter user_dump_dest;8.3.2 用命令方式实现联机备份用命令方式实现联机备份lSQL select spid from v$process where addr=(select paddr from v$session where sid=(select sid from v$mystat where rownum=1)

18、;在确定了SPID后,就可以在USER_DUMP_DEST所指定的目录下查找以_ORD_.TRC命名的跟踪文件。如笔者的数据库环境下,此文件命名为ORCL_ORA_1400.TRC。使用文本编辑器,打开此跟踪文件,查找到下面一段:lCREATE CONTROLFILE REUSE DATABASE ORCL NORESETLOGS ARCHIVELOGl MAXLOGFILES 16l MAXLOGMEMBERS 3l MAXDATAFILES 100l MAXINSTANCES 8lMAXLOGHISTORY 292lLOGFILEl GROUP 18.3.2 用命令方式实现联机备份用命令方

19、式实现联机备份lC:ORACLEPRODUCT10.2.0ORADATAORCLREDO01.LOG SIZE 50M,l GROUP 2 C:ORACLEPRODUCT10.2.0ORADATAORCLREDO02.LOG SIZE 50M,l GROUP 3 C:ORACLEPRODUCT10.2.0ORADATAORCLREDO03.LOG SIZE 50Ml- STANDBY LOGFILElDATAFILElC:ORACLEPRODUCT10.2.0ORADATASYSTEM01.DBF,l。lCHARACTER SET ZHS16GBK;这就是重建控制文件的SQL语句。如果控制文件

20、丢失,则将数据库启动到MOUNT阶段,然后执行此SQL语句即可重建控制文件。8.3.2 用命令方式实现联机备份用命令方式实现联机备份3备份归档日志文件备份归档日志文件备份完所有数据库文件后,还要归档当前的联机日志文件,使用下面命令完成强制日志转换和日志的归档工作。SQLALTER SYSTEM ARCHIVE LOG CURRENT;一旦归档了当前联机的日志文件,最后一步就是备份所有归档日志文件。使用操作系统的COPY命令可以完成本操作。lSQL$COPY C:oracleproduct10.2.0flash_recovery_areaORCLlARCHIVELOG 2009_02_08O1_

21、MF_1_54_5Y9FM18S_.ARC F:Backupl可以看出,用命令的方式实现联机备份比较复杂。为了尽可能避免错误,可以把上述命令写入一个脚本文件,备份时只需执行这个文件让系统自动进行备份。 8.3.3 联机恢复概述联机恢复概述脱机备份的恢复实质上就是一种复制技术,而联机备份的恢复则比较复杂。联机恢复一般分为两种情况,分别是实例崩溃恢复和介质恢复,其中介质恢复按照恢复的内容又分为完全介质恢复和不完全介质恢复。实例崩溃恢复用于将数据库从突然断电、应用程序错误等导致的数据库实例、操作系统崩溃等情况下的恢复。这时的Oracle实例不能正常关闭。而且当崩溃发生时,服务器可能正在进行许多修改数

22、据库信息的事务处理,数据库来不及执行一个检查点,以确保服务器缓冲区内的所有被修改的数据块被安全写回数据库的数据文件。这样,数据库数据文件中的数据就处于不一致状态。实例崩溃恢复只需要当前联机重做日志文件,无需归档日志文件。实例和崩溃恢复无需用户参与,在重新启动数据库时,Oracle系统自动利用联机日志文件所记载的重做记录进行数据库的恢复。8.3.3 联机恢复概述联机恢复概述介质恢复用于介质损坏时的恢复。介质恢复只有数据库运行在归档模式下才可以进行。如果介质恢复过程中既使用联机重做日志文件又使用归档日志文件,就需要用户的干预。Oracle系统不会自动检测是否有介质损坏,如果有介质损坏,则恢复时间由

23、用户指定的恢复策略决定,而不是Oracle内部机制决定。介质损坏的数据文件在进行介质恢复之前是不能联机的。只要有一个介质损坏的数据库文件存在,则数据库就不能正常打开。完全介质恢复指恢复所有已提交事务工作的操作,将数据库、表空间或数据文件的备份更新到最近的时间点上,应用完全介质恢复的典型情况是当数据文件或控制文件遭受了介质损坏。完全介质恢复分为数据库恢复、表空间恢复和数据文件恢复几种类型。8.3.3 联机恢复概述联机恢复概述1)对数据库进行完全介质恢复可以进行下面的操作。l 登录数据库;l 确保要恢复的所有文件都联机;l 将整个数据库或要恢复的文件复原;l 施加联机重做日志文件和归档日志文件。2

24、)对于表空间或数据文件进行完全介质恢复可以进行下面的操作:l 如果数据库已打开,可将要恢复的表空间或数据文件置于脱机状态;l 将要恢复的数据文件复原;l 施加联机重做日志文件和归档日志文件。8.3.3 联机恢复概述联机恢复概述不完全介质恢复指利用数据库的备份产生一个数据库的非当前版本,之所以称为不完全,是因为不完全介质恢复过程中并非所有的联机重做日志都使用,而是由用户指定何时中止恢复过程。不完全介质恢复只能在整个数据库上实施。不完全介质恢复分为基于时间的恢复、基于变化的恢复和基于中止的恢复三种类型。l 基于时间的恢复即将数据库恢复到某个时间点为止。l 基于变化的恢复即将数据库恢复到指定的SCN

25、(系统修改号)为止。l 基于中止的恢复即将数据库恢复到某个日志组为止,当Oracle系统提示给出建议的归档日志文件名时,输入“Cancel”,中止恢复操作。8.3.4 用命令方式实现联机恢复用命令方式实现联机恢复用命令方式实现介质恢复的命令如下:lRECOVER AUTOMATIC l DATABASE | TABLESPACE 表空间名称 | DATAFILE 数据文件名 l UNTIL CANCEL | TIME 时间 | CHANGE 变化号 lUSING BACKUP CONTROLFILE ;其中,如果使用UNTIL子句,进行的是不完全介质恢复;如果不使用UNTIL子句,则进行的是完

26、全介质恢复。下面介绍完全介质恢复的步骤。1)关闭例程)关闭例程在Oracle企业管理器中关闭数据库例程,或在SQL*Plus中执行下面的语句。lSQL CONN SYSTEM/ORCL ASSYSDBA;lSQL SHUTDOWN IMMEDIATE2)在)在V$RECOVER_FILE中查找损坏的文件中查找损坏的文件8.3.4 用命令方式实现联机恢复用命令方式实现联机恢复查询数据字典的动态视图V$RECOVER_FILE,确定要复原的文件。然后,使用操作系统的拷贝命令复原被损坏的文件。3)恢复数据库)恢复数据库恢复数据库时,要以MOUNT方式的启动数据库,但不打开数据库。执行下面的命令。lS

27、QLSTARTUP MOUNT接着查询V$DATAFILE动态视图,列出所有数据文件的状态,确保所有数据文件都处于联机状态。然后,根据恢复的需要,执行不同的RECOVER恢复命令。如果恢复整个数据库,执行命令:lSQLRECOVER DATABASE如果恢复某一个表空间,执行命令:lSQLRECOVER TABLESPACE 表空间名如果恢复某一个数据文件,执行命令:lSQLRECOVER DATAFILE 数据文件名8.3.4 用命令方式实现联机恢复用命令方式实现联机恢复4)打开数据库)打开数据库当系统提示完成完全介质恢复后,执行下面的命令打开数据库。lSQLALTER DATABASE O

28、PEN;值得注意的是这里的受损数据文件不能是SYSTEM表空间的数据文件,因为如果SYSTEM表空间受损的话,Oracle系统根本就不能启动。下面针对受损数据库采取恢复的步骤如下:1)将包含受损数据文件的表空间脱机。在SQL*Plus中执行下面的命令。lSQLALTER TABLESPACE 表空间名称OFFLINE;2)复原受损的数据文件,找到受损数据文件的备份,利用操作系统的命令完成复原。3)恢复脱机的表空间。lSQLRECOVER TABLESPACE 表空间名称;4)将脱机的表空间联机。lSQLALTER TABLESPACE 表空间名称 ONLINE;8.3.4 用命令方式实现联机恢

29、复用命令方式实现联机恢复不完全介质恢复的过程与完全介质恢复的过程基本相似,只不过加上UNTIL子句。此外还要注意的是,无论采用哪种类型的不完全介质恢复,在恢复操作成功结束之后,都要使用RESETLOGS选项打开数据库,如下面的语句:lSQLALTER DATABASE OPEN RESETLOGS;8.4 导出和导入导出和导入利用Oracle系统提供的EXP及IMP命令可以实现导出和导入。其中用EXP命令导出数据时,将数据库结构连同数据一起按照逻辑结构导出。由于只导出数据库的内容而不备份物理数据块,所以导出称为逻辑备份。用IMP命令实现导入,就是将由EXP导出的DMP文件按照逻辑关系载入数据库

30、。利用EXP和IMP进行数据的导出和导入,可以将数据从一个版本移植到另外的版本,或者将数据在不同的硬件环境平台之间进行移动。还可以对Oracle数据库整体或部分进行逻辑备份和恢复,可以达到减少空间碎片的目的。8.4.1 用用EXP命令实现导出命令实现导出用EXP命令实现导出非常方便灵活,在Oracle 10g中EXP支持全库、用户、表三种导出方式。其中:l1)全库方式:导出整个Oracle数据库。l2)用户方式:只导出Oracle数据库中的一个或几个用户模式下的对象。l3)表方式:只导出某用户下的表及其索引约束条件。在命令行提示符下输入EXP命令,输入用户名和密码连接数据库。设置EXP命令的各

31、项参数。输入数组提取缓冲区大小,默认值是4096。如果选默认值直接按回车键即可。设置导出文件名,默认值是EXPORT.DMP,这里设置为D:20090201EXP.DMP。DMP文件是一个二进制文件。选择导出数据库的方式。这里选择按U(用户)方式导出。接着选择导出权限、导出表数据及压缩区选项。参数设置完毕后,就开始执行备份操作,最后系统提示成功终止导出。 8.4.1 用用EXP命令实现导出命令实现导出导出了整个数据库 lC:EXP SYSTEM/ORCL full=y ROWS=y file=d:20091125fulldb.dmp log=log20091125.log 导出HR用户模式下的

32、所有对象。lC:EXP SYSTEM/ORCL OWNER=HR ROWS=y file=d:20091125hrdata.dmp log=log20091126.log 导出SCOTT用户的DEPT和EMP表。lC:EXP SYSTEM/ORCL TABLES=(DEPT,EMP) ROWS=y file=d:20091125scottdata.dmp LOG=log3.log EXP命令支持以多个固定大小文件方式导出,这种做法通常用在表数据量较大,单个 DUMP文件可能会超出文件系统的限制的情况。lC:EXP SYSTEM/ORCL FULL=Y FILE=1.DMP, 2.DMP,3.D

33、MP FILESIZE=500M LOG=log1001.log 8.4.2 用用IMP命令实现导入命令实现导入IMP命令的多数参数使用方法与EXP命令相同。在命令行提示符下输入EXP命令,输入用户名和密码连接数据库。接着设置IMP命令的各项参数。导入文件:输入刚才用EXP命令导出的文件D:20090201EXP.DMP。输入插入缓冲区大小:最小为8192,这里选择默认值30720。由于对象已经存在,忽略创建错误:选择“yes”。按照导出文件时的设置情况选择设置导入权限、导入表数据、导入整个文件等选项。参数设置完毕后,就开始执行恢复操作,最后系统提示成功终止导入。 8.4.2 用用IMP命令实

34、现导入命令实现导入下面的一组语句实现了以全库方式、用户方式和表方式分别导入数据。lC:IMP USERID=SYSTEM/ORCL IGNORE=Y FULL=Y FILE=d:20090201exp.dmp lC:IMP USERID=SYSTEM/ORCL IGNORE=Y FROMUSER=HR TOUSER=HR lFILE=d:20091125hrdata.dmplC:IMP SYSTEM/ORCL IGNORE=Y TABLES=(DEPT,EMP) lFILE=d:20091125scottdata.dmpIMP支持以多个固定大小文件方式导入:lC:IMP SYSTEM/ORCL

35、 FROMUSER=hr TOUSER=mdx FULL=Y IGNORE=Y FILE=1.DMP, 2.DMP,3.DMP FILESIZE=500M COMMIT=Y8.4.3 传输表空间传输表空间所谓传输表空间就是指表空间从一个Oracle数据库导出,导入到另一个Oracle数据库。当进行传输表空间时需指定以下参数:1)TRANSPORT_TABLESPACE 逻辑值,指定是否导入可传输表空间的元数据。Y导入,N不导入。2)TABLESPACES 指定将要传输到数据库的表空间。3)DATAFILES 指定将要传输到数据库的数据文件。4)TTS_OWNERS 指定拥有可传输表空间数据的用

36、户。在两个Oracle数据库之间传输表空间的一般步骤如下:1)将设置源数据库ORCL的准备要传输的USERS表空间为只读状态 lSQLALTER TABLESPACE USERS READ ONLY;2)从源数据库ORCL中导出USERS表空间lC:EXP USERID=SYSTEM/ORCL TRANSPORT_TABLESPACE=Y TABLESPACES=USERS FILE=D:TTBS.DMP8.4.3 传输表空间传输表空间3)将源数据库ORCL的导出表空间所对应的数据文件和导出文件移动到目标数据库TEST的相应目录中,这里利用操作系统的COPY命令来完成。4)导入表空间lC:IM

37、P USERID=SYSTEM/ORCL TRANSPORT_TABLESPACE=Y TABLESPACES=USERS lDATAFILES=C:ORACLEPRODUCT10.2.0ORADATAORCLUSER01.DBF lFILE= D:TTBS.DMP5)设置目标数据库TEST中的USERS表空间为读写状态lSQLALTER TABLESPACE USERS READ WRITE;8.5 数据泵数据泵DATA DUMP技术技术Oracle 10g中的数据泵技术,即EXPDMP和IMPDP命令。数据泵的作用可以实现逻辑备份和恢复,在不同数据库或者方案之间传输数据,或者将数据从低版本

38、数据库中导出,然后导入到高版本数据库中。由于数据泵实现数据导出和导入的速度要快于EXP和IMP,所以Oracle建议使用EXPDP和IMPDP。但EXPDP和IMPDP都是服务器端程序,只能在Oracle服务器端使用,不能在客户端使用。而EXP和IMP则是客户端程序,既可以在服务器端使用,又可以在客户端使用。EXPDP和IMPDP命令采用作业(JOB)的形式来实现,如果执行过程中中止了EXPDP或IMPDP命令进程,以后还可以从断点处重新开始执行,不必从头开始。这将为用户节省大量时间。数据泵导出导入时,其导出文件只能存放在目录对象(DIRECTORY)指定的操作系统目录下,而不能直接指定操作系

39、统目录。目录对象是Oracle系统的一种对象,它不属于某一个用户,而是属于整个数据库。8.5 数据泵数据泵DATA DUMP技术技术目录对象使用CREATE DIRECTORY语句来创建,而不是操作系统某个目录,但是它指向操作系统某个目录。所以在导出导入数据时,先要创建目录对象。并将访问目录对象的权限授权给使用EXPDP和IMPDP的用户。在导入/出之前,先创建目录对象,如下:lSQLCONN SYSTEM/ORCLorcl as SYSDBA;lSQLGRANT exp_full_database,imp_full_database TO HR;lSQLGRANT create any di

40、rectory to HR;lSQLCONN HR/HRorcl;lSQL$MD d:dump;lSQLCREATE OR REPLACE DIRECTORY dir1 as d:dump;lSQLCONN SYSTEM/ORCLorcl as SYSDBA;lSQLGRANT read,write ON DIRECTORY dir1 TO HR;lSQLSELECT * FROM DBA_DIRECTORIES;8.5 数据泵数据泵DATA DUMP技术技术上面首先在操作系统中创建目录D:DUMP,接着在Oracle数据库系统中由DBA将CREATE ANY DIRECTORY权限授予执行E

41、XPDP的用户,并创建目录对象DIR1指向D:DUMP目录。并将读写的访问权限授权给使用EXPDP和IMPDP的数据库用户,如HR。最后,还可以从DBA_DIRECTORIES数据字典中查询目录对象的信息。8.5.1 用用EXPDP命令实现导出命令实现导出EXPDP命令的基本语法如下:EXPDP 用户名/口令 参数1=设置值,参数2=设置值,名 称说 明ATTACH连 接 到 现 有 作 业 , 例 如 ATTACH =作业名COMPRESSION减小有效的转储文件内容的大 小 , 关 键 字 值 为 : (METADATA_ONLY) 和 NONECONTENT指定要卸载的数据, 其中有效关

42、 键 字 为 : ( A L L ) , D A T A _ O N L Y 和 METADATA_ONLYDIRECTORY供转储文件和日志文件使用的目录对象DUMPFILE目标转储文件列表8.5.1 用用EXPDP命令实现导出命令实现导出ENCRYPTION_PASSWORD用于创建加密列数据的口令关键字ESTIMATE计算作业估计值, 其中有效关键字为: (BLOCKS) 和 STATISTICSESTIMATE_ONLY在不执行导出的情况下计算作业估计值EXCLUDE排除特定的对象类型, 例如 EXCLUDE=TABLE:EMPFILESIZE以字节为单位指定每个转储文件的大小FLAS

43、HBACK_SCN用于将会话快照设置回以前状态的 SCNFLASHBACK_TIME用于获取最接近指定时间的 SCN 的时间FULL导出整个数据库HELP显示帮助消息INCLUDE包括特定的对象类型JOB_NAME要创建的导出作业的名称LOGFILE日志文件名8.5.1 用用EXPDP命令实现导出命令实现导出NETWORK_LINK链接到源系统的远程数据库的名称NOLOGFILE不写入日志文件PARALLEL更改当前作业的活动数目PARTFILE指定参数文件QUERY用于导出表的子集的谓词子句SCHEMAS要导出的方案的列表STATUS在默认值为0时,将显示可用时的新状态的情况下,要监视的频率

44、 (以秒计) 作业状态TABLES在只导出一个方案的情况下,要导出的表的列表TABLESPACES标识要导出的表空间的列表TRANSPORT_FULL_CHECK验证所有表的存储段TRANSPORT_TABLESPACES要从中卸载元数据的表空间的列表VERSION要导出的对象的版本, 其中有效关键字为: (COMPATIBLE), LATEST 或任何有效的数据库版本8.5.1 用用EXPDP命令实现导出命令实现导出EXPDP命令还允许交互式执行,下列的命令在EXPDP交互模式下有效。 名 称说 明ADD_FILE向转储文件集中添加转储文件CONTINUE_CLIENT返回到记录模式。如果处

45、于空闲状态, 将重新启动作业EXIT_CLIENT退出客户机会话并使作业处于运行状态FILESIZE后续 ADD_FILE 命令的默认文件大小 (字节)HELP总结交互命令KILL_JOB分离和删除作业PARALLEL更改当前作业的活动 worker 的数目,PARALLEL=START_JOB启动/恢复当前作业STATUS在默认值 为0时,将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态。STATUS=intervalSTOP_JOB顺序关闭执行的作业并退出客户机,为IMMEDIATE时将立即关闭作业8.5.1 用用EXPDP命令实现导出命令实现导出在创建了目录对象以后,就可

46、以使用EXPDP命令来导出数据。下面的语句分别导出某个用户的表、某个用户的所有对象和整个数据库。1)使用EXPDP导出SCOTT用户的EMP表lC:EXPDP HR/HR DUMPFILE=SCOTT_EMP.DMP DIRECTORY=DIR1 tables=SCOTT.emp JOB_NAME=JOB12)使用EXPDP导出SCOTT用户的所有对象lC:EXPDP HR/HR DUMPFILE=SCOTT.DMP DIRECTORY=DIR1 SCHEMAS=SCOTT JOB_NAME=JOB23)使用EXPDP导出整个ORACLE数据库lC:EXPDP HR/HR DUMPFILE=O

47、RCL.DMP DIRECTORY=DIR1 FULL=Y JOB_NAME=JOB38.5.2 用用IMPDP命令实现导入命令实现导入IMPDP命令的基本语法如下:IMPDP 用户名/口令 参数1=设置值,参数2=设置值,名 称说 明ATTACH连接到现有作业, 例如 ATTACH =作业名CONTENT指 定 要 加 载 的 数 据 , 其 中 有 效 关 键 字 为 : ( A L L ) , DATA_ONLY 和 METADATA_ONLYDIRECTORY供转储文件, 日志文件和 SQL文件使用的目录对象DUMPFILE要从 (expdat.dmp) 中导入的转储文件的列表ESTI

48、MATE计算作业估计值, 其中有效关键字为: (BLOCKS) 和 STATISTICS8.5.2 用用IMPDP命令实现导入命令实现导入ENCRYPTION_PASSWORD用于访问加密列数据的口令关键字EXCLUDE排除特定的对象类型, 例如 EXCLUDE=TABLE:EMPFLASHBACK_SCN用于将会话快照设置回以前状态的 SCNFLASHBACK_TIME用于获取最接近指定时间的 SCN 的时间FULL从源导入全部对象HELP显示帮助消息INCLUDE包括特定的对象类型JOB_NAME要创建的导入作业的名称8.5.2 用用IMPDP命令实现导入命令实现导入LOGFILE日志文件

49、名NETWORK_LINK链接到源系统的远程数据库的名称NOLOGFILE不写入日志文件PARALLEL更改当前作业的活动 worker 的数目PARTFILE指定参数文件QUERY用于导入表的子集的谓词子句REMAP_DATAFILE在所有 DDL 语句中重新定义数据文件引用REMAP_SCHEMA将一个方案中的对象加载到另一个方案。REMAP_TABLESPACE将表空间对象重新映射到另一个表空间。REUSE_DATAFILES如果表空间已存在,则将其初始化SCHEMAS要导入的方案的列表SKIP_UNUSABLE_INDEXES跳过设置为无用索引状态的索引8.5.2 用用IMPDP命令实

50、现导入命令实现导入SQLFILE将所有的 SQL DDL 写入指定的文件STATUS在默认值 (0) 将显示可用时的新状态的情况下,要监视的频率 (以秒计) 作业状态TABLE_EXISTS_ACTION 导入对象已存在时执行的操作, 有效关键字: (SKIP), APPEND, REPLACE 和 TRUNCATETABLES标识要导入的表的列表TABLESPACES标识要导入的表空间的列表TRANSFORM要 应 用 于 适 用 对 象 的 元 数 据 转 换 , 有 效 的 转 换 关 键 字 : SEGMENT_ATTRIBUTES, STORAGEOID 和 PCTSPACETRAN

51、SPORT_DATAFILES按可传输模式导入的数据文件的列表TRANSPORT_FULL_CHECK验证所有表的存储段TRANSPORT_TABLESPACES要从中加载元数据的表空间的列表, 仅在 NETWORK_LINK 模式导入操作中有效VERSION要导出的对象的版本, 其中有效关键字为: (COMPATIBLE), LATEST 或任何有效的数据库版本.仅对 NETWORK_LINK 和 SQLFILE 有效8.5.2 用用IMPDP命令实现导入命令实现导入在正确执行了EXPDP命令后,就可以使用IMPDP命令来导入数据。下面的语句分别导入某个用户的表、某个用户的所有对象和整个数据

52、库。1)使用IMPDP导入SCOTT用户的EMP表lC:IMPDP HR/HR DUMPFILE=SCOTT_EMP.DMP DIRECTORY=DIR1 tables=SCOTT.emp JOB_NAME=JOB12)使用IMPDP导入SCOTT用户的所有对象lC:IMPDP HR/HR DUMPFILE=SCOTT.DMP DIRECTORY=DIR1 SCHEMAS=SCOTT JOB_NAME=JOB23)使用IMPDP导入整个ORACLE数据库lC:IMPDP HR/HR DUMPFILE=ORCL.DMP DIRECTORY=DIR1 FULL=Y JOB_NAME=JOB38.6

53、 在在OEM中导入导出数据中导入导出数据在Oracle Enterprise Manager平台上执行导入导出数据比较简单,Oracle提供了非常方便的导出导入向导,只需按照步骤做下去即可。8.6.1 用导出向导实现逻辑备份用导出向导实现逻辑备份在Oracle Enterprise Manager平台上执行导出数据,需在IE浏览器中打开OEM的Database Control界面,在“维护”选项卡的“数据移动”项中单击“数据行移动”下的“导出到导出文件”超链接。在“导出:导出类型”界面中,选择“表”选项,在下面的主机身份证明中输入操作系统中具有管理员权限的合法用户。这里,如果出现用户名和密码的

54、错误,通常是由于输入的用户名不具备“以批量任务登录”的权限而造成的。此时需要进行简单的配置:1)从开始菜单进入设置控制面板管理工具打开本地安全策略。2)在本地安全策略中,找到本地策略。3)打开其中的用户权限分配。4)在右边的列表中选择“以批量任务登录”,添加数据库安装的所在操作系统用户。8.6.1 用导出向导实现逻辑备份用导出向导实现逻辑备份单击继续按钮,进入“导出:表”界面 。单击添加按钮,出现“导出:添加表”界面。单击选择按钮,返回“导出:表”界面,单击下一步按钮 。单击下一步按钮,出现“导出:选项”界面,此时可以在导出之前估计所需磁盘空间的大小,还可以选择是否生成日志文件以及所需存储的目

55、录对象。这里选择输入目录对象“DIR1” 。如果选择了“立即估计磁盘空间”,则会出现“导出:处理:估计磁盘空间”界面。单击确定按钮,返回“导出:选项”界面,此时单击下一步按钮,进入“导出:文件”界面。 单击下一步按钮,进入“导出:调度”界面。前文说过EXPDP导出时使用作业这种机制。 单击下一步按钮,进入“导出:复查”界面。8.6.2 用导入向导实现逻辑恢复用导入向导实现逻辑恢复在OEM中将导出文件导入的过程如下。首先需在IE浏览器中打开OEM的Database Control界面,在“维护”选项卡的“数据移动”项中单击“数据行移动”下的“从导出文件导入”超链接。在“导入:文件”界面中,在选择

56、目录对象中选择“DIR1”目录对象,输入文件名导出文件名,如PDAT1.DMP,这里导入类型处选择“表”单选钮,在主机身份证明中输入操作系统中具有管理员权限的合法用户,如“HR”。 单击继续按钮,出现“导入:表”界面 单击添加按钮,在选择SCOTT用户的EMP表。单击下一步按钮,出现“导入:重新映射”界面 。单击下一步按钮,出现“导入:调度”界面,在作业名称处输入JOB_IMP,选择“立即”启动作业调度。确认后单击提交作业按钮,出现“导入:正在进行中”界面。稍候片刻,出现“作业活动”界面,此时已经成功创建作业。 8.7 恢复管理器恢复管理器8.7.1 恢复管理器简介8.7.2 恢复管理器的相关

57、术语8.7.3 使用恢复管理器进行备份8.7.4 使用恢复管理器进行恢复8.7.1 恢复管理器简介恢复管理器简介恢复管理器(RMAN,Recovery Manager)用来备份和还原数据库文件、SPFILE参数文件、归档日志和控制文件等。也可执行完全或不完全的数据库恢复。RMAN启动数据库上的Oracle服务器进程来进行备份或恢复。 RMAN有三种不同的用户接口:命令行方式、图形界面方式(集成在OEM 中的备份管理器)和API 方式(集成到第三方的备份软件中)。RMAN的功能类似物理备份,但比物理备份强大许多,从下面的列出一些特性可以看出。 1)备份以数据块为单位,只备份使用过的数据库,节省备

58、份介质的空间占用2)可以在数据块水平上实现增量备份3)可以把备份的输出打包成备份集,也可以按固定大小分割备份集 4)自动管理备份与恢复相关的元数据5)自动检测是否出现损坏的数据块8.7.2 恢复管理器的相关术语恢复管理器的相关术语1)目标数据库(TARGET DATABASE)在RMAN中,目标数据库指需要备份或恢复的数据库。2)备份集(BACKUP SETS)备份集就是一次备份的集合,它包含本次备份的所有备份片,以Oracle专有的格式保存。一个备份集根据备份的类型不同,可能构成一个完全备份或增量备份。 3)备份片(BACKUP PIECES)一个备份集由若干个备份片组成。每个备份片是一个单

59、独输出文件。一个备份片的大小是有限制的;如果没有大小的限制,备份集就只由一个备份片构成。备份片的大小不能大于你的文件系统所支持的文件长度的最大值。4)映像备份(IMAGE COPIES)不压缩、不打包、直接COPY 物理文件,类似操作系统级的文件备份。而且只能COPY 到磁盘,不能到磁带。5)全备份(FULL BACKUP)指对数据文件中使用过的数据块进行备份,没有使用过的数据块是不做备份的。也就是说RMAN 压缩备份。 8.7.2 恢复管理器的相关术语恢复管理器的相关术语6)增量备份(INCREMENTAL BACKUP)增量备份是指备份数据文件中自从上一次同一级别的或更低级别的备份以来被修

60、改过的数据块。与完全备份相同,增量备份也进行压缩。增量备份虽然概念很好,备份也很简单,但恢复起来却是另外一回事,不仅麻烦而且容易出错,所以实际中越来越少使用,到了Oracle 9i已经建议不再使用,以后版本会逐渐取消对增量备份的支持。 7)恢复目录(RECOVERY CATALOG)恢复目录用于存储RMAN 使用过程中的控制信息,恢复目录有多个表和存储过程组成,这些对象位于同一个模式(SCHEMA)下。如果RMAN使用恢复目录,则不仅需建立到目标数据库的连接,还需建立到恢复目录所在数据库的连接。如果RMAN使用NOCATALOG方式,则控制信息将记录在目标数据库的控制文件中,但这样不安全,因为

温馨提示

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

评论

0/150

提交评论