收藏 分享(赏)

第7章-数据库的备份与恢复.ppt

上传人:weiwoduzun 文档编号:4301662 上传时间:2018-12-21 格式:PPT 页数:40 大小:245.50KB
下载 相关 举报
第7章-数据库的备份与恢复.ppt_第1页
第1页 / 共40页
第7章-数据库的备份与恢复.ppt_第2页
第2页 / 共40页
第7章-数据库的备份与恢复.ppt_第3页
第3页 / 共40页
第7章-数据库的备份与恢复.ppt_第4页
第4页 / 共40页
第7章-数据库的备份与恢复.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

1、第7章 数据库的备份与恢复,7.1 备份与恢复概述 7.2 物理备份与恢复 7.3 逻辑备份与恢复 7.4 高级复制技术 7.5 恢复管理器(RMAN) 7.6 Oracle 灾难恢复解决方案 7.7 备份与恢复策略 7.8 实例分析,7.1 备份与恢复概述,一、数据库的备份 备份 :是把数据库复制到转储设备的过程。 转储设备是指用于放置数据库拷贝的磁带或磁盘。 通常也将存放于转储设备中的数据库的拷贝称为原数据库的备份或转储。 备份分为物理备份和逻辑备份两种。 物理备份是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,由于它涉及到组成数据库的文件,但不考虑其逻辑内容。 物理备份包括

2、冷备份和热备份两种方式。 1)冷备份(Cold Backup): 主要指在关闭数据库的状态下进行的数据库完全备份, 备份内容包括所有数据文件、控制文件、联机日志文件、ini文件。 2)热备份(Hot Backup): 指在数据库处于运行状态下,对数据文件和控制文件进行备份, 要使用热备份必须将数据库运行在(Archive Log)归档方式下。 使用 RMAN 恢复管理器(Recovery Manager) 或操作系统命令进行物理备份,逻辑备份: 是利用 SQL 语言从数据库中抽取数据并存于二进制文件的过程。 逻辑备份可按数据库中某个表、某个用户或整个数据库来导出,并且支持全部、累计、增量三种方

3、式。 使用逻辑备份时,数据库必须处于打开状态,且如果数据库是在 restrict 状态将不能保证导出数据的一致性。 Oracle 提供的逻辑备份工具是 EXP。 数据库逻辑备份是物理备份的补充。,二、数据库的恢复,恢复:当发生故障后,利用已备份的数据文件或控制文件,重新建立一个完整的数据库。 根据出现故障的原因,恢复分为两种类型: 实例恢复:Oracle 实例出现失败后,Oracle 自动进行的恢复。 介质恢复:当存放数据库的介质出现故障时所做的恢复。 本书提到的恢复都是指介质恢复。 根据数据库恢复程度,将恢复方法分为两种类型: 完全恢复: 将数据库恢复到数据库失败时数据库的状态。 通过装载数

4、据库备份并应用全部的重做日志做到的。 不完全恢复: 将数据库恢复到数据库失败前的某一时刻数据库的状态。 是通过装载数据库备份并应用部分的重做日志做到的,进行不完全恢复后须在启动数据库时用 resetlogs 选项重设联机重做日志。,三、常用术语,1、增量、累积和完全备份 增量备份(Incremental): 指只备份上次增量,累积或完全备份以后已改变的那些表。 增量导出表的定义和其所有数据,不只是改变的行。 累积备份(Cumulative):指只备份上次完全备份以后已经更改的那些表。 完全备份: 用于建立增量备份和累积备份的一个基点。 注意: 只有在全数据库方式且具有 EXP FULL DAT

5、ABASE 角色的用户,才能做增量、累积和完全备份。,2、在线日志与归档日志 在线日志: 一个 Oracle 数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。 在线日志文件填入日志项,日志项记录的数据用于重构对数据库所作的全部修改。后台进程 LGWR 以循环方式写入在线日志文件。 在线日志可在重用前被保存下来,成为归档日志。 归档日志:Oracle 要将填满的在线日志文件组归档时,则建立归档日志,或称离线日志。 归档机制决定于归档设置,归档已填满的在线日志组的机制可由 Oracle 后台进程 ARCH 自动归档或由用户进程发出语句手工地归档。,3NOARCHIVEL

