设为首页 加入收藏 网站搜索 繁體中文 中国建站网 — 站长资源平台

Oracle Database 10 g : 为 DBA 提供的最佳前 20 位的特性(九)

来源OTN 作者:佚名 时间:2005-8-22 3:57:00 该文得分0

Oracle Database 10 g : 为 DBA 提供的最佳前 20 位的特性(九)

第 9 周
RMAN

RMAN 的功能更强大,它具有重新设计的增量备份模式、增量备份的脱机恢复、预览恢复、复原日志进行恢复、文件压缩等功能。

大多数人都认同 RMAN 是用于 Oracle 数据库备份的实际工具。但是与它们所具有的强大功能相比, RMAN 的早期版本并未提供人们所期待的一些功能。就像许多 DBA 一样,如果它没有包含我认为必须具有的功能,我将会异常恼怒。

幸运的是, Oracle 数据库 10 g 通过合并人们所想要的许多功能解决了很多这类问题,这使 RMAN 成为一种更强大、更有用的工具。让我们看一下这些功能。

再论增量备份

RMAN 包含一个用于增量备份的选项。但是老实讲,您多久使用一次呢?可能经常用,也可能永远也不会用。

该选项用于指示该工具以相同或较低的级别来备份自上一次增量备份后发生改变的块。例如,在第 1 天采用完全备份 (level_0) ,而在第 2 、 3 天采用两个 level_1 的增量。后面的两个备份只是备份了第 1 天和第 2 天之间,及第 2 天和第 3 天之间更改过的块,而不是跨整个备份时间进行备份。这种策略减少了备份规模、需要的空间较少,并缩小了备份窗口,减少了网络间移动的数据量。

执行增量备份的最重要的原因是:与数据仓库环境关联起来,在该环境中许多操作都是在 NOLOGGING 模式下执行的,并且数据更改不会涉及到存档的日志文件 — 因此,不可能发生介质恢复。考虑到今天的数据仓库的巨大规模,以及其中的大部分数据并没有发生改变的事实,就会知道执行完全备份既不值得又不实际。相反,在 RMAN 中执行增量备份是一个理想的选择。

既然如此,那么为什么许多 DBA 极少执行增量备份呢?一个原因是:在 Oracle 9 i 及其较低的版本中, RMAN 会扫描所有的数据块以确定要备份的内容。这个过程给系统施加了如此大的压力,以致于执行增量备份变得不实际。

Oracle 数据库 10 g RMAN 以消除了该缺陷的方式来执行增量备份。它使用一个文件,类似于文件系统中的日志,来跟踪自上一次备份起更改过的块。 RMAN 读取该文件来确定将要备份的块。

您可以通过发布以下命令来启用该跟踪机制:

SQL> alter database enable block change tracking using file '/rman_bkups/change.log';

该命令将创建一个名为 /rman_bkups/change.log 的二进制文件,以用于跟踪。相反,您可以使用以下命令来禁用跟踪:

SQL> alter database disable block change tracking;

要想查看当前是否启用了对更改的跟踪,您可以查询:

SQL> select filename, status from v$block_change_tracking;

快速恢复区

Oracle 9 i 中引入的闪回查询,依赖于撤消表空间来闪回到先前的版本,因此限制了它深入到过去的能力。快速恢复通过创建闪回日志提供了一个可选的解决方案,它类似于重做日志,用于将数据库恢复到先前的状态。 总之,您为数据库创建了一个快速恢复区,指定了其大小,并用如下 SQL 命令将数据库置于快速恢复模式下:

alter system set db_recovery_file_dest = '/ora_flash_area';

alter system set db_recovery_file_dest_size = 2g ;

alter system set db_flashback_retention_target = 1440;

alter database flashback on;

数据库必须处于存档日志模式下以支持闪回。此过程在目录 /ora_flash_area 中创建了 Oracle 管理文件,其总大小高达 2GB 。对数据库所作的更改将写入到这些文件中,并且可用于将数据库快速恢复到过去的某个点上。

默认情况下, RMAN 还使用 /ora_flash_area 来存储备份文件;因此, RMAN 是存储在磁盘上,而不是磁带上。鉴于此,您就有能力指定您需要备份的天数。在该期限之后,如果需要更多的空间,则会自动将这些文件删除。

快速恢复区不必是一个文件系统或一个目录,但是 — ,它可以是一个自动存储管理 (ASM) 磁盘组。如果是那样的话,就可以通过如下命令来指定快速恢复区:

alter system set db_recovery_file_dest = '+dskgrp1';

因此,结合使用 ASM 和 RMAN ,您就可以使用廉价的磁盘(如 Serial ATA 或 SCSI 驱动)来构建一个高度可伸缩的、容错能力强的存储系统,而不需要额外的软件。(有关 ASM 的详细信息,请参阅本系列中的 第 8 周 的内容。)此过程不但使存储过程更快,也使之能用足够便宜的、基于磁带的方法来完成。

一个额外的好处是防止用户错误。由于 ASM 不是真正的文件系统,使其遭受 DBA 和系统管理员意外破坏的可能性也更小一些。

增量合并

假如您有如下备份计划:

星期天 - 第 0 级(完全),带有标签 level_0
星期一 - 第 1 级(增量),带有标签 level_1_mon
星期二 - 第 1 级(增量),带有标签 level_1_tue

等等。如果数据库在星期天发生故障,在 Oracle 10 g 之前的版本中,您将不得不恢复标签 level_0 ,然后应用所有六个增量。它将持续一段较长的时间,这是许多 DBA 不进行增量备份的另一个原因。

Oracle 数据库 10 g RMAN 从根本上改变了此格局。现在,您的增量备份命令看起来如下所示:

RMAN> backup incremental level_1 for recover of copy with tag level_0 database;

在此,我们指示 RMAN 进行 level_1 增量备份,并将其与带有 level_0 标签的完全备份副本合并。在执行该命令之后, level_0 就成为了那一天的完全备份。

因此,在星期二,带有标签 level_0 的备份,当将其与 level_1 增量备份合并时,它就变得与完全的星期二备份相等。同样地,对于星期六采用的增量,当采用磁盘上的备份时,它将会与完全的 level_0 星期六备份相等。如果数据库在星期六发生故障,您只需恢复 level_0 备份外加一小份存档日志,使数据库一致;在此不需要应用额外的增量。该方法显著地削减了恢复时间、加快了备份速度,并消除了再一次执行完全的数据库备份的需要。

压缩文件

对于快速恢复区中基于磁盘的备份,仍有一个大的限制:磁盘空间。特别是当经网络进行时 — 通常情况下就是这样 — 那么创建一个尽可能小的备份集是明智的。在 Oracle 数据库 10 g RMAN 中,您可以在备份命令内部压缩文件:

RMAN> backup as compressed backupset incremental level 1 database;

注意子句 COMPRESSED 的用法。它将用一个显著不同的方式压缩备份文件:在恢复时, RMAN 不用解压缩就能读取

[1] [2]  下一页

相关文章
广告赞助
网友评论

共有 0 位网友发表了评论,平均得分: 0 查看完整内容

用户名:

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

(注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码