自动存储管理
数据库管理员终于可以将自己从单调而常用的增加、移动和删除存储磁盘的任务中解脱出来了 — 并且无需增加额外的成本。
假设您刚得到一个新的 Oracle 数据库的全新的服务器和存储子系统。除操作系统配置之外,在您能够创建数据库之前,最重要的工作是什么?很明显,就是创建存储系统布局 — 或更具体地说,选择一种保护级别,然后构建必需的冗余磁盘阵列 (RAID) 组。
在大多数数据库安装中安装存储器要花费大量的时间。从多种可能中选择一种特定的磁盘配置需要仔细的规划和分析,并且最重要的是,需要详细了解存储技术、卷管理器和文件系统。在这个阶段的设计任务可以大致说明如下(注意这个列表只是代表性的,任务将随配置而变化):
1. 确认存储器在操作系统级通过了认证,并确定冗余保护的级别,该级别可能已经提供(硬件 RAID)。
2. 集中和构建逻辑卷组,并确定分段或镜像是否也是必需的。
3. 在逻辑卷管理器创建的逻辑卷上构建文件系统。
4. 设定所有权和权限,以便 Oracle 进程可以对设备进行打开、读和写操作。
5. 在文件系统上创建数据库,如果可能的话务必在非 RAID 的位置上创建特殊文件,例如重做日志、临时表空间和重做表空间之类的特殊文件。
在大多数公司中,这些步骤大部分是由对存储系统非常了解的某些人来执行的。这里的“某些人”通常不是数据库管理员。
不过,请注意所有这些任务 — 分段、镜像、逻辑文件系统构建 — 的执行都只支持一种类型的服务器,Oracle 数据库。因此,Oracle 自己提供一些技巧来简化或改进这个过程不是很有意义吗?
Oracle Database 10g 正是这么做的。一个新的和激动人心的特性 — 自动存储管理 (ASM) — 使 DBA 能够完全在 Oracle 框架内执行上述的许多任务。利用 ASM,您可以仅利用 Oracle Database 10g 软件自带的功能(无需额外的成本)来将一组磁盘转换成一个高可伸缩的(重点是在“可伸缩”上)和高性能的文件系统/卷管理器。并且您不需要是一个磁盘、卷管理器或文件系统管理方面的专家。 在本部分中,您将了解到关于 ASM 大量的基础知识,以开始在实际的应用程序中使用它。正如您的猜测,这个强大的特性无疑将引发全面的讨论,篇幅所限,我们不能在此作过多介绍,如果您想了解更多的内容,在结论部分列出了一些极好的信息来源。
ASM 是什么?
假设您要在数据库中使用 10 个磁盘。利用 ASM,您不需要在 OS 端创建任何东西,该特性将把一组物理磁盘集合成一个逻辑实体(称为磁盘组)。磁盘组类似于一个分段(和可选镜像)文件系统,但具有重要的差异:它不是一个用于存储用户文件的通用文件系统,并且它不进行缓冲。由于后面的原因,磁盘组提供了直接作为原始设备来访问这个空间,并仍提供文件系统的便利性和灵活性的好处。
逻辑卷管理器一般使用一个函数(如散列函数)来将块的逻辑地址映射到物理块。计算使用 CPU 周期。
此外,当增加一个新的磁盘(或 RAID-5 磁盘组)时,这种典型的分段函数需要重新定位整个数据集中的每一位。
相比而言,ASM 使用一个特殊的 Oracle 例程来解决从文件区到物理磁盘块的映射问题。这种设计除了定位文件区非常快速之外,还在增加或删除磁盘时有所帮助,因为文件区的位置不需要调整。这个特殊的 ASM 例程类似于其它的文件系统,必须运行此例程,ASM 才能工作,并且用户不能进行修改。一个 ASM 例程可以在同一台服务器上支持许多 Oracle 数据库例程。 这个特殊的例程只是一个例程,不是用户可以在其中创建对象的数据库。所有关于磁盘的元数据都存储在磁盘组本身中,使得它们能够尽可能地自我描述。
那么概括地说,ASM 的优点是什么?
? 磁盘增加 — 增加磁盘变得非常容易。无需停机时间,并且文件区域自动重新分配。
? I/O 分配 — I/O 自动分布在所有可用的磁盘上,无需人工干预,从而减少了热点出现的可能性。
? 带区宽度 — 在重做日志文件中分段可以细分(128K,以获得更快的传输速率),对于数据文件,带区则略大一些(1MB,以一次性传输大量的数据块)。
? 缓冲 — ASM 文件系统不进行缓冲,直接进行输入/输出。
? 核心化的异步 I/O — 实现核心化的异步 I/O 无需特殊的设置,并且无需使用原始或第三方的文件系统(如 Veritas Quick I/O)。
? 镜像 — 如果硬件镜像不可用,则可以容易地建立软件镜像。
ASMLib 是 Oracle 数据库 10g 自动存储管理特性的支持库。自动存储管理 (ASM) 简化了数据库的管理。它不再需要 DBA 直接管理可能数千个的 Oracle 数据库文件,而只需管理分配给 Oracle 数据库的磁盘组。ASMLib 令使用 ASM 的 Oracle 数据库更加高效,并能够访问它正在使用的磁盘组。
逐步创建一个基于 ASM 的数据库
下面是如何创建一个基于 ASM 的数据库的具体的示例:
1. 创建一个 ASM 例程
通过指定下列初始化参数,您可以利用数据库创建助手来创建一个 ASM 例程:
INSTANCE_TYPE = ASM
当服务器启动时,您应当启动该例程,而当服务器关闭时,应当最后关闭该例程。
这个参数的默认值是 RDBMS,适用于常见的数据库。
2. 创建磁盘组
在启动 ASM 例程后,利用可用的磁盘创建一个磁盘组。
CREATE DISKGROUP dskgrp1
EXTERNAL REDUNDANCY
DISK
'/dev/d1',
'/dev/d2',
'/dev/d3',
'/dev/d4',
... and so on for all the specific disks ...
;
在上述命令中,我们使数据库利用名称为 /dev/d1、/dev/d2 等的磁盘创建了一个名称为 dksgrp1 的磁盘
组。您还可以在 DISK 子句中用通配符指定磁盘名称,而不是分别给定磁盘。
DISK '/dev/d*'
在上述命令中,我们指定了一个子句 EXTERNAL REDUNDANCY,它指示一个磁盘出现故障将使磁盘组停止
工作。这通常是由硬件提供冗余(如镜像)的情况。如果没有基于硬件的冗余,则可以设置 ASM 来在磁
盘组中创建一组特殊的磁盘(称为 failgroup),以提供这种冗余。
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,
...
甚至存档日志目标也可以设为一个磁盘组。与 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 从那些单调的任务中解脱出来
分享到:
相关推荐
- 学习使用ASM的相关命令行工具,如`oracleasm`和`asmcmd`,以便管理和监控ASM实例。 通过以上步骤和知识,你可以成功地在Red Hat Enterprise Linux 6.4上安装和使用Oracle ASM,为你的数据库提供高效且可靠的存储...
Oracle ASM(Automatic Storage Management)是Oracle数据库系统中的一个高级存储管理技术,主要为数据库提供统一、高效、自动化的磁盘管理功能。Oracle ASM是Oracle 10g版本中引入的一个重要特性,它简化了数据库...
标题中的"6.6-6.9(kmod-oracleasm)"指的是在Linux系统从版本6.6到6.9之间,用于安装Oracle 11g RAC (Real Application Clusters) 的ASM(Automatic Storage Management)模块,即kmod-oracleasm。这个组件是Oracle...
在Oracle Database 10g Release 2中,通过使用自动存储管理(ASM)极大地简化了数据库的存储管理和配置任务。ASM提供了内置到Oracle数据库内核中的文件系统和卷管理功能,从而简化了许多存储管理任务,例如创建/布局...
通过上述介绍,我们可以看到Oracle ASM不仅是一种高效的存储管理系统,还具备强大的管理和监控功能。掌握这些概念和技术对于优化Oracle数据库性能至关重要。希望本文能帮助您更好地理解和使用Oracle ASM。
Oracle ASM(Automatic Storage Management)是Oracle数据库中的一种集成存储管理解决方案,它提供了高效、自动化的磁盘管理和数据存储服务。在构建Oracle Real Application Clusters (RAC)时,Oracle ASM是不可或缺...
然而,Oracle ASM改变了这一模式,它创建了自己的存储结构,将数据文件的概念转换为ASM文件,并使用称为Allocation Unit(AU)的存储单元来管理磁盘空间。 ASM的主要特点如下: 1. **磁盘组**:ASM允许将多个磁盘...
1. **自动存储管理**:ASM自动分配和管理磁盘空间,无需手动创建文件系统。 2. **高可用性**:ASM支持RAID级别的冗余,可以自动检测并修复磁盘错误。 3. **负载均衡**:ASM能够平衡磁盘I/O,提高性能。 4. **易于...
Oracle 数据库自动存储管理(ASM)是Oracle公司推出的一种先进的存储管理系统,旨在简化数据库的存储管理,提高性能和可扩展性。ASM通过提供一个抽象层,使得数据库可以直接与称为diskgroups的逻辑存储单元交互,而...
**ASM (Automatic Storage Management)** 是 Oracle 10g 引入的一种新型的存储管理技术,旨在为数据库提供高性能、高可用性以及易管理性的存储解决方案。通过 ASM,用户可以将多个物理磁盘组织成一个或多个磁盘组,...
Oracle 自动存储管理 (ASM) 的出现为这一问题提供了新的解决方案。 #### 二、Oracle ASM 概览 Oracle ASM 是一种高性能、高度可扩展的文件系统和卷管理器,专门为 Oracle 数据库设计。它能够提供对数据库文件(如...
### Oracle 10g 中 ASM 概念及管理详解 #### 一、Oracle ASM 实例的概念 ASM(Automatic Storage Management)是一种专为 Oracle 数据库设计的高性能文件系统和卷管理系统,它提供了简单高效的磁盘管理和文件组织...
这个包包含了`oracleasm-install`和`oracleasm-uninstall`命令,用于管理ASM磁盘。 4. **kernel-devel**: 这个包包含Linux内核的源代码头文件,是编译Oracle ASM内核模块所必需的。 5. **glibc-devel**: 提供C库的...
**Oracle ASM (Automatic Storage Management)** 是一种高度优化的存储解决方案,专为Oracle数据库设计,它作为卷管理器和文件系统,旨在提高数据库文件管理和存储效率。下面我们将深入探讨其核心概念和特性。 1. *...
ASM是Oracle数据库系统中一个集成的存储管理解决方案,它提供了自动化的磁盘管理和故障恢复功能,简化了存储管理,并提高了系统的性能和可用性。 **ASM的基本概念** Oracle ASM是一种自动化的、基于集群的存储管理...
在Oracle Database 10g Release 2中,通过自动存储管理(ASM)大大简化了数据库的存储管理和配置任务。ASM提供了内置到Oracle数据库内核中的文件系统和卷管理功能,这使得存储管理变得更加简单高效。 #### ASM 安装 ...
ASM (Automatic Storage Management) 是Oracle提供的一种集成的存储管理解决方案,用于简化Oracle数据库的存储管理,特别是在Oracle RAC环境中。ASM能够自动管理和分配磁盘空间,为数据库提供高可用性和数据冗余。 ...
Oracle ASM(Automatic Storage Management)是Oracle数据库系统中的一个集成存储管理解决方案,它为数据库管理员提供了高效、自动化的磁盘管理和I/O性能优化功能。ASM能够统一管理数据库的存储,包括数据文件、控制...