6、OG 方式与 ARCHIVELOG 方式 数据库可运行在两种不同方式:NOARCHIVELOG 方式或 ARCHIVELOG 方式。 NOARCHIVELOG 方式:不能进行在线日志的归档。 该数据库控制文件指明填满的组不需要归档,当填满的组成为活动,在日志开关的检查点完成,该组即可被 LGWR 重用。 在该方式下仅能保护数据库实例故障,而不能免于介质故障。 只有最近的存储于联机重做日志组中的数据库的修改才可以用于实例或崩溃恢复。 ARCHIVELOG方式: 可实施在线日志归档。 在控制文件中指明填满的日志文件组在归档之前不能重用。 一旦组成为不活动,执行归档的进程立即可使用该组。,4、分布式

7、数据库技术 分布式计算的一个重要组成部分,该技术允许数据在多个服务器端共享。 一个本地服务器可以存取不同物理地点的远程服务器上的数据; 也可使所有服务器均可以持有数据的拷贝/复制,这样系统中的所有服务器均可进行本地存取。5、更新冲突 在异步复制环境中,对于所有应用最关键的就是要确保数据的一致性。 如果在同一时间对同一个表的同一行数据的同一列在两个不同的地点作更新,这种情况就会发生称之为更新冲突的错误。 为保证数据的一致性,更新冲突必须被检测到并且处理以确保在不同地点的数据元素保持同样的值。 更新冲突可以通过限制“所有权”到单一节点或者将更新某个特定数据元素的权利限制到某一具体节点的方法来避免。

8、,6、同步复制和异步复制 同步复制: 复制数据在任何时间在任何复制节点均保持一致。 如果复制环境中的任何一个节点的复制数据发生了更新操作,变化会立刻反映到其他所有的复制节点。 异步复制: 指所有复制节点的数据在一定时间内是不同步的。 如果复制环境中的其中的一个节点的复制数据发生了更新操作,改变将在不同的事务中被传播和应用到其他所有复制节点, 复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。,7.2 物理备份与恢复,一、冷备份与恢复 冷备份又称脱机备份,必须在数据库已经正常关闭的情况下进行,系统会提供给用户一个完整的数据库。 冷备份时可以将数据库使用的每个文件都备份下

9、来,这些文件包括: 所有控制文件(.CTL,默认路径Oracleoradataoradb) 所有数据文件(.DBF,默认路径Oracleoradataoradb) 所有联机 REDO LOG文件(形式为REDO*.*,默认路径Oracleoradataoradb) 初始化文件INIT.ORA(可选)(默认路径Oracleadminoradbspfile)冷备份是最快和最安全的方法。 冷备份的优点是: 是非常快速的备份方法(只需拷贝文件)。 容易归档(简单拷贝即可)。 容易恢复到某个时间点上(只需将文件再拷贝回去)。 能与归档方法相结合,作数据库“最新状态”的恢复。 低度维护,高度安全。,在SQ

10、L*Plus 中进行冷备份,相应语句为: 备份(关闭数据库后)SQLDBA!cp 或 SQLDBA !tar cvf / dev / rmd / 0 / wwwdg / oracle ;恢复(启动数据库后)SQLDBA !recover datafile “ E: dl oradata test.dbf “ ;test.dbf 为需要恢复的数据库。,二、热备份与恢复,热备份要求数据库必须在归档方式下操作,由于热备份需要消耗较多的系统资源,DBA应安排在数据库不使用或使用率较低的情况下进行。热备份的优点是: (1)可在表空间或数据文件级备份,备份时间短。 (2)备份时数据库仍可使用。 (3)可达

11、到秒级恢复(恢复到某一时间点上)。 (4)可对几乎所有数据库实体作恢复。 (5)恢复是快速的,在大多数情况下在数据库仍工作时恢复。热备份的不足是: (1)不能出错,否则后果严重。 (2)若热备份不成功,所得结果不可用于时间点的恢复。 (3)较难维护,必须仔细小心,不允许失败。可以使用 SQL*Plus 程序和 OEM 中的备份向导两种方法进行热备份。,备份过程:,(1)查看数据库是否己经启动归档日志: archivelog list ; 如果归档日志模式没有启动,则打开数据库的归档日志模式, 先使用 shutdown immediate 命令关闭数据库,然后使用如下命令启动数据库: start

