1、第第1212章章 数据库备份与恢复数据库备份与恢复备份与恢复机制备份与恢复机制1冷备份与恢复冷备份与恢复2热备份与恢复热备份与恢复3逻辑备份与恢复逻辑备份与恢复412.1 12.1 备份与恢复机制备份与恢复机制n DBADBA的主要职责之一是备份数据库和在数据库发的主要职责之一是备份数据库和在数据库发生故障时高效安全的恢复数据库生故障时高效安全的恢复数据库n 数据库常见故障类型数据库常见故障类型l系统崩溃或服务器崩溃系统崩溃或服务器崩溃l用户错误、冲突或磁盘失效导致的文件丢失用户错误、冲突或磁盘失效导致的文件丢失lSQLSQL语句失败语句失败l网络故障网络故障l场地灾难场地灾难n 备份方法:备
2、份方法:l冷备份冷备份l热备份热备份l逻辑备份逻辑备份Export/ImportExport/Importn 恢复方法:恢复方法:l完全恢复完全恢复l不完全恢复不完全恢复lRMANRMAN备份恢复备份恢复n 备份备份l就是把数据库复制到磁带、磁盘等存储设备的过程就是把数据库复制到磁带、磁盘等存储设备的过程,以供故障发生时执行数据库恢复,以供故障发生时执行数据库恢复l备份的种类备份的种类冷备份冷备份w 一种最简单直接的备份方式,也称为脱机备份,但必须关闭一种最简单直接的备份方式,也称为脱机备份,但必须关闭数据库,这对于当前数据库,这对于当前7 72424的有效性并不可取的有效性并不可取联机热备联
3、机热备w 在数据库打开时执行的备份方式,进行联机备份比进行脱机在数据库打开时执行的备份方式,进行联机备份比进行脱机备份的进程复杂备份的进程复杂用导出用导出EXPEXP应用程序备份应用程序备份w 对脱机备份和联机备份的补充,它无法回滚,所以不能替代对脱机备份和联机备份的补充,它无法回滚,所以不能替代数据库文件的备份数据库文件的备份n 恢复恢复l利用已备份的文件重新建立一个完整的数据库,把利用已备份的文件重新建立一个完整的数据库,把数据库从有故障状态转变为无故障状态的过程数据库从有故障状态转变为无故障状态的过程l恢复的方法恢复的方法完全恢复完全恢复w 将数据库恢复到故障发生前的状态,所有已经提交的
4、操作都将数据库恢复到故障发生前的状态,所有已经提交的操作都进行恢复,确保数据库不丢失任何数据,完全恢复只用于归进行恢复,确保数据库不丢失任何数据,完全恢复只用于归档模式档模式不完全恢复不完全恢复w 将数据库恢复到备份点与介质失败点之间某个时刻的状态,将数据库恢复到备份点与介质失败点之间某个时刻的状态,并不是恢复所有提交的操作,不完全恢复可能丢失部分数据并不是恢复所有提交的操作,不完全恢复可能丢失部分数据l恢复数据库所使用的结构恢复数据库所使用的结构数据库备份数据库备份w 当介质故障时进行数据库恢复,利用备份文件恢复损坏的数据文当介质故障时进行数据库恢复,利用备份文件恢复损坏的数据文件或控制文件
5、件或控制文件日志日志w 每个每个OracleOracle数据库实例的日志记录了数据库所作的全部修改数据库实例的日志记录了数据库所作的全部修改回退段回退段w 回退段用于存储正在进行的事务回退段用于存储正在进行的事务(未提交的事务未提交的事务)所修改数据的老所修改数据的老数据,该信息在数据库恢复过程中用于撤销任何非提交的修改数据,该信息在数据库恢复过程中用于撤销任何非提交的修改控制文件控制文件w 一般用于存储数据库的物理结构的状态,控制文件中的某些状态一般用于存储数据库的物理结构的状态,控制文件中的某些状态信息在实例恢复和介质恢复期间用于引导信息在实例恢复和介质恢复期间用于引导OracleOrac
6、len 举例:磁盘失效后如何保护和恢复数据库?举例:磁盘失效后如何保护和恢复数据库?l1 1、正常工作时,每晚备份数据库,包含所有数据文、正常工作时,每晚备份数据库,包含所有数据文件件l2 2、某天,包含数据库的某个数据文件的磁盘坏了,、某天,包含数据库的某个数据文件的磁盘坏了,一部分数据不可用,因此要执行数据库恢复一部分数据不可用,因此要执行数据库恢复l3 3、把有问题的磁盘更换成新的磁盘、把有问题的磁盘更换成新的磁盘l4 4、将最近的数据库备份存入新的磁盘中以恢复丢失、将最近的数据库备份存入新的磁盘中以恢复丢失的数据文件。但是,恢复的数据文件丢失了备份发的数据文件。但是,恢复的数据文件丢失
7、了备份发生后所提交的事务工作生后所提交的事务工作l5 5、最后,执行数据库恢复工作。在恢复过程中,读、最后,执行数据库恢复工作。在恢复过程中,读取事务日志,把过去提交的事务工作重做,使数据取事务日志,把过去提交的事务工作重做,使数据库文件成为当前文件库文件成为当前文件l6 6、数据库恢复后,打开数据,供用户使用、数据库恢复后,打开数据,供用户使用12.2 12.2 冷备份与恢复冷备份与恢复n 冷备份冷备份(脱机备份脱机备份)是最简单的一种备份方式,在是最简单的一种备份方式,在数据库关闭后进行备份,用户不能访问数据库,数据库关闭后进行备份,用户不能访问数据库,是一种完全备份是一种完全备份n 若要
8、进行冷备份,需要备份数据库的核心内容:若要进行冷备份,需要备份数据库的核心内容:l控制文件:通过控制文件:通过v$controlfilev$controlfile找到找到l重做日志文件,可进行数据的灾难恢复,通过重做日志文件,可进行数据的灾难恢复,通过v$logfilev$logfile找到找到l数据文件数据文件/表空间文件,通过表空间文件,通过v$datafilev$datafile和和v$tablespacev$tablespace找到找到l核心操作的配置文件核心操作的配置文件pfilepfile,通过,通过SHOW PARAMETER SHOW PARAMETER pfilepfile找
9、到找到n 冷备份的步骤:冷备份的步骤:l1 1)以)以DBADBA登录登录CONN CONN scottscott/tiger AS SYSDBA;/tiger AS SYSDBA;l2 2)查找需要的备份文件)查找需要的备份文件控制文件控制文件SELECT SELECT*FROM FROM v$controlfilev$controlfile;重做日志文件重做日志文件SELECT SELECT*FROM FROM v$logfilev$logfile;表表空间文件空间文件SELECT SELECT*FROM FROM v$tablespacev$tablespace;SELECT SELEC
10、T*FROM FROM v$datafilev$datafile;pfilepfile文件文件SHOW PARAMETER SHOW PARAMETER pfilepfile;l3 3)关闭数据库)关闭数据库SHUTDOWN IMMEDIATE;SHUTDOWN IMMEDIATE;l4 4)将所有查找到的数据备份到磁盘上)将所有查找到的数据备份到磁盘上l5 5)重启数据库)重启数据库STARTUP;STARTUP;n 专业的专业的DBADBA必须熟悉上述步骤,才能在出现灾难之必须熟悉上述步骤,才能在出现灾难之后进行及时的恢复后进行及时的恢复n 冷备份的特点冷备份的特点l优点:优点:只需拷贝文
11、件,速度比较快只需拷贝文件,速度比较快只要有备份文件,数据库就可以恢复到某个时间点只要有备份文件,数据库就可以恢复到某个时间点若结合数据库的归档模式可以很好地恢复数据库若结合数据库的归档模式可以很好地恢复数据库维护量相对较少,安全性相对较高维护量相对较少,安全性相对较高l缺点:缺点:备份时数据库必须关闭备份时数据库必须关闭数据库只能基于某一时间点恢复数据库只能基于某一时间点恢复不能按表或用户恢复不能按表或用户恢复n 冷备份恢复步骤冷备份恢复步骤l与冷备份过程相逆与冷备份过程相逆l具体步骤:具体步骤:1 1)以)以DBADBA身份执行身份执行SHUTDOWNSHUTDOWN命令,关闭数据库命令,
12、关闭数据库2 2)用)用host xcopyhost xcopy命令执行逆向拷贝,用备份文件覆盖数据命令执行逆向拷贝,用备份文件覆盖数据库原有的物理文件库原有的物理文件3 3)执行)执行STARTUPSTARTUP命令重启数据库正常工作命令重启数据库正常工作12.3 12.3 热备份与恢复热备份与恢复n 热备份热备份(联机备份联机备份)是在数据库运行时进行的备份是在数据库运行时进行的备份,用户仍可访问数据库,用户仍可访问数据库n 热备份要求数据库运行在归档模式下。该模式下热备份要求数据库运行在归档模式下。该模式下,联机重做日志被归档,数据库中所有事务的完,联机重做日志被归档,数据库中所有事务的
13、完整记录由整记录由OracleOracle以循环方式写入联机重做日志文以循环方式写入联机重做日志文件件n 热备份一般备份数据文件、控制文件和日志文件热备份一般备份数据文件、控制文件和日志文件n 热备份的步骤:热备份的步骤:l1 1)备份所有数据文件)备份所有数据文件l2 2)备份所有归档的重做日志文件)备份所有归档的重做日志文件l3 3)备份控制文件)备份控制文件l4 4)检查发生故障的数据文件,恢复数据文件)检查发生故障的数据文件,恢复数据文件n 热备份的特点热备份的特点l优点:优点:可在表空间或数据文件级备份,备份时间短可在表空间或数据文件级备份,备份时间短备份时数据库仍可使用备份时数据库
14、仍可使用可恢复到某一时间点上可恢复到某一时间点上可对几乎所有数据库实体作恢复可对几乎所有数据库实体作恢复l缺点:缺点:不能出错,否则后果严重。因难于维护,需要特别小心,不不能出错,否则后果严重。因难于维护,需要特别小心,不允许以失败而告终允许以失败而告终12.4 12.4 逻辑备份与恢复逻辑备份与恢复n 逻辑备份逻辑备份l用工具用工具EXPORTEXPORT将数据库部分或全部对象的结构及其将数据库部分或全部对象的结构及其数据导出,并存储到数据导出,并存储到OSOS文件的过程,也被称为导出文件的过程,也被称为导出l用于恢复被意外删除或截断的数据库对象用于恢复被意外删除或截断的数据库对象l在在Or
15、acleOracle数据库之间移动数据数据库之间移动数据l或为数据库升级传输数据或为数据库升级传输数据l启动启动EXPORTEXPORT程序程序 EXP EXP 用户名用户名/口令口令 主机字符串主机字符串l输入输入EXP-helpEXP-help或或EXP help=yEXP help=y显示显示EXPORTEXPORT实用程序的实用程序的可用选项和关键字可用选项和关键字n EXPEXPlEXPORTEXPORT常用参数常用参数l三种方式将参数传递给三种方式将参数传递给EXPORTEXPORT实用程序实用程序命令行方式命令行方式参数文件方式参数文件方式GUIGUI交互方式交互方式l以命令行参
16、数方式运行以命令行参数方式运行EXPORTEXPORTEXPEXP用户名用户名/口令口令 主机字符串主机字符串 parameter1=value1 l以参数文件方式运行以参数文件方式运行EXPORTEXPORT先将参数编辑好,存入一个文本文件中先将参数编辑好,存入一个文本文件中EXP EXP 用户名用户名/口令口令 主机字符串主机字符串 PARFILE=PARFILE=参数文件名参数文件名例题:例题:P214P214n 逻辑恢复逻辑恢复l数据库对象被意外删除或截断之后,使用数据库对象被意外删除或截断之后,使用IMPORTIMPORT将逻将逻辑备份文件中的对象结构以及数据导入到数据库中的辑备份文
17、件中的对象结构以及数据导入到数据库中的过程,也被称为导入过程,也被称为导入n IMPIMPl启动启动IMPORTIMPORTIMP IMP 用户名用户名/口令口令 主机字符串主机字符串l输入输入IMP-helpIMP-help或或IMP help=yIMP help=y显示显示IMPORTIMPORT的可用选项的可用选项和关键字和关键字l可导入整个文件内容到数据库可导入整个文件内容到数据库l可将一个用户的对象导入到另一个用户方案中可将一个用户的对象导入到另一个用户方案中l以命令行参数方式运行以命令行参数方式运行IMPIMPIMPIMP用户名用户名/口令口令 主机字符串主机字符串 parameter1=value1 l以参数文件方式运行以参数文件方式运行IMPIMPIMP IMP 用户名用户名/口令口令 主机字符串主机字符串 PARFILE=PARFILE=参数文件名参数文件名例题:例题:P216P216n 了解数据库的常见故障了解数据库的常见故障n 理解数据库的备份和恢复概念理解数据库的备份和恢复概念n 掌握掌握OracleOracle的备份方法的备份方法l冷备份冷备份l热备份热备份l逻辑备份逻辑备份Export/ImportExport/Import本章小结本章小结