备份和恢复数据库 《Oracle学习笔记》

由于硬件,软件或者人为操作等因素,在使用Oracle数据库的时候,难免会遇到故障.通常Oracle数据库的故障包括介质故障、用户误操作、数据库实例故障、语句故障、进程故障以及网络故障等等。DBA应该定期对数据库进行备份,防止在遇到数据库故障的时候丢失用户的数据。

数据库备份和恢复概述
Oracle数据库备份和恢复是指对数据库文件的物理备份,使用备份文件可以对数据库进行重构。Enterprise Manager中集成的数据库备份和恢复功能可以保护数据文件、控制文件、服务器参数文件和归档重做日志文件。备份数据库的机制在物理层面上工作,它可以保护文件被破坏后能够顺利的恢复,例如意外删除数据文件或者磁盘启动器故障等等。
备份数据库的主要工作是制作数据文件、控制文件、服务器参数文件和归档重做日志文件(如果数据库处于ARCHIVELOG模式下)的副本;恢复数据库的主要工作是从备份介质中将组成数据库的物理文件复制到它的原始位置或者指定的新位置。备份介质可以是磁盘、磁带等存储介质。在执行数据库恢复的过程中,Oracle将从备份数据中更新数据文件,借助重做日志文件,Oracle可以恢复执行备份操作之后的数据库发生的变更。

1、一致性(consistent backup)备份和非一致性(inconsistent backup)备份
Oracle的数据库备份可以分为一致性备份和非一致性备份两种情况。
执行一致性备份操作的时候必须关闭数据库实例,并且在备份的过程中需要保持关闭状态。重做日志中所有提交的数据库变化都会被写入到数据文件中,因此数据文件处于事务一致性状态。当冲一致性备份中恢复数据文件后,可以立即启动并且打开数据库。
如果数据库处于ARCHIVELOG模式下,则可以制作非一致性备份,借助归档重做日志文件可以对非一致性备份进行恢复。对处于打开状态的数据库进行的备份是非一致性备份,因为联机重做日志文件中包含还没有写入到数据文件中的数据变化,必须在重做日志文件被归档后再执行对数据文件的备份操作,才能确保数据库备份是可以恢复的。非一致性备份的最大优势就是可以再数据库运行的状态下执行备份操作,不影响用户的使用。

2、介质恢复
如果要还原归档重做日志文件和数据文件,则在打开数据库之前必须执行介质恢复。在数据库打开之前,所有未写入数据文件的归档重做日志文件中的事务都将应用于数据文件中,从而使数据库处于事务一致性状态。
介质恢复需要控制文件、数据文件(通常从备份中还原)和联机归档重做日志文件。在归档重做日志文件中包含了数据文件备份后数据发生的改变。介质恢复通常用来解决介质故障造成的数据丢失,例如数据文件被破坏、磁盘被损坏、用户误操作删除表中数据等。
介质恢复可以实现完全恢复或者恢复到指定的时间点。
在执行完全恢复的时候,首先还原备份的数据文件,然后再根据联机归档重做日志文件将执行备份操作后发生的改变应用到数据文件中。执行完介质恢复后,数据库将回到发生故障时的状态,而且可以正常打开数据库,不会有任何的数据丢失。
在执行指定时间点恢复的时候,可以使数据库回到一个用户指定的时间点时的内容。首先将从备份数据中恢复在指定时间之前创建的数据文件,然后再根据归档重做日志文件恢复从创建数据库备份到指定时间点的数据变化。指定时间点之后发生的数据改变将会被丢弃。
Enterprise Manager提供完全恢复和指定时间点恢复的用户界面。

3、RMAN
RMAN(Oracle Recovery Manager)基于命令行和Enterprise Manager工具,使用它可以实现高效的数据库备份和恢复操作。RMAN在数据库服务器上工作,可以在数据库备份和还原的过程中提供数据块级的坏块检测。

4、逻辑备份
逻辑备份是对物理备份的有效补充,例如导出数据库对象(表或者表空间等等)。但是逻辑备份不能保护整个数据库,因此有效的数据库备份机制必须是基于物理备份的。
5、闪回(FLASHBACK)技术
Oracle数据库的闪回特典提供了一系列物理和逻辑数据恢复工具,此功能的基础就是快速恢复区(Flash Recovery Area)。
闪回技术的最大特点就是实现自动备份与恢复,这大大减少了管理开销。当Oracle数据库发生人为故障的时候,不需要事先备份数据库,就可以利用闪回技术快速而方便的进行恢复。
闪回技术包括闪回数据、闪回表、闪回回收站、闪回查询、闪回版本查询和闪回事务查询等等。

