Oracle的备份恢复架构.ppt
Oracle的备份恢复机制与架构,http:/,版权所有(20052008)eygle,Oracle的备份恢复机制,Oracle数据库在运行过程中,数据库中所有数据块的改变都被记录下来,重做日志.数据块的改变按照时间顺序以重做日志记录的方式存储在重做日志文件中通过重做日志和归档日志可以保存数据库中所有的改变数据库的SCN提供了数据文件中的数据与日志记录的对应关系恢复就是将数据文件中缺少的SCN所对应的日志按照时间顺序一一应用,也就是从丢失数据那一刻开始重演日志当所有的日志都应用完成,所有提交的数据都不会丢失,http:/,版权所有(20052008)eygle,备份与恢复的相关组件,http:/,版权所有(20052008)eygle,Oracle的备份与恢复,数据存储在数据文件中,备份就是通过特定方法将这些数据保存出来除了对数据进行备份,对数据库的操作记录也需要备份恢复根据情况不同,分成介质恢复和实例恢复,http:/,版权所有(20052008)eygle,实例故障,当系统运行过程中由于某些原因造成突然的实例故障,需要使用实例恢复造成实例故障的原因可能是:系统崩溃服务器掉电后台进程被异常Kill系统Bug系统资源耗尽实例崩溃等遇到实例故障时,介质并没有存在任何问题,仅仅是实例没有正常关闭,数据库处于不一致的状态(最多丢失1M数据),http:/,版权所有(20052008)eygle,实例恢复的过程,正常关闭的数据库是一致的,可以直接打开非正常关闭的数据库是不一致的,需要执行实例恢复后才可以打开系统启动时SMON进程负责检测同步,如果系统同步,直接打开,如果不同步,SMON自动执行实例恢复实例恢复的基本步骤如下:前滚,应用日志(2次应用,判断最新日志直接应用)打开数据库回滚没提交的事务(按需回滚)实例恢复不需要DBA干预,http:/,版权所有(20052008)eygle,介质故障,介质泛指存储数据库中信息的位置,存储文件或者存储设备都是介质介质故障可能是:数据文件I/O故障数据文件丢失磁盘或者控制器丢失、损坏介质故障会在数据库启动或者运行的过程中自动监测,介质故障会导致数据库宕掉并且无法打开介质故障不能自动恢复,必须由DBA手动完成,http:/,版权所有(20052008)eygle,介质恢复的过程,恢复的实质是应用日志文件中的改变,但必须应用日志记录到对应的文件中介质故障往往意味着需要应用日志的文件或者磁盘已经无法访问,所以首先需要还原介质介质恢复的基本步骤如下:还原数据文件(存储介质)应用日志做恢复在日志应用完成后,数据库会自动将没提交的数据回滚,http:/,版权所有(20052008)eygle,实例恢复与介质恢复的比较,实例故障仅仅是由于系统非正常关闭造成的数据不一致,为了确保一致性而进行的恢复。数据库需要应用日志到最近,并且回滚所有没提交的事务以确保最终的数据都是已经提交的一致数据介质恢复则是由于存储介质出现故障无法读写,造成数据丢失而需要恢复。在应用日志前,首先需要恢复介质实例恢复可以由SMON进程自动完成,介质恢复则必须由DBA手动完成实例恢复仅仅需要应用日志,而介质恢复首先需要恢复介质文件,然后应用日志,http:/,版权所有(20052008)eygle,Oracle的备份方法,为了能够恢复用户数据,必须有可用的备份Oracle本身提供了一些备份的方法,主要包括下面几种:逻辑备份恢复,解决人为故障EXP/IMP(导出/导入)EXPDP/IMPDP(数据泵导出/导入)手动备份与恢复Rman备份与恢复(自动,只备份有数据的数据块)第三方也提供了一些备份方法和备份工具(调用RMAN,直接应用重做日志,OS COPY)也可以考虑直接使用存储级的容灾或者备份方法,http:/,版权所有(20052008)eygle,导出/导入,EXP/IMP是Oracle以前版本就存在的一种备份方法是两个命令行工具,分别进行导出操作和导入操作导出/导入都针对数据库中的逻辑对象,所以也叫逻辑备份与恢复优点:简单易操作针对少量稳定数据备份缺点:时间长,效率低只能恢复导出的那些数据,http:/,版权所有(20052008)eygle,数据泵,EXPDP/IMPDP是10G新的功能,用于取代导出导入工具也是命令行工具,但是增加了一些新功能也是针对逻辑对象的,但是更加灵活优点:简单易操作比导出导入效率高,速度快可以控制进程缺点:只能恢复导出的那些数据,http:/,版权所有(20052008)eygle,手动备份与恢复,手动就是由DBA手工完成,DBA通过相应的OS命令与数据库命令相结合,完成相应的备份恢复任务手动备份简单来说就是复制文件优点:简单易行缺点:备份时间长,需要备份整个文件增加了过程的复杂性,需要DBA干预,http:/,版权所有(20052008)eygle,Rman备份与恢复,Rman是Oracle提供的一个命令行备份恢复软件通过相应的Rman命令来实现对数据库的备份恢复操作与手动备份不同的在于Rman是针对数据块的备份,至备份有数据的数据块优点:简化了备份恢复的操作复杂性备份形成的文件小,备份速度快(压缩备份)可以校验数据块的正确性可以做块级增量备份缺点:需要熟悉Rman的相关命令,http:/,版权所有(20052008)eygle,几种备份恢复方法的考虑,导出/导入比较适合稳定表的备份,非常适合保护对象定义信息数据泵比导出导入更快更灵活,对于大数据表的备份非常适合手动备份与恢复操作简单,适合于技术能力不高的操作人员使用Rman的备份恢复功能更强,但相应的命令也多,对于有较高管理能力的DBA非常适合,也是被广泛推荐使用的方法在真正的备份恢复策略中,可以多种方法结合,http:/,版权所有(20052008)eygle,部署一个稳固的数据库,稳固代表着健壮性,能够抵御各种小故障连续代表高可用性,系统能够保持平稳运行备份恢复代表保障性,在重大故障时减少数据损失良好的备份恢复策略应该也包括构建稳固高效数据库系统的建议,http:/,版权所有(20052008)eygle,稳固数据库的考虑,存储级的稳固RAID双通道卡数据库级的稳固归档模式控制文件复用重做日志文件复用归档日志文件复用,http:/,版权所有(20052008)eygle,高可用数据库的考虑,RAC双机热备Standby异地同步数据库第三方的复制数据库在线的备份等维护操作,http:/,版权所有(20052008)eygle,系统崩溃时的快速恢复,数据库在正常关闭时,将会发生同步操作,内存中所有的脏数据被写入数据文件,并且将最后的scn号写入所有的数据文件头和控制文件中如果系统在运行过程中崩溃,则无法实现同步操作,数据库内存中的数据丢失,需要被恢复这种故障发生时存储介质状态正常,仅仅是数据库没有同步,SMON进程检测到后会自动执行实例恢复,不需要DBA的干预用户会对实例恢复的时间有要求,http:/,版权所有(20052008)eygle,数据库的同步,所有的数据文件(除了离线状态和只读状态的)必须同步数据库才可以正常打开同步是基于当前检查点的如果不同步,SMON将应用重做日志文件中的修改记录以同步数据文件在实例恢复时重做日志文件被SMON自动使用在日志应用完成后还需要将没有提交的事务回滚,http:/,版权所有(20052008)eygle,实例恢复的过程,系统中发生实例恢复的过程如下:1.发现数据文件不同步(out-of-synch)2.应用日志前滚(redo)3.在数据文件中既存在提交的数据也存在未提交的数据4.打开数据库5.回滚没有提交的事务(undo)6.文件中只剩下提交的数据,实例恢复完成,http:/,版权所有(20052008)eygle,调整实例恢复的时间,为了满足用户对系统崩溃的恢复时间要求,应该调整实例恢复的过程,以便在规定时间内完成恢复可以从下面两个方向考虑实例恢复时间的减少:实例恢复的执行总量实例恢复的各个阶段,http:/,版权所有(20052008)eygle,调整实例恢复的执行总量,为了确保实例恢复的时间足够短,可以通过下面的方法减少实例恢复的执行总量:设置影响检查点频度的初始化参数,这些参数决定了在实例恢复过程中最多需要恢复的重做日志块和数据块量定义重做日志文件的大小,影响检查点频度执行 SQL 语句强制执行检查点,http:/,版权所有(20052008)eygle,影响检查点的初始化参数,一些影响检查点频度的参数:FAST_START_MTTR_TARGET期望的MTTR设置,以秒为单位,实例恢复时间最长不超过设置FAST_START_IO_TARGET内存中最大允许的脏数据量LOG_CHECKPOINT_INTERVAL从上一次检查点之后,在写了多少块重做日志块后需要再次执行检查点LOG_CHECKPOINT_TIMEOUT从上一次发生检查点开始,在多长时间后需要再执行一次检查点,http:/,版权所有(20052008)eygle,调整实例恢复的各个阶段,加速前滚的速度加速回滚的速度,http:/,版权所有(20052008)eygle,加快前滚阶段,启用并行的块恢复,多进程同时读取日志RECOVERY_PARALLELISM 是并行恢复的进程数,http:/,版权所有(20052008)eygle,加快回滚阶段,快速启动的按需回滚(Fast-start on-demand rollback)快速启动的并行回滚(Fast-start parallel rollback),http:/,版权所有(20052008)eygle,快速启动的按需回滚,服务进程遇到需要回滚的数据,按照下面的方法进行回滚:仅回滚包括了需要的行的数据块对于该表更进一步的回滚,在后续由SMON进程执行,http:/,版权所有(20052008)eygle,快速启动的并行回滚,当需要回滚的事务比较大时,为了加快回滚的速度,SMON会自动启用并行回滚自动并行回滚出现在需要回滚大事务时Oracle数据库默认启用并行回滚,执行回滚的并行进程数由参数FAST_START_PARALLEL_ROLLBACK设置,下面是这个参数可接受的值:FALSE:不能启用并行回滚LOW(默认):并行度为2*CPU_COUNTHIGH:并行度为4*CPU_COUNT,http:/,版权所有(20052008)eygle,监视并行回滚,可以在下面的视图中监视并行回滚的进度:V$FAST_START_SERVERSV$FAST_START_TRANSACTIONS,http:/,版权所有(20052008)eygle,介质恢复如何减少恢复时间,Restore时间:手动恢复:减小备份的文件大小Rman恢复:减小备份文件中的空块数减少数据文件中的碎片和松散块启用多管道并行Recover时间:手动恢复:更频繁的备份选择最近的备份Rman恢复:更频繁的备份选择最近的备份使用增量备份,