12、up mount ; (2)修改数据库的归档日志模式: alter database archivelog ; (3)查看数据库中的表空间文件: select filename from dba_data_files ; (4)使数据库表空间处于热备份状态; alter tablespace example begin backup ; (5)此时可以直接将表空间数据文件复制到另一个目录中进行备份,复制完成后使用如下命令完成数据的备份: alter tablespace example end backup ;,恢复:,(1)首先使出现问题的表空间处于脱机状态: SQL alter datab

13、ase datafile d : oracle oradata oradb example0l.dbf offline ;(2)将原先备份的表空间文件复制到其原来所在的目录,并覆盖原有文件。(3)使用 recover 命令进行介质恢复,恢复 example 表空间: SQL recover datafile d : oracle oradata oradb example0l.dbf ;(4)将表空间恢复为联机状态: SQL alter database datafile d : oracle oradata oradb example0l.dbf online ;至此表空间数据恢复完成。,三

14、、几种非完全恢复方法,1基于 Cancel 的恢复:可把数据库恢复到错误发生前的某一状态。 1)先用 shutdown immediate 命令关闭数据库,将备份数据复制到相应目录中。 2)使用 startup mount 命令启动数据库。 3)使用 recover 命令对数据库进行基于 Cancel 的恢复: SQL recover database until cancel ; 4)恢复完成后,使用 RESETLOGS 模式启动数据库即可: SQL alter database open resetlogs ;2基于时间的恢复:可把数据库恢复到错误发生前某一时间的状态。 1)先用 shut

15、down immediate 命令关闭数据库,将备份数据复制到相应目录中。 2)使用 startup mount 命令启动数据库。 3)使用 recover 命令对数据库进行基于时间的恢复: SQL recover database until time 12-20-2003,08:17:48 ; 4)恢复完成后,使用 RESETLOGS 模式启动数据库即可: SQL alter database open resetlogs ;,3基于 SCN 的恢复:可把数据库恢复到错误发生前的某一个事务前的状态。 1)先用 shutdown immediate 命令关闭数据库,将备份数据复制到相应目录。

16、 2)使用 startup mount 命令启动数据库。 3)使用 recover 命令对数据库进行基于 SCN 的恢复: SQL recover database until change 470786058 ; 4)恢复完成后,使用 RESETLOGS 模式启动数据库即可: SQL alter database open resetlogs ;,7.3 逻辑备份与恢复,一、导出/导入 导出是数据库的逻辑备份,导入是数据库的逻辑恢复。 可以将 Oracle 9i 中的数据移出/移入数据库。 数据的读取与其物理位置无关。 “导出”文件为二进制系统文件,导入时先读取导出的转储二进制文件,并运行以

17、恢复数据库。Oracle的逻辑备份可以通过两种方法来实现, 通过 DOS 环境下的 EXP / IMP 命令,完成备份; 通过 OMS 管理器中的导出工具来完成。,二、导出操作,1、使用 Export 程序进行导出操作 1)语句参数 从命令行调用 Export 程序并且传递各类参数和参数值,可以完成导出操作。 参数和参数值决定了导出的具体任务。 注意:一系列的参数相互冲突会造成Export的指令不一致。 如设置 FULL= Y 且 OAR = HR 就会失败,因为 FULL 参数调用 Full 导出,而 OAR参数指定 User 导出。 2)导出模式:三种导出模式:交互模式、命令行模式和参数文

18、件模式。 交互模式:在输入 EXP 命令后,根据系统的提示输入导出的参数,如:用户名、导出创建的文件名及分配内存块大小等参数。 命令行模式:交互模式类似,不同之处是使用命令行模式时,只能在模式被激活后,才能把参数和参数值传递给导出程序。 参数文件模式:参数文件模式的关键参数是 “ parfile= “。“ Parfile = “的对象是一个包含激活控制导出对话的参数和参数值的文件名。,3)导出类型:导出类型有三种:全局、用户和表。 全局:导出所有的数据、数据定义和用来重建数据库的存储对象。 用户:导出规定用户的数据、数据定义和存储对象。规定的用户名在 “ owner = “参数之后给出。 表:

