Oracle DB 管理ASM实例

• 描述使用ASM 的好处
• 管理ASM 实例
• 创建和删除ASM 磁盘组
• 扩展ASM 磁盘组
• 通过使用各种实用程序检索ASM 元数据
 
  • Automatic Storage Management
Automatic Storage Management (ASM) 将文件系统与卷管理器纵向集成在一起,这是一项专门为Oracle DB 文件建立的技术。使用ASM 可管理单个对称多处理(SMP) 计算机,或通过管理集群的多个节点来支持Oracle Real Application Clusters (RAC)。
ASM 在所有可用的资源中分布输入/输出(I/O) 负载,以在免除手动I/O 优化的同时优化性能。ASM 帮助DBA 管理动态数据库环境,让DBA 在不关闭数据库的情况下,通过增加数据库的大小来调整存储分配。
ASM 通过提供数据的冗余副本来提供容错能力,ASM 也可以建立在供应商提供的存储机制上。数据管理是通过为数据类选择所需的可靠性和性能特性(而不是逐个文件地进行人为交互)来实现的。
通过自动处理手动存储,ASM 功能节省了DBA 的时间,从而提高了管理员管理更多和更大数据库的能力,而且效率也会更高。
 
  • ASM:主要功能和优点
• 对文件而不是逻辑卷进行条带化
• 提供联机磁盘重新配置和动态重新平衡功能
• 允许调整重新平衡速度
• 以每个文件为基础提供冗余
• 只支持Oracle DB 文件
• 可识别集群
• 可自动安装
ASM 将文件划分为区(不同于前面讨论的数据文件区),而且将每个文件的区均匀分布在所有磁盘上。ASM 使用索引技术跟踪每个区的位置。存储容量发生变化时,ASM 不会重新对所有数据进行条带化,而是根据添加或删除的存储量,按比例移动一定数量的数据,以重新平均分配文件,并在磁盘间保持负载平衡。此操作可在数据库处于活动状态时执行。可以提高重新平衡操作的速度,以便更快地完成操作;也可以降低速度,以减少对I/O 子系统的影响。ASM 还提供了镜像保护,因此不必再购买第三方的逻辑卷管理器。
ASM 的一个特有优势是可基于文件而不是卷进行镜像。因此,同一磁盘组可以包含镜像文件或非镜像文件的组合。
ASM 支持数据文件、日志文件、控制文件、归档日志、Recovery Manager (RMAN) 备份集及其它Oracle DB 文件类型。ASM 还支持RAC,这样就不再需要集群逻辑卷管理器或集群文件系统。
  • ASM:概念
ASM 不会妨碍先前存在的数据库功能。现有数据库能够像平常一样工作。可以将新文件创建为ASM 文件,继续按原有的方式管理现有文件,也可以最终将这些文件移植到ASM。
 
图表描述了使用ASM 的Oracle DB 中的各种存储组件之间存在的关系。图表的左侧部分和中间部分显示了在以前版本中存在的关系。
右侧部分是ASM 引入的新概念。
数据库文件可以存储为ASM 文件。新层次的顶部是ASM 磁盘组。 任何单个ASM 文件只能包含在一个磁盘组中
不过, 一个磁盘组中可以包含属于多个数据库的多个文件,并且单个数据库可以使用来自多个磁盘组的存储空间。
一个磁盘组由多个ASM 磁盘组成,但每个ASM 磁盘只能属于一个磁盘组。
ASM 文件总是分布在该磁盘组中的所有ASM 磁盘上。
ASM 磁盘按分配单元进行分区。分配单元(AU) 是ASM 分配的最小连续磁盘空间。
创建磁盘组时,可以将ASM AU 大小设置为2 的幂(1、2、4、8、16、32 或64),范围在1 MB 到64 MB 之间。
对于使用大量顺序读取操作的数据仓库应用程序,较大的AU 大小通常会提供性能优势。
 
 
注:图中的图形只显示了一种ASM 文件:数据文件。不过,ASM 也可用于存储其它类型的数据库文件。
 
  • ASM 对于管理员的好处
