分享
 
 
 

Oracle10g新特性之RMAN的功能更强大

王朝oracle·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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

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

再论增量备份

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

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

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

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

Oracle 数据库 10g 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 9i 中引入的闪回查询,依赖于撤消表空间来闪回到先前的版本,因此限制了它深入到过去的能力。快速恢复通过创建闪回日志提供了一个可选的解决方案,它类似于重做日志,用于将数据库恢复到先前的状态。 总之,您为数据库创建了一个快速恢复区,指定了其大小,并用如下 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 10g 之前的版本中,您将不得不恢复标签 level_0,然后应用所有六个增量。它将持续一段较长的时间,这是许多 DBA 不进行增量备份的另一个原因。

Oracle 数据库 10g 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 数据库 10g RMAN 中,您可以在备份命令内部压缩文件:

RMAN backup as compressed backupset incremental level 1 database;

注意子句 COMPRESSED 的用法。它将用一个显著不同的方式压缩备份文件:在恢复时,RMAN 不用解压缩就能读取文件。为了确认压缩,检查如下的输出信息:

channel ORA_DISK_1:starting compressed incremental level 1 datafile backupset

此外,您可以通过检查 RMAN 列表输出来验证备份已被压缩:

RMAN list output;

BS Key

Type LV Size

Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ ---------------

3

Incr 1

2M

DISK

00:00:00

26-FEB-04

BP Key:3

Status:AVAILABLE

Compressed:YES

Tag:TAG20040226T100154

Piece Name:/ora_flash_area/SMILEY10/backupset/2004_02_26/o1_mf_ncsn1_TAG20040226T100154_03w2m3lr_.bkp

Controlfile Included:Ckp SCN:318556

Ckp time:26-FEB-04

SPFILE Included:Modification time:26-FEB-04

对于任意的压缩过程,该方法都会对 CPU 产生压力。作为折衷,您可以在磁盘上保存更多的 RMAN 备份,它准备好为还原和恢复操作所用。此外,您可以在物理备用数据库上制作 RMAN 备份,它可用于恢复初始的数据库。该方法将备份源卸载到另一台主机上。

在您开始行动之前先看看:恢复预览

在 Oracle 数据库 10g中,RMAN 通过提供执行恢复操作所需要的预览备份的能力向前迈进了一大步。

RMAN restore database preview;

列表 1 显示了该操作的输出结果。您还可以预览特定的恢复操作;例如:

restore tablespace users preview;

预览允许您通过执行周期性的、有规则的检查,来确保您的备份基础架构的恢复准备就绪。

Resetlogs 和恢复

假设您丢失了当前的联机重做日志文件,并且您不得不执行一个不完全的数据库恢复―一种很少见但听说过的情况。最大的问题是 resetlogs;在不完全的恢复之后,您必须用 resetlogs 子句打开数据库,它把日志线程的序列号设置为 1,会使您的 RMAN 中的早期备份作废并使恢复操作面临更多的挑战。

在 Oracle 9i 及其较低的版本中,如果您需要将数据库恢复到执行 resetlogs 操作之前的某个版本,您将不得不恢复到一个不同的拷贝。在 Oracle 数据库 10g 中,您不必这样做。由于控制文件中额外的基础架构,在执行 resetlogs 之前或之后,RMAN 现在都可以容易地使用所有备份来恢复 Oracle 数据库。它不需要关闭数据库来制作一个备份。这种新功能意味着在执行 resetlogs 操作之后,可以立即为用户社区重新打开数据库。

为 RMAN 作好准备

Oracle 数据库 10g RMAN 中的增强功能使它成为您的备份策略中的甚至更具强制性的工具。对增量备份过程的改进只会使 RMAN 难以被忽视。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有