19、只导出运行该导出用户的数据和数据定义。2、通过导出向导实现导出操作 导出向导能够从数据库中提取各种对象定义和数据,然后将它们存储在二进制格式的导出转储文件中。 导出向导可以指导用户逐步完成导出操作。 导出向导对 3 种导出类型都提供了操作。所有用户都可以按用户类型和表类型导出自己的对象, 只有具有 EXP_FULL_DATABASE 角色的用户可以按全局类型导出对象。,三、导入操作,通过 Import 程序进行导入操作 1、导入可以完成的工作 1)对重要数据进行备份。当出现误删除操作时,利用导入操作通过导出文件将其恢复。 在编程前先将要对其进行操作的表导入到另一个概要中。 如果由于编程中错误删

20、除了表中某些行时,就可从已经导入到概要备份表中恢复被删除行。 2)把数据从一个操作系统中运行的 Oracle 9i 数据库移动到另一个操作系统中的 Oracle 9i 数据库中。 2、使用的参数:导入和导出使用的参数基本相同。 3、导入的模式:与导出完全相同有用户模式、表模式和全局模式(也称为数据库模式) 需注意问题: 全局模式导入,一定要保证 ”Import terminated successfully without warnings”信息在日志文件的最底行。表示所有导入都已完成。 用户模式导入,若是多个源用户和目标用户,必须保证源用户数目与目标用户数目相同。否则,其结果不可预测。,通过

21、导入向导进行导入操作 导入向导可以指导用户完成导入操作。 导入向导的各步窗口与导出向导完全相似,操作方法也相同。需要注意的是: (1)导入操作的目标用户必须事先在目标数据库中创建; (2)所有用户都可以使用用户模式和表模式导入; (3)只有具有 IMP-FULL-DATABASE 角色的用户可以按全局模式导入。,7.4 逻辑备份与恢复,1、多主复制 多主复制方案支持全表在各个主节点间的对称复制,允许所有主节点对主表都有更新操作的权利。 任何一个主节点上的复制表的更新都会被传播并被直接应用到其他所有主表。 一个主节点出现问题,不会对其他主节点之间变化的传播造成影响。 多主复制采用一种称为“延迟远

22、程过程调用(deferred remote procedure calls RPCs)”的机制作为主要的传播和应用变化的机制。,2、可更新快照 Oracle 将只读快照机制扩展为一种允许快照可更新的对称复制机制。 快照更新的传播方式和如何应用到快照主节点采用了和多主复制一样的延迟远程过程调用机制。 对于快照定义,既可是包含一个主表的完全拷贝,也可是为满足基于值的选择标准的主表中行的子集。 快照在主节点刷新按照一定的时间间隔或用户单独请求进行。 最后一次刷新后主表的任何变化也同样被传播并应用到快照。 多个快照的刷新是在一个一致的事务中完成的,确保了数据和引用完整性。,3、混合配置 可以将多主复制

23、和可更新快照复制结合在一起,构成一种新的混合配置,这种配置可以完成对全表或者子表的复制。 如下应用就是一个典型的混合配置方案, 一个系统具有两个位于不同地理区域的中心节点,两个不同地理区域下面还有一些分支机构,两个中心节点可以彼此看做是自己的备份节点。 采用多主复制方法在两个中心站点之间复制数据,同时采用只读或者可更新快照复制方法在每个区域范围中的主节点之间复制全表或者子表。 好处就是当其中的一个中心节点发生问题时,快照主节点可以被重新定义到另一个运行良好的中心节点,从而提高了系统可靠性。,4、过程级复制 主要应用在存在大量数据更新以及采取批处理方式操作数据时需要复制数据的情况。 如:一个以年

