《Oracle数据库备份与恢复实例讲解汇总课件.ppt》由会员分享,可在线阅读,更多相关《Oracle数据库备份与恢复实例讲解汇总课件.ppt(112页珍藏版)》请在三一办公上搜索。
1、Oracle数据库备份与恢复,本章内容,1 数据库常见故障类型2 数据库保护机制3 数据库逻辑备份与恢复4 脱机备份(冷备份)5 联机备份(热备份)6 使用OMS工具的备份与恢复向导7 数据库恢复,DBA的主要职责之一是备份数据库和在数据库发生故障时高效、安全地恢复数据库。备份方法冷备份热备份逻辑备份(Export/Import)恢复方法完全恢复不完全恢复RMAN备份恢复等方式,1 数据库常见故障类型,系统崩溃或服务器崩溃用户错误、冲突或者磁盘失效导致的文件丢失SQL语句失败网络故障场地灾难,2 数据库保护机制,Oracle数据库保护机制:数据库备份和事务日志。,数据库备份一般来说,数据库备份
2、可以分为物理备份和逻辑备份。 物理备份可分为脱机备份和联机备份。脱机备份又称为冷备份,只能在数据库关闭后进行备份;联机备份又称为热备份,数据库没有关闭,用户还可以使用。逻辑备份是使用Export实用程序备份,当数据库出现故障,可以使用Oracle的Import实用程序恢复数据库。,事务日志数据库的事务日志(Transaction Log)是一组操作系统文件,它记录了提交事务所做的数据库修改。 日志主要是保护数据库,在数据库出现故障时执行恢复。 为了防止日志本身的故障,Oracle允许在不同的物理磁盘上维护两个或多个日志的副本。,举例,磁盘失效后如何保护和恢复数据库 。(1)正常工作时,每天晚上
3、备份数据库,包含所有数据文件。(2)某一天,包含数据库的某个数据文件的磁盘坏了,因此一部分数据不可用(做了磁盘容错的情况例外),因此需要执行数据库恢复。(3)把有问题的磁盘更换为新的磁盘。(4)将最近的数据库备份存入新的磁盘中以恢复丢失的数据文件,但是,恢复的数据文件丢失了备份发生后所提交的事务工作。(5)最后,执行数据库恢复工作。在恢复过程中,Oracle读取事务日志,把过去提交的事务工作重做,使数据库文件成为当前文件。(6)数据库恢复后,打开数据,供应用程序使用。,ORACLE数据库两种运行方式归档方式(ARCHIVELOG),归档方式的目的是当数据库发生故障时最大限度恢复数据库,可以保证
4、不丢失任何已提交的数据。不归档方式(NOARCHIVELOG),只能恢复数据库到最近的回收点(冷备份或是逻辑备份)。,3 数据库逻辑备份与恢复,数据库逻辑备份:读一个数据库记录集,并以Oracle提供的内部格式写入一个二进制文件中。这些记录的读出与其物理位置无关。 在Oracle中,Export实用程序执行逻辑备份。使用Oracle的Import实用程序执行数据库恢复。 当用户导入导出时,有相应的权限要求。 在OEM中,当用户连接到Oracle Management Server时,可以使用图形界面执行数据库的导入和导出。,3.1 导出,Oracle的实用程序Export 用来读取一个数据库,
5、并把输入写入一个称为导出转储文件(export dump file)的二进制文件。 EXP USERID=username/password PARAMETER=(value1,value2,.)可以通过如下命令来显示参数 EXP HELP=Y,导出方式:Full方式、User方式和Table方式。 完全数据库导出 exp system/manager full=Y constraints=Y file=f:backuptest.dmp 导出用户表 exp user1/password tables=employees file=f:backuptest.dmp exp user1/passw
6、ord tables=(employees,jobs) file=f:backuptest.dmp 导出用户模式 exp user1/password owner=user1 file=test.dmp,一旦数据已经导出,就可以通过Oracle的Import实用程序执行导入,来恢复数据库。Import实用程序读取由Export创建的二进制导出转储文件并执行其中的命令 。 IMP USERID=username/password PARAMETER=(value1,value2,.)可以通过如下命令来显示参数 IMP HELP=Y导出的数据可以导入到不同的数据库中,甚至可以导入到与生成导出转储文
7、件不同的模式中;可以导入全部或部分已导出的数据 。,3.2 导入,导入用户自身所拥有的表IMP system/ora456 tables=student file=f:backuptest.dmpIMP system/ora456 tables=(student, course) file=f:backuptest.dmp导入用户模式 imp system/manager FROMUSER=scott TOUSER=system tables=dept file=f:backuptest.dmp,案例1,导出数据库表,用户误操作删除表,执行导入表,恢复数据库(1)TEST2数据库(System
8、用户,口令为ora456),导出表student,3.3 逻辑备份案例,(2)删除表student中的数据,或者将整个表删除,数据已经不存在,或者表被删除,(3)导入表student,恢复数据库,(4)查询表和数据,验证导入是否成功,案例2,导入其他方案的表。将Scott的表dept导入System(1)System下没有Scott的表dept,注意,这不同与查询时使用scott.dept,(2)在system下,导出Scott的表dept,导出文件test2.dmp,(3)将Scott的表dept导入到System中(4)再次执行步骤(1)中的查询,验证导入成功,4 脱机备份(冷备份),脱机
9、备份是最简单的一种数据库备份方式,在数据库关闭后进行备份,用户不能访问数据库,是一种完全备份。 脱机备份一般需要备份如下文件:(1)所有数据文件(2)所有控制文件(3)所有联机重做日志(4)init.ora文件,脱机备份步骤(1)以DBA或特权用户登录,对于需要的备份文件,用户也可通过下列SQL语句来了解数据文件、重演日志文件及控制文件的相应位置及名称。SELECT * FROM V$LOGFILE;SELECT * FROM V$DBFILE;SELECT * FROM V$CONTROLFILE;,(2)关闭数据库SHUTDOWN NORMAL;或者执行SHUTDOWN IMMEDIATE
10、;,(3)复制数据文件 用拷贝命令备份全部的数据文件、重做日志文件、控制文件、初始化参数文件等。 简单的处理方法是将数据库所在路径下的文件全部复制备份。在下面实验案例中所用数据库TEST2的目录是:f:oracleoradatatest2,(4)重新启动数据库STARTUP;,脱机备份的优点:只需要拷贝文件,速度比较快。将文件拷贝回去,数据库就可以恢复到某个时间点。若结合数据库归档模式可以很好地恢复数据库。维护量相对较少,但安全性相对较高。,脱机备份的缺点:脱机备份时,数据库必须关闭。单独使用脱机备份,数据库只能基于某一时间点恢复。若磁盘空间有限,使用磁带等外设时速度较慢。脱机备份不能按表或用
11、户恢复。,案例,脱机备份与不完全数据库恢复脱机备份数据库相应文件,由于误操作,删除了users表空间对象STUDENT表,将备份的数据文件复制到原来的位置,恢复数据库到执行误操作前的状态。以SYSDBA登录。数据字典DBA_TABLES可以查询表所在的表空间。,(1)对象STUDENT,有两条记录,(2)脱机备份shutdown immediate;备份数据文件user01.dbf,控制文件,重做日志文件,或者直接将f:oracleoradatatest2目录下的文件全部备份。 备份结束重启数据库startup;,(3)对象student增加一条记录insert into system.stu
12、dent values(1003,liming,20,CS);,(4)模拟误操作,删除了表STUDENTdrop table system.student;commit;,(5)查询对象STUDENT,返回错误信息,(6)关闭数据库shutdown immediate;(7)复制原先备份的数据文件,控制文件,重做日志等到原来目录下,f:oracleoradatatest2(8)startup mount;,(9)执行基于取消的恢复,recover database until cancel,(10)以RESETLOGS方式打开数据库,(11)查询对象STUDENT,只有脱机备份的两条记录,备份
13、后增加的记录没有恢复,5 联机备份(热备份),联机备份是在数据库运行时进行的备份,用户仍然可以访问数据库,一些关键行业的数据必须运行在7*24模式下,并不适合执行脱机备份,必须使用联机备份。联机备份要求数据库运行在归档(archivelog)模式下,该方式下,联机重做日志被归档,数据库中所有事务的完整记录由Oracle以循环方式写入联机重做日志文件 。联机备份一般备份数据文件、控制文件和日志文件。,(1)备份所有数据文件(2)备份所有归档的重做日志文件(3)备份一个控制文件(4)检查发生故障的数据文件,恢复数据文件,联机备份的优点:可在表空间或数据文件级备份,备份时间短。备份时数据库仍可使用。
14、可达到秒级恢复(恢复到某一时间点上)。可对几乎所有数据库实体作恢复。恢复快速,大多数情况下恢复不需要关闭数据库。,联机备份的缺点: 不能出错,否则后果严重。 若联机备份不成功,所得结果不可用于时间点的恢复。因难于维护,所以要特别小心,不允许“以失败而告终”。,案例,联机备份与完全数据库恢复在表空间APPL_DATA上建立对象COURSE,首先执行联机备份,在COURSE表上加入记录,然后删除数据文件APPL_DATA,最后执行恢复,数据文件重新联机,验证恢复成功。,(1)在归档模式下,在表空间APPL_DATA上建立表COURSE,并插入两条记录,(2)切换日志,查看v$log确认当前日志已经
15、更改alter system switch logfile;(3)备份控制文件(在本案例中可以不做)alter database backup controlfile to f:backupbackup.ctl;(4)备份数据文件先将表空间APPL_DATA设置为备份模式alter tablespace appl_data begin backup;拷贝表空间的数据文件APPL_DATA.ORA,其他数据文件不变。copy f:oracleoradatatest2appl_data.ora f:backupappl_data.ora将表空间APPL_DATA设置为正常模式alter table
16、space appl_data end backup;,(5)在COURSE表上添加记录insert into course values(30, database, 20, 4);,(6)使表空间脱机,删除数据文件APPL_DATA.ORA alter tablespace appl_data offline;del f:oracleoradatatest2appl_data.ora,(7)将表空间联机,出现错误,提示恢复数据文件,(8)将备份的数据文件复制到原来所在位置,执行数据文件恢复。copy f:backupappl_data.ora f:oracleoradatatest2appl
17、_data.ora 然后,执行数据文件恢复命令,本例中文件号为11recover datafile 11;,(9)联机表空间,(10)查询对象COURSE表,确认联机备份恢复成功,联机备份前的数据和备份后新增加的数据都存在,6 使用OMS工具的备份与恢复向导,6.1 Oracle管理服务器的配置,使用备份向导实现联机备份与恢复,需要登录到Oracle管理服务器OMS。需要先配置Oracle管理服务器,选择【开始】-【程序】-【OraHome90】-【Configuration and Migration Tools】-【Enterprise Manager Configuration Assi
18、stant】 ,进入OMS的配置步骤。进入OMS后,为了保证备份向导的正确执行,应做如下工作:,(1)检查SYS和SYSTEM用户权限,SYSTEM用户在独立模式下具有SYSDBA权限和SYSOPER权限,在管理服务器模式下不具备SYSDBA权限,不能启动和关闭数据库,需要人工授予SYSOPER和SYSDBA权限,同时应给SYSTEM用户添加角色EXP_FULL_DATABASE和角色 IMP_FULL_DATABASE,确保数据库备份与恢复操作正常。SYS用户无论是独立模式还是管理服务器模式都有SYSOPER和SYSDBA权限。,(2)检查操作系统用户是否作为批处理作业登录。选择【开始】-【
19、程序】-【管理工具】-【本地安全策略】,选择用户权限分配,选择作为批处理作业登录,双击打开后添加Administrator用户。(3)检查节点和数据库的首选证明,设置节点的首先身份证明中的用户名为Administrator,并输入口令。设置数据库的首先身份证明的用户为SYS,输入口令,选择以SYSDBA角色。,第一次登录管理服务器OMS,管理员为SYSMAN,缺省口令为OEM_TEMP 初次登录,系统将提示更改SYSMAN口令。如果系统提示连接验证错误VTK-1000,查看【管理工具】-【服务】-【OracleOraHome90ManagementServer】是否启动,若没有启动,应手动启动
20、该服务。,6.2 使用OMS备份向导,1预定义备份策略,首先选择预定义备份策略,单击下一步按钮,出现“备份频率”对话框,2自定义备份策略打开备份向导,策略选择自定义备份策略,出现“备份选择”对话框。,为了较快地看到备份结果,我们选择备份表空间,这是数据库子集的备份。,查看“作业”节点,在活动项中可以看到备份0053已经启动,等待一会儿切换到历史记录,可以看到备份0053已经执行完成。,选择备份0053,右键选择“查看作业”,可以显示备份的详细信息。,选择状态已完成,单击“显示输出”按钮,得到执行备份的脚本代码。,向导恢复可以选择数据库恢复表空间恢复数据文件恢复三种恢复向导判别目标数据库的状态(
21、归档日志,无归档日志,已装载没有打开,装载并打开)来禁止选项。,6.3 使用OMS恢复向导,恢复整个数据库时,将恢复属于该数据库的所有数据文件,要求数据库只处于装载状态,即NOMOUNT方式启动。表空间恢复将恢复数据库的一个子集合。对选定的表空间进行恢复,一般要求数据库运行在归档模式下。数据文件恢复将恢复单个数据文件,数据文件恢复不如表空间恢复那样常用,一般要求数据库运行在归档模式下,登录到管理服务器,选择数据库,选择【工具】-【数据库向导】-【备份管理】-【恢复】,起用恢复向导。如果不能启动OMS,应查看【管理工具】-【服务】-【OracleOraHome90ManagementServer
22、】是否启动,如果没有启动,先启动该服务。,若要查看执行情况,可以在OMS的节点“作业”中,选择历史记录确认备份和恢复情况。,5.7 数据库恢复,恢复可以分为完全恢复和不完全恢复 完全数据库恢复是恢复到故障发生前的状态,所有已经提交的操作都进行恢复,确保数据库不丢失任何数据,完全恢复只用于归档模式。不完全数据库恢复是将数据库恢复到备份点与介质失败点之间某个时刻的状态,并不是恢复所有提交的操作,不完全恢复可能丢失部分数据。 任何类型的恢复包括两个阶段:前滚阶段和回滚(回退)阶段。,前滚阶段在前滚恢复阶段(roll-forward recovery),恢复管理器应用必要的事务日志组“重做”(REDO
23、)所有提交的不在数据库数据文件中的事务 。,回滚阶段在前滚恢复后,Oracle必须执行回滚恢复(roll-back recovery)。 由于一些未完成的事务对数据库的修改信息已经提交到数据库,为保证数据库的一致性,需要清除这些事务对数据库的修改,数据库应执行回滚操作(UNDO),强制撤销这些未完成事务。,前滚和回滚的执行除了管理员或应用程序调用外,执行前滚操纵还是回滚操作与检查点的出现相关,数据库备份日志回退段控制文件,7.1 恢复数据库所使用的结构,当数据库实例意外地(如掉电、后台进程故障等)或预料地(发出shutdown abort语句)终止时出现实例故障,此时需要实例恢复。 实例恢复将
24、数据库恢复到故障前的事务一致状态。如果联机备份时出现实例故障,则需要介质恢复。在其它情况下,Oracle在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。,7.2 实例故障的一致性恢复,恢复步骤处理(1)为恢复数据文件中没有记录的数据,进行前滚。数据记录在联机日志中,包括对回滚段的内容恢复。(2)回滚未提交的事务。(3)释放在故障时正在处理事务所持有的资源。(4)解决在故障时执行的任何悬而未决的分布事务。,电源失效和软件问题是引起一台Oracle数据库服务器出现意外崩溃的常见原因。 当系统崩溃时,数据库服务器没有完全关闭。在系统崩溃期间,Oracle没有时间执行数据库检查点以确保缓
25、存中被修改的数据块安全地写回到数据文件中。系统崩溃不会永久损坏任何一个数据库的数据文件。,7.3 崩溃恢复,介质故障是当一个文件、一个文件的部分、磁盘不能读或不能写时出现的故障,介质故障后,必须执行一个介质恢复操作。在一个典型的介质恢复期间,必须完成以下几步操作:(1)修理所有的硬件问题(2)重建丢失的数据文件(3)使用必要的事务日志组,完成恢复操作(4)执行一个适当的介质恢复,7.4 介质恢复,完全恢复是一种恢复所有提交事务的操作,恢复全部丢失的修改。完全恢复包括数据库恢复、表空间恢复和数据文件恢复。,7.5 完全恢复,数据库恢复数据库恢复是恢复数据库中所有丢失工作的最简单的方法,用于恢复数
26、据库的全部数据文件,恢复管理器识别受损的数据文件并且使用恢复目录、可用的数据文件备份集和事务日志来执行自动恢复。执行数据库恢复,应当关闭数据库,使其不可使用。,表空间恢复当一个数据库的部分被损坏,并且需要高可用性时,可以考虑使用表空间恢复。对特定表空间的全部数据文件中丢失的工作进行恢复。但是,如果系统表空间损坏了,不能执行系统表空间的恢复工作。,数据文件恢复当一个单独的数据文件损坏,可以考虑数据文件恢复,可用于一个特定数据文件中丢失的工作。在数据库打开,并且受损的数据文件所在的表空间脱机后,利用恢复管理器来执行数据文件的恢复。,在一些情况下,可以执行不完全恢复,使用事务日志的重做项恢复提交事务
27、的一部分工作,重构受损的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。 Oracle和恢复管理器支持三种不同类型的不完全恢复基于时间(TIME)的恢复基于修改(SCN)的恢复基于取消的恢复。,7.6 不完全恢复,8 小结,数据库的常见故障主要有:系统崩溃或服务器崩溃,用户错误、冲突或者磁盘失效导致的文件丢失,SQL语句失败,网络故障,场地灾难。,备份(Backup)就是把数据库复制到磁带、磁盘等存储设备的过程,以供故障发生时执行数据库恢复(Recover)。备份的目的是防止不可预料的错误和故障导致数据丢失和应用错误。Oracle数据库的备份方法有:冷备份、热备份和逻辑备份(Ex
28、port/Import)。恢复方法有:完全恢复、不完全恢复、RMAN备份恢复等方式。,Oracle数据库保护机制主要有数据库备份、事务日志。在Oracle中,Export实用程序就是用来完成逻辑备份。若要使用逻辑备份来恢复数据库,那么可以使用Oracle的Import实用程序。当用户导入导出时,有相应的权限要求。,脱机备份是最简单的一种数据库备份方式,必须在数据库关闭后进行备份,用户不能访问数据库,是一种完全备份。脱机备份可以用于恢复整个数据库,恢复时将备份的文件复制回来,系统就可以正常运行,但备份后数据库所做的操作就丢失了,系统只是恢复到备份时的状态。脱机备份一般需要备份数据文件、控制文件、
29、联机重做日志、参数文件等。,联机备份是在数据库运行时进行的备份,用户仍然可以访问数据库。联机备份要求数据库运行在归档模式下。联机备份一般备份数据文件、控制文件和日志文件。一般写入磁盘或磁带。,创建Oracle Management Server(OMS),可以使用OMS的备份向导实现联机备份与恢复。备份向导可以采用预定义备份策略和自定义备份策略。恢复分为整个数据库、表空间和数据文件恢复。,数据库恢复是DBMS的一个重要组成部分。恢复处理随所发生的故障类型而不同。恢复可以分为完全恢复和不完全恢复。完全数据库恢复是恢复到故障发生前的状态,所有已经提交的操作都进行恢复,确保数据库不丢失任何数据,完全恢复只用于归档模式。不完全数据库恢复是将数据库恢复到备份点与介质失败点之间某个时刻的状态,并不是恢复所有提交的操作,不完全恢复可能丢失部分数据。任何类型的恢复包括前滚阶段和回滚阶段。,