《数据库备份和恢复.ppt》由会员分享,可在线阅读,更多相关《数据库备份和恢复.ppt(42页珍藏版)》请在三一办公上搜索。
1、第八章 数据库备份和恢复,8.7 数据泵,数据泵(Data Pump)是Oracle 10g新增的实用程序,它可以从数据库中高速导出或导入数据库的方法;Data Pump方式导入/导出特性支持并行任务处理(可设置并行的线程数)支持暂停和断点重新启动导入、导出任务支持导入、导出远端数据库中的对象支持在导入时通过参数控制,实现自动修改对象的所属表空间、数据文件等。提供了非常细粒度的对象控制,8.7 数据泵,比较exp与expdp1)exp是客户端程序,既可以在客户端使用,也可以在服务器端使用;2)expdp是服务器端工具,只能在ORACLE服务器端使用,不能在客户端使用;3)data pump导出
2、导入所得到的文件跟传统的import/export程序导出导入的文件不兼容数据泵技术相对应的工具是Data Pump Export(expdp)和Data Pump Import(impdp)expdp.exe和impdp.exe文件存在于:oracleproduct10.2.0db_1BIN 文件夹下,8.7 数据泵,impdp/expdp在处理数据时提供了几种操作模式整库模式,导入或导出整个数据库,对应参数fullschema模式:导入或导出schema下的自有对象,对应参数schemas表模式:导入或导出指定的表及其数据定义(依赖于该表的对象,例如索引、约束等同时被导出),对应参数tab
3、les表空间模式:导入导出用户指定表空间中,有操作权限的表及相关对象,对应参数 tablespaces,8.7 数据泵,使用datapump工具的准备工作 创建一个外部目录。data pump要求为将要创建和读取的数据文件和日志文件创建目录,用来指向目标目录。在oracle中创建目录对象时,可以使用 create directory语句以dba的身份登录数据库,在命令窗口中输入:SQL create directory mydump as d:oracle;SQL grant read,write on directory mydump to scott;SQL select*from dba
4、_directories;,8.7 数据泵,应用expdp工具举例:导出scott用户的表emp和dept,8.7 数据泵,应用expdp工具举例:导出整个schema:scott,schemas=scottDIRECTORY=mydumpDUMPFILE=scott_full.dmpLOGFILE=scott_full.log,8.7 数据泵,导出时用于筛选的参数exclude参数 用来实现排除对象,如果排除了一个对象。使用exclude的格式如下:exclude=object_type:name_clause,.其中,object_type可以是任何oracle对象类型,包括权限、索引和表
5、等;name_clause用来限制返回的值例如:除emp之外的表 EXCLUDE=TABLE:”=EMP”反之,有include参数 INCLUDE=TABLE:”LIKE E%”query参数作用同exp命令的query参数,8.7 数据泵,应用impdp工具举例:导入scott用户的表emp,8.7.2 通过OEM导入导出数据,使用导出向导导出数据,首先要创建目录对象。(1)创建目录对象在如图8.13所示的Oracle企业管理器中,在“方案”类别选择“目录对象”单击鼠标左键,进入“目录对象搜索”界面,如图8.14所示。,图8.13 Oracle企业管理器,图8.14目录对象搜索界面,8.7
6、.2 通过OEM导入导出数据,单击“创建”按钮,进入“创建目录对象”界面,如图8.15所示。改界面包含一般信息和权限两个选项页面。在“一般信息”页可以指定目录对象的详细资料。在“名称”文本框输入名称;在“路径”文本框输入路径名称。可以单击“测试文件系统”以确保输入的路径信息有效。,图8.15一般信息界面,8.7.2 通过OEM导入导出数据,单击“权限”选项页面,出现如图8.16所示页面。在该页面中以指定或修改活动表中所列数据库用户的目录对象权限。单击“添加”按钮,进入“选择”用户界面,如图8.17所示。为目录对象选择可访问它的数据库用户。,图8.16权限界面,图8.17选择用户界面,8.7.2
7、 通过OEM导入导出数据,选择“SYSTEM”用户,单击“确定”按钮,返回图8.16所示界面,此时在界面中可以看到所选择的用户,如图8.18所示。在图8.18所示界面中,为ADMIN和SYSTEM用户对新建目录对象的访问权限赋予读写权限。勾选“读访问权限”和“写访问权限”。单击“确定”按钮,完成目录对象的创建。,图8.18选择用户后权限页面,图8.19 Oracle企业管理器,图8.20导出类型界面,通过导出向导导出数据 维护-导出到导出文件-选择导出类型以导出整个方案为例,单击“继续”按钮,进入“方案”界面,如图8.21所示。使用此界面可以选择要导出其对象的方案。单击“添加”按钮,进入“添加
8、方案”界面,如图8.22所示。在该界面将方案添加到可用方案列表中。,图8.21方案界面图,8.22添加方案界面,选择scott,单击“选择”按钮,界面返回到图8.21所示界面,此时在该界面出现scott方案。单击“下一步”进入“选项”界面,如图8.23所示。该页面可以为导出操作设置线程选项、估计磁盘空间和指定可选文件。,图8.23选项界面,生成日志文件的目录对象选择前面创建的BAK_DIR目录对象。单击“高级选项”按钮,出现导出其他选项设置,如图8.24所示。在此可以设置从源数据库导出的内容、闪回操作等内容。,图8.24显示高级选项的选项界面,单击“下一步”按钮,进入“文件”界面,如图8.25
9、所示。在该界面可以为导出文件指定目录名、文件名和最大大小。,图8.25文件界面,单击“下一步”按钮,进入“调度”界面,如图8.26所示。在“作业参数”类别的“作业名称”和“说明”文本框输入名称和说明性文字。Oracle提供了下列2种作业的处理方法:立即:马上提交,准备执行。以后:设置作业启动的具体时间。选择“立即”提交作业。,图8.26调度界面,单击“下一步”按钮,进入“复查”界面,如图8.27所示。,图8.27复查界面,单击“提交作业”按钮,进入如图8.28所示界面。系统正在处理导出作业。导出成功后,进入“作业活动”界面,如图8.29所示。,图8.28处理导出作业,图8.29作业活动界面,在
10、图8.29所示界面中,单击导出作业名称admin,进入“作业运行情况”界面,如图8.30所示。该界面显示导出的基本信息,图8.30作业运行情况界面,8.7.2 通过OEM导入导出数据,通过向导进行导入操作使用“导入”向导可以导入数据库的内容、对象和表,对于Oracle 10g数据库,Oracle企业管理的导入和导出作业是作为数据泵作业执行的。(1)在如图8.19所示界面中,单击“从导出文件中导入”,进入“文件”界面,如图8.31所示。,图8.31文件界面,(2)单击“继续”按钮,进入“读取导入文件”界面,如图8.32所示。该过程需要一段时间,在读入成功后,进入“方案”界面,如图8.33所示。,
11、图8.32读取导入文件,图8.33方案界面,(3)单击“添加”按钮,进入“添加方案”界面,如图8.34所示。该界面出现的方案是对应导出文件的。(4)勾选要进行导入的方案,单击“选择”按钮,界面返回到图8.33所示界面,此时界面出现刚选择的方案。,图8.34添加方案,(5)单击“下一步”,进入“重新映射”界面,如图8.35所示。在该界面指定将每个用户的数据导入同一个用户的方案,还是导入源用户和目标用户字段中指定的不同用户的方案。,图8.35重新映射界面,(6)单击“下一步”,进入“选项”界面,如图8.36所示。在该界面设置导入作业的最大线程数以及是否生成日志文件。如果勾选了生成日志文件,那么在目
12、录对象下拉框选择生成日志文件的存放路径,在“日志文件”文本框输入日志文件名称。,图8.36选项界面,(7)在“选项”界面单击“显示高级选项”按钮,展开高级选项设置页面,如图8.37所示。在“高级选项”中可以设置从源数据库中数据如何导入、是否导入全部对象或只是有条件的导入;表存在时采取跳过、附加、截断或替换操作等。(8)单击“下一步”,进入“调度”界面。该界面同导出的调度界面,以下步骤同导出基本相同,在此不再赘述。,图8.37高级选项,数据库的物理备份,8.4 脱机备份,脱机备份又称冷备份。冷备份是数据库文件的物理备份,需要在数据库关闭状态下进行。如何关闭数据库服务?通过命令shutdown,该
13、命令中的参数:1、normal:正常方式关闭数据库,为默认选项,关闭数据库时执行以下操作:禁止用户创建新连接等待当前正在连接的用户断开连接,如用户不主动断开连接,shutdown命令会一直等待关闭数据库、卸载数据库、关闭实例,8.4 脱机备份,2、immediate:立刻执行关闭,该方式是常用的关闭方式所有未提交的事务全部回滚不允许创建新连接已经创建的链接,如果有正在执行的SQL语句,则等待其完成,如果没有则立刻断开该链接关闭数据库、卸载数据库、关闭实例3、transactional:以事务为准的关闭方式,介于normal和immediate两种方式不允许创建新连接已经创建的连接,不允许在产生
14、新的事务等待未提交的事务提交,然后断开连接关闭数据库、卸载数据库、关闭实例,8.4 脱机备份,4、abort 中止数据库中止当前所有执行的SQL所有连接全部断开未提交事务不进行回滚(下次启动时,进行实例恢复)关闭数据库、卸载数据库、关闭实例,8.4 脱机备份,启动数据库,以dba的身份连接数据库,执行startup命令该命令所带参数的含义:nomount:只启动数据库实例mount:启动实例并加载数据文件open:启动实例,加载数据文件并打开(默认选项)force:与open不同的是当前数据库若处于打开状态,则会自动shutdown abort当前数据库,然后再重新启动,8.4 脱机备份,通常
15、在数据库通过一个shutdown normal或shutdown immediate命令正常关闭后进行。当数据库关闭时,其使用的各个文件都可以进行备份。这些文件构成一个数据库关闭时的一个完整映像。冷备份要备份文件包括所有数据文件、所有控制文件、所有联机重做日志、init.ora文件和SPFILE文件等。冷备份一般在SQL*Plus中进行。,8.4 脱机备份,【例8.3】把数据库的所有数据文件、重做日志文件和控制文件都备份(1)正常关闭要备份的实例C:sqlplus/nologSQLconnect system/manager as sysdbaSQLshutdown normal(2)备份数据
16、库使用操作系统的备份工具,备份所有的数据文件、重做日志文件、控制文件和参数文件(3)启动数据库SQLstartup mount,8.5 联机备份,联机备份又称为热备份或ARCHIVELOG备份。联机备份要求数据库运行在ARCHIVELOG模式下。Oracle是以循环方式写联机重做日志文件(redo01.log),写满第一个日志后,开始写第二个,依次类推。当最后一个联机重做日志文件写满后,LGWR(Log Writer)后台进程开始重新向第一个文件写入内容,这样原先存于第一个文件中的时间点信息就会丢失;在归档模式下,当日志写满时会被归档。例如,当前在使用联机重做日志1,当1写满的时候,切换日志文
17、件,开始写联机重做日志2,这时联机重做日志1的内容会被拷贝到另外一个指定的目录下。这个目录叫做归档目录,拷贝的文件叫归档重做日志,8.5 联机备份,联机备份所用工具:RMAN(Recovery Manager),是一个挂在目标数据库客户端的实用程序,在操作系统下以命令的方式运行。,8.5 联机备份,查看当前数据库的日志模式,默认设置为非归档模式,以dba身份连接到数据库,8.5.1 以ARCHIVELOG方式运行数据库,无论用向导还是用命令对系统进行备份,都要求数据库运行在ARCHIVELOG方式下。下面说明如何进入ARCHIVELOG方式SQLshutdown immediate SQLst
18、artup mount SQLalter database archivelog;SQLarchive log start;SQLalter database open;,8.5 联机备份,使用RMAN,全库备份backup database该备份集生成两个备份片段(文件),一个存储数据文件,一个存储控制文件和spfile(服务器端初始化参数文件),默认保存在oracle安装目录下,也可通过制定format参数来定义备份片段的路径例如:backup database format d:oralcebackupbak_%u,8.5 联机备份,表空间的备份,以备份users表空间为例backup tablespace users;数据文件的备份backup datafile C:oracleproduct10.2.0oradataorclusers01.dbf;控制文件的备份backup current controlfile;,8.6 恢复,将数据库处于mount状态,执行以下命令restore database;recover database;举例:通过备份后,将数据库关闭,删除一个数据文件,再对整个数据库进行恢复,