24、为单位管理客户订单的公司,对于老的订单数据不再需要在线保存,而需要卸载到某存储介质中。 若在多个节点间复制每一独立的行级变化效率将是非常低的。 这种情况可直接在每个复制节点执行一个过程来直接进行这种更新操作。 Oracle 高级复制提供的分布式模式管理功能可以非常方便地在多个节点上设置和维护过程级复制的远程过程。,7.5 恢复管理器,一、RMAN 的特点 RMAN 的主要特点有: (1)功能类似物理备份,但比物理备份强大; (2)可以压缩空块; (3)可以在块水平上实现增量,实现真正的增量备份; (4)可以把备份的输出打包成备份集,也可以按固定大小分割备份集; (5)备份与恢复的过程可以自动管

25、理; (6)可以使用脚本(存在 Recovery catalog 中); (7)在备份和恢复期间,RMAN 检查损坏的数据块,并在报警日志、跟踪文件和其他数据字典视图中报告损坏的情况。二、相关术语解释 (1)Backup sets 备份集 (2)Backup pieces 备份片 (3)完全和增量数据文件备份集 (4)Image copies镜像拷贝 (5)恢复目录,三、RMAN命令,1基本命令 RMAN 利用 RUN 这个命令来提交作业。 在 RMAN 的环境中,RUN 命令用来编译和执行由大括号括起来的一个或多个命令集合。 如 RMAN 作业命令分配一个磁盘通道并备份数据库。RUN ALL

26、OCATE CHANNEL disk1 TYPE DISK ; BACKUP DATABASE ; ,2其他命令 set duple 可同时创建同一个备份集的多个拷贝。 crosscheck backupset 验证在修复目录中列出备份块是真正可用的。 allocate channel 在RMAN和目标数据库之间建立连接。RMAN 尽可能使用多个通道以便能并发操作。在任意时刻,一个通道仅工作于一个文件拷贝和一个备份集。 deacllocate channel 释放用 allocate 分配的通道。 setlimit channel 控制一个通道对资源的使用。 resync catalog 使得

27、修复目录与目标数据库的控制文件进行比较,可用新的或被修改的信息来更新修复目录。 change 使用备份块如归档日志的可用信息来更新修复目录。 list 查询修复目录以产生内容列表。 report 查询修复目录以获得比列表命令更多的信息。可使用这些信息决定文件需要备份或过时的备份。,四、RMAN的使用,1创建恢复目录 (1)在目录数据库中创建恢复目录所用表空间 create tablespace rmants datafile “ c : oracle oradata cc rmants.ora “ size 20M ; (2)在目录数据库中创建 RMAN 用户并授权 create user r

28、man identified by rman default tablespace rmants temporary tablespace temp quota unlimited on rmants ; grant recovery_catalog_owner to rman; (3)在目录数据库中创建恢复目录 C: rman catalog rman / rman (4)注册目标数据库到恢复目录 目标数据库使用的服务名称是 rman,意思为要使用 RMAN 进行备份的数据库, 而目录数据库使用的服务名称是 CC。 C: rman target sys / sys rman,2启动 RMAN

29、 RMAN 连接到目标数据库: CONNECT TARGET system / manager ora9 ; 3数据库备份 (1)备份整个数据库 RMAN run allocate channel c1 type disk ; backup database format e: dbbackup 2db.dmp ; (2)复制数据文件 RMAN run allocate channel c1 type disk ; copy datafile c : oracle oradata rman users01.dbf to e : dbbackup u.dbf tag = u1215 ; (3)查

30、看备份及复制的信息 RMAN list backup ;,(4)在备份时设置相关参数 format 文件输出格式, %d database name, %s backup sets sequence number , %p backup pieces sequence number filesperset 每个备份集中所包括的文件数RMAN run allocate channel c1 type disk ; set limit channel c1 kbytes 8000 ; backup format e : dbbackup db_%d_%s_%p.bck (database file

31、sperset = 2 ) ;,4数据库恢复,run allocate channel c1 type disk ; restore controlfile to E : / oracle / oradata / ora / control01.ctl ; replicate controlfile from E : / oracle / oradata / ora / control01.ctl ; restore database ; sql alter database mount ; recover database until cancel ; sql alter database

