随笔-42  评论-12  文章-0  trackbacks-0
 

数据恢复策略决定数据备份策略

一、规划数据恢复策略

1.对于用户错误:基于时间点的恢复和闪回特性

如果有逻辑备份(exp),有时你可以将数据导入。这个方法假定你有规律的导出逻辑备份,并且导出之间的数据并不重要。

你可以完成基于时间点的恢复,将一个表空间甚至整个数据库还原回错误之前的时间点。你需要一个在错误之前的备份以及从备份的时间到出错时间的重做日志。

2.对于磁盘错误:还原和介质恢复

示例:联机重做日志恢复

丢失联机重做日志组的所有成员的恢复方法取决于很多因素,例如:

数据库的状态(open,crashed,closed consistently

丢失的重做日志组是否是current状态

丢失的重做日志是否被归档

加入你丢失了当前的日志组(current),并且数据库没有在一致状态下关闭(或者open,或者crashed),那么你不得不还原一个旧的备份并且完成基于时间点的恢复,然后open resetlogs。你会丢失保存在丢失的日志文件中的所有数据改变。在此之后你应该立即进行一次新的完全数据库备份。由于丢失的日志,之前的日志不是可恢复的。

如果你丢失了当前的日志组(current),并且如果数据库在一致状态关闭。然后你可以open resetlogs并且不会有数据丢失。但是你应该进行一次新的备份。

如果你丢失了非当前的日志组(noncurrent),然后你可以使用alter database clear logfile 语句来重建所有的日志成员。没有事务丢失。如果丢失的日志组已经被归档了,就不需要其它操作了。否则,你需要立即完成一次新的备份。

3.对于数据文件块的损坏:数据块恢复

如果一个或多个数据文件中的少量块损坏了,你可以完成数据块介质恢复。当数据库打开(open)并且损坏的数据文件联机状态(online)下,RmanBLOCKRECOVER命令可以被用来还原和恢复规定的数据块。

二、规划备份策略

1.保护你的冗余集

被用来恢复oracle数据库的一组文件被称为冗余集,它包括:

控制文件和所有数据文件的最近的备份

备份后生成的所有归档重做日志文件

多路复用的联机重做日志文件,控制文件

配置文件的副本,如服务器参数文件,tnsnames.ora以及listener.ora

一个最基本原则就是:保存数据库冗余集的磁盘应该与保存数据文件,联机日志,控制文件的磁盘相分离。

管理你的冗余集的最简单的方式是使用闪回恢复区,在一个与工作集文件不同的设备上。所有的恢复相关的文件需要被存储在一个专门的位置,磁盘空间的使用是自动管理的。满足你恢复需要的文件,在当他们还有用的情况下是不会被删除的。

无论你是否使用闪回恢复区,oracle推荐以下指导方针:

多路复用联机重做日志文件和当前控制文件。理想状况下,多路复用的文件应该分布于不通的磁盘驱动器控制的磁盘上。

如果运行在归档模式,归档日志文件到多个不同位置。

2.决定使用归档模式还是非归档模式

3.决定是否适用闪回恢复区(flash recovery area

推荐你使用闪回恢复区存储备份和恢复相关的文件,包括磁盘备份和归档重做日志。一些oracle的备份和恢复特性,例如闪回数据库,需要闪回恢复区的使用。

4.选择备份保持策略

5.归档旧备份

6.决定备份的频率

备份的频率以数据库改变的频率为基础:

增加或删除表。

插入或删除表中的行。

修改表中数据。

数据库修改的频繁,你就应该频繁的进行备份。

7.在你进行结构改变之前和之后进行备份

如果你进行任何如下的数据库结构变化,你需要在进行之前对你的数据库的适当的部分进行备份:

创建或删除表空间

增加或重命名数据文件

增加,重命名或删除一个联机重做日志组或成员

你应该备份哪些文件取决于数据库的归档模式:

归档模式(ARCHIVELOG),在结构改变之后备份控制文件(使用RMAN或使用SQL ALTER DATABASE BACKUP CONTROLFILE),当然,你也可以备份数据库的其它部分。

非归档模式(NOARCHIVELOG),在结构改变之后立刻做完全的数据库备份。

8.备份频繁使用的表空间

如果运行在归档模式,你可以备份一个单独的表空间或者单个的数据文件。你可能想要为一个或多个更新频繁的表或表空间做这样的备份。例如SYSTEM表空间和撤销表空间。

更频繁的备份工作量大的数据文件可以缩短恢复时间。你可能有一个多数更新操作限于很少几个表空间的这样一个数据库,如果你每周日安排一个完全数据库备份,对周五出现的介质错误进行恢复,那就需要应用大量的重做信息。对频繁更新的表空间进行每日的备份可以减少恢复所需要的时间。

9.在NOLOGGING操作之后进行备份

当使用直接路径加载数据时,不产生重做日志,所以不能恢复这些改变。同样的,当表或索引采用NOLOGGING创建时,数据库也不为这些对象记录日志,这就意味着你不能够恢复这些对象。因此,你应该在做这些操作之后备份你的数据文件。

可以使用完全备份或增量备份。两个都可以捕获改变的数据块。

10.导出数据增加保护和灵活性

逻辑映像,二进制文件

适时地导出数据增加数据库备份策略的灵活性。

posted on 2008-06-30 08:50 tianjuchuan 阅读(338) 评论(0)  编辑 收藏 引用 所属分类: 备份
只有注册用户登录后才能发表评论。