一、Backup and Recovery Overview
1、Backup and Recovery Overview
1.1 What is Backup and Recovery?
一般,备份和恢复引用各个策略和过程保护你的数据库背离数据丢失,同时在任何一种数据丢失后重建数据库。
1.1.1 Physical Backups and Logical Backups
一个备份是来自数据库文件的一个拷贝,它可以用做重建数据。备份可以被分为物理备份和逻辑备份。
物理备份是被用做还原和恢复数据库的物理文件的备份,比如数据文件、控制文件和归档日志文件。最终,每个物理备份是保存数据库信息到其他位置(不论是磁盘还是某些离线存储比如磁带)的文件的一个拷贝。
逻辑备份包含使用一个oracle导出工具导出的逻辑数据(比如表或者存储过程),它们被保存在一个二进制文件,以便之后使用相应的oracle导入工具再导入数据库。
物理备份是任何备份和恢复策略的基础。逻辑备份在很多情况下是对物理备份的一个有用的补充,但是没有物理备份只有逻辑备份是一个不充足的保护。
除非特殊指定,被用在备份和恢复文档的说法:备份引用物理备份,同时备份部分或者全部数据库是采取多种物理备份。在备份和恢复文档集中关注点几乎只是物理备份
1.1.2、从备份中恢复:错误和失败
虽然有很多类型的问题停止一个数据库的基本操作或者影响到数据库I/O操作,但是只有两种情况需要dba介入和介质恢复:介质失败和用户错误
其他失败可能需要dba介入去重启数据库(一个实例失败后)或者分配更多磁盘空间,但是这些情况一般不会引起数据丢失或者需要从备份恢复
了解用户错误-
当应用逻辑错误或者自动化缺少步骤的错误,数据库中的数据被错误地改变或者删除,会引起用户错误。数据丢失由于用户错误包括:缺少步骤、drop重要的表或者删除/改变
表的内容。尽管用户一直练习和小心的权限管理可以阻止最大的用户错误,但是你的备份策略决定如何从容地恢复丢失的数据。
了解介质失败-
一个介质失败是需要运行数据库的磁盘文件的一个读或写的失败,由于磁盘的物理问题,比如磁盘头崩溃。任何一个数据库文件易受介质失败伤害。
一个介质失败后,适当的恢复技术依赖于被影响的文件和可用备份的类型
1.1.3、Oracle Backup and Recovery Solutions: RMAN and User-Managed Backup
为了完成基于物理备份的备份和恢复,你有两个可用的方案:
(1)recovery manager
它是一个工具,它和运行在oracle服务器上的会话集成从而完成一系列的备份和恢复活动,也可以保存备份历史数据的一个资料库
(2)the traditional user-managed backup and recovery
传统的用户管理的备份和恢复,你使用混合的操作系统命令和sql*plus的备份、恢复能力直接管理组成数据库的文件
以上两种方法都可以被oracle公司支持,而且都有全面地文档化。rman是数据库备份和恢复中更受人欢迎的解决方法。很多的备份和恢复文档中关注基于rman的备份和恢复。
用户管理的备份和恢复技术在后边的单元Oracle Database Backup and Recovery Advanced User‘s Guide会被覆盖到。
无论你使用rman还是用户管理的方法,你都可以使用方案对象的逻辑备份来补充你的物理备份。在还原和恢复后,被保存的数据随后再被导入从而重建这些数据。然而,逻辑
备份很大程度的超过了备份和恢复文档的范围
1.2、备份和恢复:基本的概念
通过user-managed技术或者通过rman,数据库的物理结构和在数据库恢复进程中的角色决定了备份和恢复的构成。
1.2.1、Physical Database Structures Used in Recovering Data
组成数据库的文件和其他结构保存了数据,同时守护数据库远离可能的失败。该论述说明组成数据库的每一个物理结构和它们在一个来自备份的数据库的重建中说扮演的角色。这部分包括
一下主题:
(1)数据文件和数据块
(2)重做日志
(3)回滚段
(4)控制文件
Datafiles and Data Blocks-
一个数据库由一个或多个叫做表空间的逻辑存储单元组成。在一个数据库中的每个表空间由一个或多个叫做数据文件的文件组成,它们是在操作系统中的物理文件,这些文件包含了保存在
表空间中的数据。最简单的oracle数据库也会有一个保存在数据库中的表空间。
数据库使用叫做数据块的逻辑单元 管理在数据文件中的存储空间。数据块是数据库可以使用和分配的最小存储单元。
被改变或者新数据不会被立刻地写入数据文件。更新被缓冲到内存,过一段时间被写入数据文件。如果数据库没有经过一个正常的shutdown(但它打开时,因为一个实例失败异常退出或者
shutdown abort),那么在内存中的数据通常不会被写入到数据文件。以前被还原的数据文件,或者没有被关闭的数据文件,通常不能完全最新化。
一个数据库的数据文件的拷贝是任何备份的临界部分。关于数据文件和数据块的详细内容参考Oracle Database Concepts。
Redo Logs-
重做日志记录一个数据库的所有数据文件的改变。任何时刻的数据在被改变时,在它们被写入数据文件之前,会被记录到在线重做日志中。
一个oracle数据库至少需要两个重做日志组,同时,在每个日志组至少有一个在线重做日志成员。不时地,数据库会循环转动在线重做日志组。
因为重做日志包含了数据文件所有变更的记录,如果按时地从某个时间点的数据文件的拷贝和从那个时间点向前的一个完整的重做日志集是可用的,
那么数据库可以重做记录在重做日志中的改变。如果重做日志已经被保存,上述才会有可能。
所以,保存重做日志是很多备份策略中一个重要的部分。保存重做日志的第一级别是通过一个archive进程。数据库可以把当前不再使用的重做日志组拷贝
到一个或者多个位置。在一个重做日志文件被归档后,它可以被备份到磁盘或者磁带的其他位置,就是为了长久储存和以后的恢复操作。
没有归档日志,你的数据库备份和恢复选项会被严格地限制。你的数据库在备份之前必须处于离线,同时你还原数据时,只能恢复到备份的那个时刻。
Control Files-
控制文件包含了数据库物理结构的记录和这些物理结构的状态信息。保存在控制文件的几种类型的信息关系到备份和恢复:
(1)数据库信息(resetlogs scn和时间戳)
(2)表空间和数据文件的记录(文件名、数据文件检查点、读/写状态、离线类别)
(3)重做线程(当前重做日志)的信息
(4)日志记录(日志序列号、每个日志中的scn范围)
(5)受损数据块的信息
用于数据文件的恢复进程会被在控制文件的状态信息说引导,比如数据库的检查点、当前重做日志文件和数据文件的数据文件头检查点。控制文件的丢失使数据丢失的恢复更加困难。
Oracle Database Concepts提供了关于控制文件更多的信息。
Database Backup and Recovery Basics