32、open resetlogs ; release channel c1 ; ,7.6 Oracle灾难恢复解决,方案一、Data Guard 的功能简介 1、数据库切换:允许DBA将主数据库切换到备用数据库, 备用数据库变为主数据库,响应用户的请求,而原主数据库变为备用数据库。 保证了数据不会丢失,避免数据库恢复期间无法处理用户的请求。 2、通过分布式组态,增强数据库可用性 Oracle Data Guard 是由主数据库和一到多个备用数据库构成,在 Data Guard 的环境中称为站点, 通常各站点以松散方式分布在各地,以网络连接,即使遇到地震、火灾、洪水等自然灾害,数据库数据也会得到很好

33、保护。 3、同步主站点与备用站点数据 在 Data Guard 环境中,将一站点设置为主站点,用来响应用户请求,事务对数据库所做的修改,以归档日志的形式由日志传输服务自动从主站点传送到各个备用站点,以实现备用站点与主站点的同步。 4、防止数据库的物理损坏:由于主站点物理损坏不可能通过归档日志文件传输到备用站点,降低了由物理损坏带给数据库的风险。,二、数据库的切换,1、主数据库的工作模式: Guaranteed protection:规定在修改主数据库时,至少有一个备用数据库有效。 假如主备之间连接中断,通过中断主实例来禁止数据分歧,保证无数据丢失。 Instant protection:规定在

34、修改主数据库时,至少有一个备用数据库有效。 与 Guaranteed protection 模式不同的是当主备之间的连接中断,允许数据分歧,并当恢复连接后,解决数据分歧的现象。 无数据丢失,对主数据库的性能有较小的影响。 Rapid protection:指出主数据库的修改在备用数据库上有效。 有数据丢失,最小化对数据库性能的影响。 Delayed protection:指出主数据库的修改最终在备用数据库上有效。 Rapid protection 和 Delayed protection 模式即使在网络连接有效时,也允许主数据库与所有的备用数据库有数据分歧,数据的丢失量等同于主数据库联机重做日

35、志的未归档数。 最小化对数据库性能的影响。,2、备用数据库的工作模式:,Managed recovery mode:最大化保护数据, 主数据库将联机重做日志归档到备用数据库,备用数据库自动应用这些日志进行数据库的恢复。 Read-only mode:备用数据库不能应用归档日志。该模式只能对备用数据库进行查询。 当备用数据库重新处于mount 方式,主数据库继续将日志归档到备用数据库上。 Failover 和 Switchover:Failover 和 Switchover 的区别为: 当 Failover发生,备用数据库切换为主数据库后,丢失了备用数据库的所有能力,即不能再返回到备用模式; 而

36、 Switchover 可以,备用数据库可切换为主数据库,也可从主数据库再切换回备用数据库。 主数据库与备用数据库的切换 当主数据库操作在 Guaranteed protection和 Instant protection 两种模式下,可保证数据库在切换的过程中不丢失数据,意味着主数据库所有归档日志都必须应用在备用数据库上。 假如归档日志没有完全应用,或主数据库工作在 Rapid 和 Delayed protection 模式,数据库的切换将导致数据的丢失,数据丢失总量可由主数据库归档日志路径属性和备用数据库归档日志的应用来决定。,三、限制数据丢失量的方法,Oracle9i 可以用以下的方法来

37、限制这个差异: 1、DBA 可以选择让 LGWR 在将重做日志数据写到本地磁盘的同时将数据发送到 standby 数据库。 该功能称为 standby 零数据丢失(standby zero data loss)。 从本质角度讲提供了远程重做日志镜像,但会极大地损失性能。 2、设置系统初始化参数 ARCHIVE_LAG_TARGET。 该参数是一个日志文件开始使用到被发送到 standby 数据库的时间间隔。 推荐值是 1800秒 需注意,没有传送到 standby 数据库的已经提交的事务会丢失,因此长的事务会使 standby 数据库损失更多的数据。,本章练习,1为什么要备份数据库? 2什么是事务日志备份? 3什么是时间点恢复? 4什么是增量备份? 5当恢复数据库的时候,用户可以使用这些正在恢复的数据库吗? 6写出热备份的操作过程和所用的语句。 7结合所学的知识,对最熟悉的一个应用系统做一个数据库备份方案。 8在Oracle9i中建立一个用户数据库,试用本章所学的几种方法对其进行备份和恢复。比较各个方法所用的时间长短以及操作流程的复杂度。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > 数据库

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报