使用ASM 可以免除:
• I/O 性能优化
• 数据文件移动和重新组织
• 文件名管理
• 逻辑卷管理
• 文件系统管理
• 集群文件系统管理
• 裸设备管理
 
使用ASM 可以显著减少:
• 逻辑单元号(LUN) 管理
– 逻辑单元数量较少,大小较大
• 数据库管理员对系统管理员的依赖性
• 手动执行维护任务时可能发生的错误
 
使用ASM 可以免除非ASM 存储环境中许多必不可少的任务。其中包括:
• I/O 性能优化:ASM 采用条带化和镜像所有内容的策略,且执行自动重新平衡操作,这意味着不再需要旨在平衡磁盘使用以及消除磁盘热点的I/O 性能优化。
• 数据文件移动和重新组织:不再需要更改数据文件的位置来满足性能要求和空间约束条件。
• 文件名管理:不再需要定义和强制执行文件命名策略。
• 逻辑卷、文件系统、集群文件系统和裸设备管理:不再需要这些存储元素。
 
使用ASM 可以减少下列重要方面的工作,从而提供更多好处:
• 逻辑单元号(LUN) 管理工作减少,因为ASM 通常需要的逻辑单元较少且大小较大。
• 数据库管理员与系统管理员之间通常存在的依赖性将大大减少。例如,添加新数据文件或将磁盘资源从一个磁盘组移至另一磁盘组时不再需要系统管理员干预。
• 手动执行维护任务时可能发生的错误将大大减少。例如,使用常规文件系统时,新建数据文件时可能不慎违反了文件命名惯例,导致数据库的其余部分不支持该文件。
 
  • ASM 实例
ASM 实例是ASM 的进程和内存组件的组合。

 
每次启动ASM 或数据库时,都会分配名为系统全局区(SGA) 的共享内存区域并启动Oracle ASM 或数据库后台进程。
后台进程和SGA 的组合称为Oracle ASM 实例或Oracle DB 实例。
ASM 实例中的SGA 与数据库实例中的SGA 在内存分配和使用方面是不同的。
 
ASM 实例中的SGA 分为四个主要区域,如下所示:
• 共享池:用于元数据信息
• 大型池:用于并行操作
• ASM 高速缓存:用于在重新平衡操作期间读取和写入块
• 空闲内存:可用的未分配内存
 
ASM 的建议最低内存量为256 MB。ASM 实例默认启用 自动内存管理,该功能将动态优化各个SGA 内存组件的大小。
ASM 实例所需的内存量将取决于ASM 管理的磁盘空间量。
ASM 实例的第二部分是后台进程。ASM 实例可以具有许多后台进程;并不是所有进程始终都会出现。
 
ASM 功能的后台进程分为必需和可选两种。其中一些进程如下所示:
• ARCn:归档进程
• CKPT:检查点进程
• DBWn:数据库写进程
• DIAG:诊断进程
• Jnnn:作业队列进程
• LGWR:日志写进程
• PMON:进程监视器进程
• PSP0:进程衍生进程
• QMNn:队列监视器进程
• RECO:恢复器进程
• SMON:系统监视器进程
• VKTM:虚拟计时器进程
• MMAN:内存管理器进程
以上进程列表不是完整列表。对于ASM 实例,这些进程并不总是执行它们在数据库实例中执行的任务。
例如,数据库实例中的LGWR进程负责将更改向量从SGA 的日志缓冲区部分复制到磁盘上的联机重做日志。
ASM 实例的SGA 中不包含日志缓冲区,该实例也不使用联机重做日志。
ASM 实例中的LGWR进程将事件记录信息复制到ASM 磁盘组。
如果ASM 是以集群方式建立的,则将在ASM 实例中运行与集群管理相关的附加进程。
其中一些进程如下所示:
• LMON:全局入队服务监视器进程
• LMDn:全局入队服务守护程序
• LMSn:全局高速缓存服务进程
• LCKn:锁定进程
 
  • ASM 组件:ASM 实例 - 主要进程
ASM 实例的主要进程负责与ASM 相关的活动。
 
