第13章 备份与恢复主要内容备份与恢复概述物理备份数据库逻辑恢复数据库利用RMAN备份与恢复数据库逻辑备份与恢复数据库13.1备份与恢复概述 备份与恢复的概念Oracle数据库备份类型Oracle数据库恢复类型13.1.1备份与恢复的概念备份与恢复是数据库的一对相反操作, 备份是保存数据库中数据的副本,恢复是利用备份将数据库恢复到故障时刻的状态或恢复到故障时刻之前的某个一致性状态。在Oracle数据库 中,既可以由管理员手动进行备份与恢复操作,也可以利用Oracle恢复管理器(RMAN)自动进行备份与恢复操作。Oracle数据库恢 复实际包含两个过程数据库修复(Database Restore):利用备份的数据库文件替换已经损坏的数据库文件,将损坏的数据库文件 恢复到备份时刻的状态。该操作主要是在操作系统级别上完成的。数据库恢复(Database Recovery):首先利用数据库的归档重 做日志文件、联机重做日志文件,采用前滚技术(Roll Forward)重做备份以后所有的事务;最后利用回滚技术(Roll Back )取消发生故障时已写入重做日志文件但没有提交的事物,将数据库恢复到某个一致性状态13.1.2 Oracle数据库备份类型物理备份 与逻辑备份物理备份:联机备份和脱机备份完全备份和部分备份一致性备份和不一致性备份13.1.3 Oracle数据库恢复类型物理恢复 与逻辑恢复完全恢复和不完全恢复归档模式下的恢复和非归档模式下的恢复13.2 物理备份数据库脱机备份联机备份13.2.1 冷备份 冷备份主要备份数据库所有的数据文件和控制文件。由于其它文件都比较小,为了恢复的方便,通常脱机备份时将其它文件一起备份。利用SQL Plus工具按下列步骤进行。启动SQLPlus,以SYSDBA身份登录数据库。查询当前数据库所有数据文件、控制文件、联机重做日志 文件、初始化参数文件的位置。正常关闭数据库。SQL>SHUTDOWN IMMEDIATE复制所有数据文件、控制文件、联机重做日志文 件以及初始化参数文件等其它配置文件到备份磁盘。可以直接在操作系统中使用复制、粘贴方式进行,也可以在SQLPlus环境中使用下列形 式的操作系统命令完成。SQL>HOST COPY 原文件名称 目标路径名称重新启动数据库SQL>STARTUP1113.2.2 热备份 数据库完全热备份的步骤:启动SQLPlus,以SYSDBA身份登录数据库 将数据库设置为归档模式 以表空间为单位,进行 数据文件备份 备份控制文件 备份其他物理文件 12备份数据文件查看当前数据库有哪些表空间,以及每个表空间中有哪些数据文件。SELE CT tablespace_name,file_name FROM dba_data_files ORDER BY tablespace_name;分别对每个表空间中的数据文件进行备份,其方法为将需要备份的表空间(如USERS)设置为备份状 态。ALTER TABLESPACE USERS BEGIN BACKUP;将表空间中所有的数据文件复制到备份磁盘。结束表空间的备 份状态。ALTER TABLESPACE USERS END BACKUP;对数据库中所有表空间分别采用该步骤进行备份。13控制文 件备份方法将控制文件备份为二进制文件。ALTER DATABASE BACKUP CONTROLFILE TO ''D:\ORACL E\BACKUP\CONTROL.BKP''; 将控制文件备份为文本文件。ALTER DATABASE BACKUP CONTROL FILE TO TRACE; 14其他文件的备份归档当前的联机重做日志文件。ALTER SYSTEM ARCHIVE LOG C URRENT;备份归档重做日志文件,将所有的归档重做日志文件复制到备份磁盘中。备份初始化参数文件,将初始化参数文件复制到备份磁盘中 。13.3 物理恢复数据库非归档模式下数据库的恢复归档模式下数据库的完全恢复归档模式下数据库的不完全恢复1613.3.1 非归 档模式下数据库的恢复非归档模式下数据库的恢复主要指利用非归档模式下的冷备份恢复数据库。步骤为:关闭数据库。SHUTDOWN IMM EDIATE将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所在的位置。重新启动数据库。STARTUP注意非归档模式下的 数据库恢复是不完全恢复,只能将数据库恢复到最近一次完全冷备份的状态。 1713.3.2 归档模式下数据库的完全恢复概述数据库级完 全恢复 表空间级完全恢复 数据文件级完全恢复 数据库完全恢复示例 18概念归档模式下数据库的完全恢复是指归档模式下一个或多个数据文 件损坏,利用热备份的数据文件替换损坏的数据文件,再结合归档日志文件和联机重做日志文件,采用前滚技术重做自备份以来的所有改动,采用回 滚技术回滚未提交的操作,以恢复到数据库故障时刻的状态。(1)概述19 恢复的级别数据库级完全恢复:主要应用于所有或多数数据文件损坏 的恢复;表空间级完全恢复:对指定表空间中的数据文件进行恢复;数据文件级完全恢复:是针对特定的数据文件进行恢复。 注意数据库级的完全 恢复只能在数据库装载但没有打开的状态下进行,而表空间级完全恢复和数据文件级完全恢复可以在数据库处于装载状态或打开的状态下进行。 2 0归档模式下数据库完全恢复的基本语法:RECOVER [AUTOMATIC] [FROM ''location''][DATABASE |TABLESPACE tspname |DATAFILE dfname]参数说明 AUTOMATIC:进行自动恢复,不需要DBA 提供重做日志文件名称;location:制定归档重做日志文件的位置。默认为数据库默认的归档路径。21(2)数据库级完全恢复 数据库 级完全恢复的步骤:如果数据库没有关闭,则强制关闭数据库。SHUTDOWN ABORT利用备份的数据文件还原所有损坏的数据文件。将数 据库启动到MOUNT状态。STARTUP MOUNT执行数据库恢复命令。RECOVER DATABASE打开数据库。ALTER D ATABASE OPEN; 22(3)表空间级完全恢复 以EXAMPLE表空间的数据文件example01.dbf损坏为例模拟表 空级的完全恢复。数据库处于装载状态下的恢复 数据库处于打开状态下的恢复 23数据库处于装载状态下的恢复如果数据库没有关闭,则强制关 闭数据库。SHUTDOWN ABORT利用备份的数据文件example01.dbf还原损坏的数据文件example01.dbf。将 数据库启动到MOUNT状态。STARTUP MOUNT执行表空间恢复命令。RECOVER TABLESPACE EXAMPLE打开 数据库。ALTER DATABASE OPEN;24数据库处于打开状态下的恢复①如果数据库已经关闭,则将数据库启动到MOUNT状态 。STARTUP MOUNT②将损坏的数据文件设置为脱机状态。ALTER DATABASE DATAFILE ''D:\APP\AD MINISTRATOR\ORADATA\HUMAN_RESOURCE\EXAMPLE01.DBF'' OFFLINE;③打开数据库。 ALTER DATABASE OPEN;④将损坏的数据文件所在的表空间脱机。ALTER TABLESPACE EXAMPLE O FFLINE FOR RECOVER; 25⑤ 利用备份的数据文件example01.dbf还原损坏的数据文件example01. dbf。⑥ 执行表空间恢复命令。RECOVER TABLESPACE EXAMPLE;⑦ 将表空间联机。ALTER TABLESP ACE EXAMPLE ONLINE;如果数据文件损坏时数据库正处于打开状态,则可以直接执行步骤(4)~(7)。26(4)数据文件 级完全恢复 以数据文件D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE \example01 .dbf损坏为例模拟数据文件级的完全恢复。 数据库处于装载状态下的恢复 数据库处于打开状态下的恢复 27数据库处于装载状态下的恢复 如果数据库没有关闭,则强制关闭数据库。SHUTDOWN ABORT利用备份的数据文件example01.dbf还原损坏的数据文件e xample01.dbf。将数据库启动到MOUNT状态。STARTUP MOUNT执行数据文件恢复命令。RECOVER DATAF ILE D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE \example01.dbf'';将 数据文件联机。ALTER DATABASE DATAFILE D:\APP\ADMINISTRATOR\ORADATA\HUMAN _RESOURCE \example01.dbf'' ONLINE打开数据库。ALTER DATABASE OPEN;28数据库处于 打开状态下的恢复如果数据库已经关闭,则将数据库启动到MOUNT状态。STARTUP MOUNT将损坏的数据文件设置为脱机状态。AL TER DATABASE DATAFILE D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE \example01.dbf'' OFFLINE;打开数据库。 ALTER DATABASE OPEN;利用备份的数据文件exam ple01.dbf还原损坏的数据文件example01.dbf。 29执行数据文件恢复命令。RECOVER DATAFILE D: \APP\ADMINISTRATOR\ORADATA\HUMAN_RESOURCE \example01.dbf'';将数据文件联机 。ALTER DATABASE DATAFILE D:\APP\ADMINISTRATOR\ORADATA\HUMAN_RESOU RCE \example01.dbf'' ONLINE;如果数据文件损坏时数据库正处于打开状态,则可以直接执行步骤(2)、(4)~( 6)。30(5)数据库完全恢复示例 以SYSTEM表空间的数据文件system01.dbf 损坏为例演示归档模式下的完全恢复操作。 首先进行一次归档模式下的数据库完整备份。以SYSDBA身份登录数据库进行下列操作。CREATE TABLE test_rec(I D NUMBER PRIMARY KEY,NAME CHAR(20)) TABLESPACE SYSTEM;INSERT INTO test_rec VALUES(1,''ZHANGSAN'');COMMIT;INSERT INTO test_rec VALUES (2,''LISI'');COMMIT;ALTER SYSTEM SWITCH LOGFILE;SELECT FROM test_ rec; SHUTDOWN ABORT; 31删除SYSTEM表空间的数据文件system01.dbf,以模拟数据文件损坏的情形。 用备份的数据文件还原损坏(本文为被删除)的数据文件。执行恢复操作。由于SYSTEM表空间不能在数据库打开后进行恢复,因此只能在数据 库处于装载状态时进行恢复。STARTUP MOUNTRECOVER DATABASE;ALTER DATABASE OPEN;SE LECT FROM test_rec;3213.3.3 归档模式下数据库的不完全恢复数据库不完全恢复概述数据文件损坏的数据库 不完全恢复的步骤数据库不完全恢复的示例 控制文件损坏的数据库不完全恢复 33(1)数据库不完全恢复概述在归档模式下,数据库的不完全 恢复主要是指归档模式下数据文件损坏后,没有将数据库恢复到故障时刻的状态。在进行数据库不完全恢复之前,首先确保对数据库进行了完全备份 ;在进行数据文件损坏的不完全恢复时必须先使用完整的数据文件备份将数据库恢复到备份时刻的状态。在不完全恢复后,需要使用RESETLO GS选项打开数据库,原来的重做日志文件被清空,新的重做日志文件序列号重新从1开始原来的归档日志文件都不再起作用了。34不完全恢复类 型:基于时间的不完全恢复:将数据库恢复到备份与故障时刻之间的某个特定时刻。基于撤销的不完全恢复:数据库的恢复随用户输入CANCEL 命令而中止。 基于SCN的不完全恢复:将数据库恢复到指定的SCN值时的状态。 35不完全恢复的语法为RECOVER [AUTOMA TIC] [FROM ''location''][DATABASE][UNTIL TIME time|CANCEL|CHANGE sc n][USING BACKUP CONTROLFILE] 36(2)数据文件损坏的数据库不完全恢复的步骤如果数据库没有关闭,则强制 关闭数据库。SHUTDOWN ABORT用备份的所有数据文件还原当前数据库的所有数据文件,即将数据库的所有数据文件恢复到备份时刻的 状态。将数据库启动到MOUNT状态。STARTUP MOUNT执行数据文件的不完全恢复命令。RECOVER DATABASE UN TIL TIME time;(基于时间恢复)RECOVER DATABASE UNTIL CANCEL;(基于撤销恢复)RECOV ER DATABASE UNTIL CHANGE scn;(基于SCN恢复)可以通过查询数据字典视图V$LOG_HISTORY获得 时间和SCN的信息。不完全恢复完成后,使用RESETLOGS选项启动数据库。ALTER DATABASE OPEN RESETLO GS; 37(3)数据库不完全恢复的示例38(4)控制文件损坏的数据库不完全恢复如果数据库没有关闭,则强制关闭数据库。SHUTDO WN ABORT用备份的所有数据文件和控制文件还原当前数据库的所有数据文件、控制文件,即将数据库的所有数据文件、控制文件恢复到备份 时刻的状态。将数据库启动到MOUNT状态。STARTUP MOUNT执行不完全恢复命令。RECOVER DATABASE UNTI L TIME time USING BACKUP CONTROLFILE;RECOVER DATABASE UNTIL CANCE L USING BACKUP CONTROLFILE;RECOVER DATABASE UNTIL CHANGE scn USIN G BACKUP CONTROLFILE;不完全恢复完成后,使用RESETLOGS选项启动数据库。ALTER DATABASE O PEN RESETLOGS; 13.4利用RMAN备份与恢复数据库RMAN介绍RMAN基本操作RMAN备份与恢复概述利用RMAN备 份数据库利用RMAN恢复数据库3913.4.1RMAN介绍RMAN(Recovery Manager)是Oracle恢复管理器的简 称,是集数据库备份(Backup)、还原(Restore)和恢复(Recover)于一体的Oracle数据库备份与恢复工具。404 1RMAN命令执行器:用于对目标数据库进行备份与恢复操作管理的客户端应用程序。目标数据库:利用RMAN进行备份与恢复操作的数据库。 RMAN资料档案库:存储进行数据库备份、修复以及恢复操作时需要的管理信息和数据。RMAN恢复目录:建立在恢复目录数据库中的存储对象 ,存储RMAN资料档案库信息。RMAN恢复目录数据库:用于保存RMAN恢复目录的数据库,是一个独立于目标数据库的Oracle数据库 。4213.4.2RMAN基本操作连接数据库创建恢复目录注册数据库通道分配(1)连接数据库在操作系统命令提示符下直接连接目标数据库 :RMAN TARGET user/password@net_service_name [NOCATALOG]先在命令提示符下输入 RMAN启动RMAN命令执行器,然后执行下列连接命令:CONNECT TARGET|CATALOG user/password@n et_service_name [NOCATALOG]44(2)创建恢复目录1)创建恢复目录数据库。2)在目录数据库中创建表空间R ECOVERY_CATALOG3)在恢复目录数据库中创建用户。例如:CREATE USER rman IDENTIFIED BY rmanDEFAULT TABLESPACE RECOVERY_CATALOGTEMPORARY TABLESPACE TEMPQ UOTA 500M ON RECOVERY_CATALOG;3)为RMAN用户授权。必须授予RECOVERY_CATALOG_OW NER系统权限。GRANT RECOVERY_CATALOG_OWNER,CONNECT,RESOURCE TO rman;454 )启动RMAN,连接恢复目录数据库。RMAN>CONNECT CATALOG rman/rman@ORACLE5)创建恢复目录。R MAN>CREATE CATALOG TABLESPACE RECOVERY_CATALOG;如果恢复目录不再使用,可以删除恢复目 录。例如:RMAN>DROP CATALOG;46(3)注册数据库为了在恢复目录中注册数据库,需要先将RMAN连接到目标数据库和恢 复目录数据库,然后执行REGISTER DATABASE语句即可。RMAN>CONNECT TARGET sys/Sfd12345 @ORCLRMAN>CONNECT CATALOG rman/rman@ORACLERMAN>REGISTER DATABASE; RMAN>RESYNC CATALOG;47(4)通道分配在RMAN中对目标数据库进行备份、修复、恢复操作时,必须为操作分配通道。 可以根据预定义的配置参数自动分配通道,也可以在需要时手动分配通道。自动分配通道RMAN中与自动分配通道相关的预定义配置参数包括: CONFIGURE DEFAULT DEVICE TYPE TO disk|sbtCONFIGURE DEVICE TYPE di sk|sbt PARALLELISM nCONFIGURE CHANNEL DEVICE TYPE CONFIGURE CHANN EL n DEVICE TYPE 设置自动分配通道的参数。RMAN>CONFIGURE DEFAULT DEVICE TYPE T O sbt;RMAN>CONFIGURE DEVICE TYPE disk PARALLELISM 2;RMAN>CONFIGUR E DEVICE TYPE disk PARALLELISM 3;RMAN>CONFIGURE CHANNEL 3 DEVICE TYPE disk MAXPIECESIZE=50M;手动分配通道使用RUN命令手动分配通道。语法为:RUN{ALLOCATE C HANNEL 通道名称 DEVICE TYPE 设备类型;BACKUP…}例如:RMAN>RUN{ ALLOCATE CHA NNEL ch1 DEVICE TYPE disk FORMAT ''d:/backup/%U'';BACKUP TABLESPACE users;}13.4.3RMAN备份与恢复概述使用RMAN进行数据库备份与恢复操作时,数据库必须运行在归档模式在RMAN中,数 据库的备份形式分为镜像复制和备份集两类。使用RMAN 进行数据库恢复时只能使用之前使用RMAN生成的备份,可以实现数据库的完全恢复 ,也可以实现数据库的不完全恢复。13.4.4 利用RMAN备份数据库RMAN备份形式BACKUP命令备份整个数据库备份表空间备份 数据文件备份控制文件备份服务器初始化参数文件备份归档日志文件53RMAN备份形式镜像复制是对数据文件、控制文件或归档重做日志文件进 行精确复制。镜像复制文件大小与原文件大小完全相同,原文件中的未使用的数据块也被复制到备份文件中。一个原文件对应一个镜像复制文件。备 份集是RMAN创建的一个具有特定格式的逻辑对象,是RMAN的最小备份单元。在一个备份集中可以包括一个或多个数据文件、控制文件、归档 重做日志文件以及服务器初始化参数文件等。备份集只能由RMAN创建和访问,而且是唯一可以将备份存储到介质管理器的备份形式。54BAC KUP命令的基本语法为:BACKUP [backup_option] backup_object [PLUS ARCHIVELOG ][backup_object_option];备份整个数据库RMAN>BACKUP DATABASE FORMAT ''D:\BA CKUP\%U.BKP'';备份表空间可以使用BACKUP TABLESPACE命令备份一个或多个表空间。RMAN>BACKUP T ABLESPACE system,users FORMAT ''D:\BACKUP\%U.BKP'';55备份数据文件可以备份一个或多 个数据文件,可以通过数据文件名称或数据文件编号指定要备份的数据文件。RMAN>BACKUP DATAFILE ''D:\APP\AD MINISTRATOR\ORADATA\ORCL\USERS01.DBF'' FORMAT ''D:\BACKUP\%U'';56备份控 制文件RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON; RMAN>CONFIGURE CONTR OLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ''%F'';备份服务器初始化参数文 件RMAN>BACKUP SPFILE FORMAT ''D:\BACKUP1\%U'';备份归档重做日志文件使用BACKUP ARC HIVELOG命令备份归档重做日志文件RMAN>BACKUP ARCHIVELOG ALL;使用BACKUP…PLUS ARCHI VELOG命令备份归档重做日志文件RMAN>BACKUP DATABASE PLUS ARCHIVELOG FORMAT ''D:\ BACKUP1\%U'';5813.4.5利用RMAN恢复数据库RMAN恢复数据库概述RESTORE命令RECOVER命令整个数据库 的完全恢复数据文件的完全恢复表空间的完全恢复利用RMAN进行不完全恢复RMAN恢复数据库概述使用RMAN 进行数据库恢复时只能使用 之前使用RMAN进行的备份,可以实现数据库的完全恢复,也可以实现数据库的不完全恢复。与用户管理的恢复类似,RMAN恢复也分两个步骤 ,首先使用RESTORE命令进行数据库的修复,然后使用RECOVER命令进行数据库的恢复。60利用RESTORE命令修复数据库的基 本语法为:RESTORE(restore_object[restore_spc_option])[restore_option]; 例如:RMAN>RESTROE DATABASE;RMAN>RESTORE CONTROLFILE FROM AUTOBACKUP ;RMAN>RESTORE DATAFILE 4;RMAN>RESTORE DATAFILE ''D:\DISK2\USERS01. DBF'';RMAN>RESTORE TABLESPACE users;61利用RECOVER命令对修复后的数据库进行恢复操作的基本 语法为:RECOVER [DEVICE TYPE disk|sbt] recover_object [recover_option ];例如:RMAN>RECOVER DATABASE DELETE ARCHIVELOG;RMAN>RECOVER CONTROL FILE;RMAN>RECOVER DATAFILE 4;RMAN>RECOVER DATAFILE ''D:\DISK2\USER S01.DBF'';RMAN>RECOVER TABLESPACE users;6263数据文件的完全恢复1)启动RMAN并连接到目 标数据库。如果使用恢复目录,还需要连接到恢复目录数据库。2)将损坏或丢失的数据文件设置为脱机状态。例如:RMAN>SQL "ALT ER DATABASE DATAFILE ''D:\APP\ADMINISTRATOR\ORADATA\ORCL\ USERS01. DBF'' OFFLINE";3)对损坏或丢失的数据文件进行修复和恢复操作RMAN>RESTORE DATAFILE '' D:\A PP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'';RMAN>RECOVER DATAFILE '' D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'';644)数据文件恢复结束后将数据 文件联机。例如RMAN>SQL "ALTER DATABASE DATAFILE ''D:\APP\ADMINISTRATOR\OR ADATA\ORCL\ USERS01.DBF'' ONLINE";表空间的完全恢复1)启动RMAN并连接到目标数据库。如果使用恢复 目录,还需要连接到恢复目录数据库。2)将损坏或丢失的数据文件所属表空间设置为脱机状态。例如:RMAN>SQL "ALTER TAB LESPACE users OFFLINE IMMEDIATE"; 3)对表空间进行修复和恢复操作。例如:RMAN>RESTORE TABLESPACE users;RMAN>RECOVER TABLESPACE users;4)表空间恢复结束后将表空间联机。 例如:RMAN>SQL "ALTER TABLESPACE users ONLINE";66利用RMAN进行不完全恢复(1)启动R MAN并连接目标数据库,如果使用恢复目录,还需要连接到恢复目录数据库。(2)将数据库设置为加载状态。RMAN>SHUTDOWN I MMEDIATE;RMAN>STARTUP MOUNT;(3)利用SET UNTIL命令设置恢复终止标记,然后进行数据库的修复与恢 复操作。(4)完成恢复操作后,以RESETLOGS方式打开数据库。RMAN>ALTER DATABASE OPEN RESETLO GS;基于时间的不完全恢复RMAN>RUN{SET UNTIL TIME ''2013-2-11 10:00:00''; RESTOR E DATABASE;RECOVER DATABASE;}基于SCN的不完全恢复RMAN>RUN{SET UNTIL SCN 13 96202; RESTORE DATABASE;RECOVER DATABASE;}基于日志序列号的不完全恢复RMAN>RUN{ SET UNTIL SEQUENCE 21;RESTORE DATABASE;RECOVER DATABASE;}13.5 逻辑 备份与恢复数据库 逻辑备份与恢复概述使用EXPDP导出数据使用IMPDP导入数据13.5.1 逻辑备份与恢复概述逻辑备份是指利用 Oracle提供的导出工具,将数据库中选定的记录集或数据字典的逻辑副本以二进制文件的形式存储到操作系统中。逻辑备份的二进制文件称为 转储文件,以dmp格式存储。逻辑恢复是指利用Oracle提供的导入工具将逻辑备份形成的转储文件导入数据库内部,进行数据库的逻辑恢复 。逻辑备份与恢复必须在数据库运行的状态下进行。因此,数据库备份与恢复是以物理备份与恢复为主,逻辑备份与恢复为辅的。在Oracle 9i及其之前的数据库版本中提供了Export和Import实用程序用于逻辑备份与恢复。在Oracle 11g数据库中又推出了数据泵 技术,即Data Pump Export(Expdp)和Data Pump Import(Impdp)实用程序用于逻辑备份与恢复。 需要注意,这两类逻辑备份与恢复实用程序之间不兼容。使用Export备份的转储文件,不能使用Impdp进行导入;同样,使用Expdp 备份的转储文件,也不能使用Import工具进行导入。使用EXPDP、IMPDP程序之前需要创建DIRECTORY对象,并将该对象的 READ、WRITE权限授予用户。CREATE OR REPLACE DIRECTORY dumpdir AS ''D:\ORACL E\BACKUP'';GRANT READ,WRITE ON DIRECTORY dumpdir TO ehr;如果用户要导出或导入 非同名模式的对象,还需要具有EXP_FULL_DATABASE和IMP_FULL_DATABASE权限GRANT EXP_FULL _DATABASE,IMP_FULL_DATABASE TO ehr;13.5.2 使用EXPDP导出数据EXPDP导出概述EX PDP参数介绍EXPDP导出实例(1)EXPDP导出概述EXPDP将数据库中的元数据与行数据导出到操作系统的转储文件中。EXPDP 工具的执行方式:命令行方式:在命令行中直接指定参数设置;参数文件方式:将参数设置存放到一个参数文件中,在命令行中用PARFILE参 数指定参数文件;交互方式:通过交互式命令进行导出作业管理。EXPDP导出模式全库导出:通过参数FULL指定,导出整个数据库模式导出 :通过参数SCHEMAS指定,是默认的导出模式,导出指定模式中的所有对象。表导出:通过参数TABLES指定,导出指定模式中指定的所 有表、分区及其依赖对象。表空间导出:通过参数TABLESPACES指定,导出指定表空间中所有表及其依赖对象的元数据和行数据。传输表 空间导出:通过参数TRANSPORT_TABLESPACES指定,导出指定表空间中所有表及其依赖对象的元数据。(2)EXPDP参数 介绍CONTENT:指定要导出的内容。ALL表示导出对象的元数据及行数据;DATA_ONLY表示只导出对象的行数据;METADAT A_ONLY表示只导出对象的元数据。默认为ALL。DIRECTORY:指定转储文件和日志文件所在位置的目录对象,该对象由DBA预先 创建。DUMPFILE:指定转储文件名称列表,可以包含目录对象名。默认值为expdat.dmp。FULL:指定是否进行全数据库导出 ,包括所有行数据与元数据。默认值为NO。JOB_NAME:指定导出作业的名称。默认值为系统自动为作业生成的一个名称。LOGFILE :指定导出日志文件的名称。默认值为export.logPARALLEL:指定执行导出作业时最大并行进程个数。默认值为1。PARFI LE:指定参数文件的名称。SCHEMAS:指定进行模式导出及模式名称列表。TABLES:指定进行表模式导出及表名称列表。TABLE SPACES:指定进行表空间模式导出及表空间名称列表。TRANSPORT_TABLESPACES:指定进行传输表空间模式导出及表空 间名称列表。(3)EXPDP导出实例表导出C:\>expdp system/tiger DIRECTORY=dpump_dir D UMPFILE=emp_dept.dmp LOGFILE=emp_dept.log TABLES=scott.emp,scott. dept PARALLEL=3模式导出C:\ >expdp system/tiger DIRECTORY=dpump_dir DU MPFILE=scott.dmp SCHEMAS=scott 表空间导出C:\>expdp system/tiger DIRECT ORY=dpump_dir DUMPFILE=users.dmp TABLESPACES=users全库导出C:\>expdp s ystem/tiger DIRECTORY=dpump_dir DUMPFILE=expfull.dmp FULL=YES NOL OGFILE=YES13.5.3 利用IMPDP导入数据IMPDP导入概述IMPDP参数介绍IMPDP导入实例(1)IMPDP导 入概述IMPDP是一个用于将转储文件导入目标数据库的工具。IMPDP工具可以将转储文件导入到源数据库中,也可以导入到其它平台上运行 的不同版本的Oracle数据库中。IMPDP工具的执行也可以采用交互方式、命名行方式以及参数文件方式三种。IMPDP导入模式全库导 入:将源数据库的所有元数据与行数据都导入到目标数据库中。模式导入:通过参数SCHEMA指定,将指定模式中所有对象的元数据与行数据导 入目标数据库。表导入:通过参数TABLES指定,将指定表、分区以及依赖对象导入目标数据库中。表空间导入:通过参数TABLESPAC ES指定,将指定表空间中所有对象及其依赖对象的元数据和行数据导入目标数据库。传输表空间导入:通过参数TRANSPORT_ TABL ESPACES指定,将源数据库指定表空间的元数据导入到目标数据库中。(2)IMPDP参数介绍CONTENT:指定要导入的内容。AL L表示导入对象的元数据及行数据;DATA_ONLY表示只导入对象的行数据;METADATA_ONLY表示只导入对象的元数据。默认为 ALL。DIRECTORY:指定转储文件和日志文件所在位置的目录对象,该对象由DBA预先创建。DUMPFILE:指定转储文件名称列 表,可以包含目录对象名,默认值为expdat.dmp。FULL:指定是否进行全数据库导入,包括所有元数据与行数据。默认值为YES。 INCLUDE:指定导入操作中要导入的对象类型和对象元数据。JOB_NAME:指定导入作业的名称。默认值为系统自动为作业生成的一个名称。LOGFILE:指定导入日志文件的名称NOLOGFILE:是否生成导入日志。默认值为NOPARALLEL:执行导入作业时并行进程的最大个数PARFILE:指定参数文件的名称。QUERY:指定导入操作中SELECT语句中的数据导入条件。REMAP_SCHEMA:将源模式中的所有对象导入到目标模式中。REMAP_TABLE:允许在导入操作过程中重命名表REMAP_TABLESPACE:将源表空间所有对象导入目标表空间中。SCHEMAS:指定进行模式导入的模式名称列表。默认为当前用户模式。TABLES:指定表模式导入的表名称列表。TABLESPACES:指定进行表空间模式导入的表空间名称列表。TRANSPORT_TABLESPACES:指定进行传输表空间模式导入的表空间名称列表。(3)IMPDP导入实例表导入C:\>impdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=emp_dept.dmp TABLES=dept,emp CONTENT=DATA_ONLY C:\>impdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=emp_dept.dmp TABLES= dept,emp NOLOGFILE=Y模式导入C:\>impdp system/tiger DIRECTORY=dpump_dir DUMPFILE=scott.dmp SCHEMAS=scott C:\>impdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=scott.dmp REMAP_SCHEMA=scott:test_scott 表空间导入C:\>impdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=users.dmp TABLESPACES=users;数据库导入C:\>impdp scott/tiger DIRECTORY=dpump_dir DUMPFILE=expfull.dmp FULL=YES NOLOGFILE=YES总结备份与恢复概述物理备份数据库逻辑恢复数据库利用RMAN备份数据库利用RMAN恢复数据库逻辑备份数据库逻辑恢复数据库 |
|