分类: 服务器与存储
2008-07-15 16:03:34
CREATE DISKGROUP dskgrp1
NORMAL REDUNDANCY
FAILGROUP failgrp1 DISK
'/dev/d1',
'/dev/d2',
FAILGROUP failgrp2 DISK
'/dev/d3',
'/dev/d4';
d3 和 d4 不是 d1 和 d2 的镜像,虽然看起来似乎是那样。相反,ASM 使用所有的磁盘来创建一个容错系统。例如,可能利用在 d4 上保留的一个备份来在 d1 中创建磁盘组上的一个文件。另一个文件可以利用 d2 上的备份在 d3 上创建。一个特定的磁盘出现故障,则允许使用另一个磁盘上的备份,以使操作可以继续。例如,您可能丢失了磁盘 d1 和 d2 的控制器,ASM 将为全部故障磁盘组的区块的拷贝建立镜像,以保持数据完整性。
3. 创建表空间
现在利用基于 ASM 的存储器中的一个数据文件来在主数据库中创建一个表空间。 CREATE TABLESPACE USER_DATA DATAFILE '+dskgrp1/user_data_01'
SIZE 1024M
/
就这样!创建过程完成了。注意磁盘组是如何作为一个虚拟文件系统使用的。这种方法不仅在数据文件中有用,在其它类型的 Oracle 文件中也有用。例如,您可以按以下方式创建在线重做日志文件 LOGFILE GROUP 1 (
'+dskgrp1/redo/group_1.258.3',
'+dskgrp2/redo/group_1.258.3'
) SIZE 50M,
...
更多的资源
正如之前所提到的,本文的目的不是为了提供关于 AMS 特性的所有知识,使您变成一个专家,原因很简单,相关的信息量太大了。不过,别失望,在 Oracle 技术网上提供了许多的帮助:
“自动存储”(作者:Lannes Morris-Murphy)是关于 ASM 的一篇极好的介绍性文章。
ASMLib — 为 Linux 提供的一个 ASM 特性的资料库 — 扩展了 ASM 功能。本页面还链接了技术参考文献和资料库模块的源代码。
Oracle 数据库管理员指南 10g Release 1 (10.1) 的第 12 章完整说明了 ASM 背后的概念。
甚至存档日志目标也可以设为一个磁盘组。与 Oracle 数据库相关的全部内容都可以在一个基于 ASM 的磁盘组中创建。例如,备份是 ASM 的另一大用途。您可以设置一组廉价的磁盘来创建一个数据库的恢复区,RMAN 可以使用这个恢复区来创建备份数据库文件和存档日志文件。(在下一个关于 Oracle Database 10g 中的 RMAN 的部分中,您将详细了解如何使用这种功能来为您带来好处。)
请记住,无论 ASM 如何支持仅由 Oracle 数据库创建和读取的文件;它也不能替代一个通用的文件系统,并且不能存储二进制文件和纯文本文件。
维护
让我们看看维护磁盘组所需的一些典型任务。您可能必须经常在磁盘组 dskgrp1 中增加额外的磁盘来适应不断增长的需求。可以执行下面的语句: alter diskgroup dskgrp1 add disk '/dev/d5';
要查明哪个磁盘在哪个磁盘组中,可以执行下面的语句: select * from v$asm_disk;
该命令显示了 ASM 例程为所有客户机数据库管理的所有磁盘。在这些磁盘中,您可能决定利用以下命令来删除一个磁盘: alter diskgroup dskgrp1 drop disk diskb23;
结论
ASM 的引进提供了显著的价值,它使得在 Oracle 数据库中管理文件变得非常容易。利用这个捆绑的特性,您可以从一组磁盘中容易地创建一个高可伸缩和高性能的存储解决方案。任何动态的数据库环境都需要添加、移动和删除磁盘,ASM 提供了必需的工具集,使 DBA 从那些单调的任务中解脱出来。