ASM 实例使用专用的后台进程完成其大部分功能。
RBAL进程在自动存储管理实例中协调 磁盘组的重新平衡活动。它负责对自动存储管理磁盘执行全局打开操作。
ARBn进程在自 动存储管理实例中执行实际的重新平衡数据区移动。可能同时存在多个这样的进程,这些 进程名为ARB0、ARB1等等。
GMON进程维护ASM 磁盘组中的磁盘成员资格。在向脱机 磁盘写入失败后,MARK进程将ASM 分配单元标记为过时。
Onnn进程表示客户机/服务 器连接的服务器端。启动实例时将出现这些进程,之后它们将消失。
它们形成与ASM 实 例的一组连接,用于交换消息,仅在需要时才出现。
PZ9n进程表示一个或多个并行从属 进程,当ASM 同时在多台计算机上以集群配置运行时,可以使用该进程提取数据。
 
4、ASM 实例初始化参数
 
INSTANCE_TYPE = ASM
ASM_POWER_LIMIT = 1
ASM_DISKSTRING = '/dev/sda1','/dev/sdb*'
ASM_DISKGROUPS = DATA2, FRA
ASM_PREFERRED_READ_FAILURE_GROUPS = DATA.FailGroup2
DIAGNOSTIC_DEST = /u01/app/oracle
LARGE_POOL_SIZE = 12M
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE
 
ASM 实例由参数文件控制,其方式与常规数据库实例相同。通常设置的参数包括:
•  INSTANCE_TYPE应该设置且必须为ASM,表示ASM 实例,标识要启动的实例是ASM,而不是数据库实例。这是唯一一个必须定义的参数。对于数据库实例,该参数值设置为RDBMS。

• ASM_POWER_LIMIT:控制重新平衡操作的速度即指定磁盘rebalance的程度。值的范围从1 到11,11 表示最快。如果省略,该值默认为1。指定的级别越高,则rebalance的操作就会越快被完成,当然这也意味着这个时间段内将占用更多的资源,指定级别较低的话,随人rebalance操作会耗时更久,但对当前系统的IO及负载影响会更少,这需要根据实际情况衡量。另外,这个参数指定的只是一个默认值,在操作过程中,即可以随时动态更改,也可以在语句级命令行时指定power,覆盖该默认值。

修改ASM实例初始化参数文件的命令规则与数据库初始化参数完全相同,比如说:
SQL> alter system set asm_power_limit=5;

System altered.

• ASM_DISKSTRING是一个与操作系统相关的值,ASM 使用它来限制搜索时考虑的磁盘集即是设置ASM启动时检查的磁盘,该选项可以同时指定多个值,并且支持通配符。比如只检查/DEV/SD*。默认值为空字符串,为空的话,表示ASM将查找系统中所有ASM拥有读写权限的设备。这在大多数情况下就足够了。如上所示的约束性更强的值可以减少ASM 执行搜索所需的时间,从而提高磁盘组装载次数。
• ASM_DISKGROUPS:是ASM 实例启动时或使用ALTER DISKGROUP ALL MOUNT命令时,ASM 实例要装载的磁盘组的名称列表。如果为空的话,那么实际就仅仅启动到nomount状态。如果使用SPFILE的话,该参数一般不需要手动修改,ASM能够自动更新该初始化参数中的值。
Oracle Restart 会装载列为相关磁盘组的磁盘组,即使这些磁盘组未与ASM_DISKGROUPS参数列在一起也是如此。该参数没有默认值。
 
• ASM_PREFERRED_READ_FAILURE_GROUPS指定包含首选读取磁盘的故障组。 对于包含数据的镜像副本且有一个副本非常接近于服务器的扩展或延伸集群数据库, 该参数非常有用。
• DIAGNOSTIC_DEST指定自动诊断资料档案库(ADR) 主目录的位置。 此目录下有跟 踪文件、预警日志、核心文件和意外事件文件。此参数的默认值由ORACLE_BASE 的值派生。
• LARGE_POOL_SIZE指定大型池分配堆的大小(以字节表示)。大型池分配堆用于 共享服务器系统中的会话内存,供消息缓冲区的并行执行和磁盘I/O 缓冲区的备份进 程使用。ASM 实例使用自动内存管理,所以此参数用作大型池不能低于的最小大小。
• REMOTE_LOGIN_PASSWORDFILE指定Oracle 软件是否检查口令文件。默认值为 EXCLUSIVE。
 