RMAN 简介
RMAN是Recovery Manager的缩写,即恢复管理器。它可以用来备份数据库文件、归档日志和控制文件,并可以用来执行完全或者不完全的数据库恢复。
RMAN环境至少包含下面的组件。
1)目标数据库:使用TARGET关键字可以将RMAN连接到指定的Oracle数据库。目标数据库是RMAN执行备份和恢复操作的数据库,RMAN会自动维护目标数据库控制文件中元数据的操作。
2)RMAN客户端:RMAN客户端是一个可执行文件,文件名字为RMAN.exe。执行这个可执行文件可以连接到Oracle的数据库服务器,执行RMAN命令,记录数据库控制文件中的活动。在安装Oracle数据库的时候,会自动的安装RMAN客户端,RMAN客户端的存储目录为%ORACLE_HOME%/bin。
RMAN创建的数据库备份有两种方式,即备份集(backup sets)和映像备份(image copies)。
映像备份是独立文件(数据文件、归档日志、控制文件)的复制,它类似于操作系统文件级的文件复制。映像备份记录由RMAN创建,可以通过Enterprise Manager写入到RMAN资料库中,这样RMAN就可以在备份和恢复数据库的过程中使用这些副本了。只要文件被记录到RMAN资料库中,就可以对其进行恢复操作。RMAN只能在磁盘上创建映像备份。
在使用RESTORE DATABASE语句恢复数据库的时候,RMAN使用资料库中的记录来选择执行恢复操作锁需要的备份数据。RMAN资料库主要保存在数据库的控制文件中,因此它对于RMAN是至关重要的,必须保护好控制文件。用户可以指定RMAN资料库的副本,它存储在一个叫做recovery catalog的方案中。recovery catalog方案位于一个独立的数据库中,它可以为多个其他数据库保存元数据。
备份集是BACKUP命令生成的逻辑实体,该命令可以在磁盘或者其他存储介质上生成备份集。每个备份集都包含多个物理文件,成为备份片(backup pieces)。备份片使用压缩的RMAN格式来存储数据库文件的备份数据。备份集的优势之一是通过压缩不使用的数据块来节省备份数据文件的磁盘空间。备份集中只包含数据文件中使用的数据块。一个备份片的大小是有限制的。如果没有大小的限制,备份集就只有一个备份片。备份片的大小不能大于文件系统锁能够支持的文件长度的最大值。
RMAN依赖服务器会话和数据库服务器上运行的进程来创建备份,并执行恢复操作。它使用通道与目标数据库之间的建立连接,使用allocate channel命令可以在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型。

下面介绍一组与RMAN相关的基本概念
1)多文件备份(File mulitiplexing):将不同的多个数据文件的数据块混合备份在一个备份集中。
2)完全备份集(Full backup sets):是对数据文件中使用过的数据块的备份。没有使用过的数据块不进行备份。
3)增量备份集合(Incremental bakup sets):是指备份数据文件自从上一次同一级别的或者更低级别的备份以来被修改过的数据块,与完全备份相同,增量备份也进行压缩。
4)恢复目录(catalog):是由RMAN使用、维护的用来放置备份信息的仓库。RMAN利用恢复目录日志记载的信息去破那段如何执行需要的备份恢复操作。恢复目录可以存在于ORACLE数据库的计划中。虽然恢复目录可以用来备份多个数据库,但似乎还是建议为恢复目录创建一个但单独的数据库,恢复目录数据库不能用户恢复目录备份自身。
5)恢复目录同步(Recovery catalog resyncing):使用RMAN执行backup、copy、restore或者switch命令的时候,恢复目录都会自动进行更新,但是有关日志与归档日志信息没有自动记入恢复目录,需要与目录同步。使用resync catalog命令进行同步。

在使用RMAN之前,需要做好准备工作,包括将数据库设置为归档日志(ARCHIVELOG)模式,创建恢复目录所使用的表空间、创建RMAN用户并且授权、创建恢复目录、注册目标数据库等等。

快速恢复区
为了简化对备份和恢复文件的管理,可以在数据库中创建一个快速恢复区。快速恢复区是用来存储与数据库恢复相关文件的存储空间,他的存储形式包括目录、文件系统和自动存储管理(ASM)磁盘组。Oracle可以在快速恢复区中创建归档日志和闪回日志。RMAN可以将备份集和映像备份保存在快速恢复区中,并且在介质恢复过程中使用它来还原文件。
Oracle数据库会自动管理快速恢复区,删除不再需要的文件。定期将快速恢复区中的备份数据复制到磁带上,从而释放空间给其他文件使用。因此可以将快速恢复区看做是磁带在磁盘上的缓存。

你可能感兴趣的:(oracle学习)