上面列出的八个参数是需要为ASM 实例创建的唯一几个非默认参数。ASM 实例与数据库 实例不同,因为并不是所有的数据库参数都对ASM 实例有效。在全部344 个数据库实例 参数中,大约有74 个参数可以用于ASM 实例。对于上面未列出的其它参数,虽然 其默认值对于大多数安装来说应该已经足够了,但也可以根据需要进行设置。
注: ASM 实例默认启用自动内存管理,即使未明确设置MEMORY_TARGET参数也是如此。
该参数是全面ASM 内存管理唯一需要设置的参数。Oracle Corporation 强烈建议对ASM  实例使用自动内存管理。
 
  • 数据库实例与ASM 之间的交互
 
 
文件创建过程可以很好地说明数据库实例与ASM 之间发生的交互。文件创建过程如下 所示:
1. 数据库请求创建文件。
2. ASM 前台进程创建一个持续操作目录(COD) 条目并在磁盘组中为新的文件分配空间。
3. ASMB 数据库进程接收新文件的区映射。
4. 现在文件处于打开状态,数据库进程直接初始化该文件。
5. 初始化后,数据库进程请求提交文件创建。这会导致ASM 前台进程清除COD 条目 并将文件标记为已创建。
6. 文件提交确认会隐式关闭该文件。将来发生I/O 时,数据库实例需要重新打开该文件。
 
此示例强调了关于ASM 体系结构的重要两点:
• 数据库实例和ASM 实例协同工作。 数据库实例必须与ASM 交互,以便将数据库文 件映射到ASM 区。
数据库实例还接收与ASM 操作(例如磁盘组重新平衡)相关的 持续消息流,这类操作可能锁定或移动ASM 区。
• 数据库I/O 不通过ASM 实例来传输。 实际上,数据库直接根据ASM 文件执行I/O  操作,如步骤4 所示
 
  • ASM 实例:动态性能视图
对于任何实例而言,其主要功能之一就是存储基于内存的元数据表。这些表以前缀X$开 头并且通常不进行记录。
以前缀V$开头的一系列动态性能视图用于以定制形式显示X$ 内存表中包含的数据。这类信息以只读方式提供,仅具有权限的管理员可以访问。
使用 SQL 语言从ASM 检索这类信息。

ASM 实例托管基于内存的元数据表,这些表通过动态性能 视图呈现。
• ASM 实用程序使用SQL 语言访问这些表来检索仅含 元数据的信息
• 包含许多专用的ASM 相关视图,例如:
 
sys@TEST0924> select * from dict where table_name like 'V$ASM_%';

TABLE_NAME                     COMMENTS
------------------------------ --------------------------------------------------
V$ASM_ACFSSNAPSHOTS            Synonym for V_$ASM_ACFSSNAPSHOTS
V$ASM_ACFSVOLUMES              Synonym for V_$ASM_ACFSVOLUMES
V$ASM_ACFS_ENCRYPTION_INFO     Synonym for V_$ASM_ACFS_ENCRYPTION_INFO
V$ASM_ACFS_SECURITY_INFO       Synonym for V_$ASM_ACFS_SECURITY_INFO
V$ASM_ALIAS                     Synonym for V_$ASM_ALIAS--记录文件别名信息
V$ASM_ATTRIBUTE                 Synonym for V_$ASM_ATTRIBUTE
V$ASM_CLIENT                    Synonym for V_$ASM_CLIENT--返回当前连接的客户端实例信息
V$ASM_DISK                      Synonym for V_$ASM_DISK--- V$ASM_DISK*相关视图中记录的是ASM管理的磁盘及磁盘组信息
V$ASM_DISKGROUP                 Synonym for V_$ASM_DISKGROUP
V$ASM_DISKGROUP_STAT   
  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值