Oracle 基础7(oracle ASM)

具体参考文库:http://wenku.baidu.com/view/779394335a8102d276a22ff0.html

 

关于ASM的讨论很多,但是到底什么是ASM?ASM是一个有效的抽象层,使你的Oracle数据库可以与叫做diskgroups的抽象空间一起使用,而不是直接使用datafiles。这带来了很多好处,但是也要求学习一些新的概念、命令、使用和管理任务。所以在投入你的生产系统之前,看看它解决什么、管理什么,以及对它的正反面评价。  

       为什么创建它?  

       回答这个问题的最好方式是直接追溯源头,Bill Bridge——自动存储管理的最初架构师。在Oracle Press标题中的Oracle ASM,Bill提供了一个链接,他在那里讨论了使用供应商特定操作系统的文件系统来管理Oracle数据文件放置所遇到的问题:  

  1. 对于归档日志和备份,操作系统供应商不提供共享磁盘文件系统。  

  2. 逻辑卷管理器隐藏了文件的位置,使得很难管理磁盘I/O和提供良好的统计。  

  3. 当磁盘数超过100时,现有的lvm不能工作得很好。  

  4. 当数据库有1000以上的数据文件时,操作系统和Oracle不能很好地处理数据库。  

  5. 当有大量数据文件时命名就变得很困难了。  

  6. 特性和文件系统限制随操作系统的不同而不同。  

  7. 操作系统级的用户可以通过标准使用接触到Oracle文件,而Oracle并不知道。  

       所以,他通过建立Oracle自己的文件系统开始解决这些问题。他的目标是提供这些特性:  

  1. 与Oracle紧密集成,并与集群一起使用(并行服务器)。  

  2. 自动使用新的存储,作为磁盘单元或磁盘组来管理。  

  3. 支持成千上万的磁盘。  

  4. 文件不会名字,并会在操作系统中隐藏起来

谁需要它?  

       现在快速浏览一下上面那些问题和解决方案会帮助你确定谁需要ASM。起初,它是用来处理现在很大型的联机数据库。所以如果它包括你的商店,那么你可能已经在关注它了,或者开始执行ASM。如果你的数据库较小,数据文件也不多,那么你可能需要再一些理由使你考虑采用它。  

  1. 你将要熟悉一些新技术,并且应该从在你的开发环境中建立它开始,并测试几个月。  

  2. 如果你想从你现有的磁盘子系统中获得更高的性能,并获得更好的统计用于预测磁盘I/O。  

  3. 如果你正在使用RAC,那么就需要考虑ASM了。

 

                                                            

CSS:cluster service server

 

ASM概述:

ASM(自动存储管理)提供了文件系统与卷管理器的纵向集成,这是一项专门为 Oracle 数据库文件建立的技术。ASM是一个有效的抽象层,使你的Oracle数据库可以与叫做diskgroups的抽象空间一起使用,而不是直接使用操作系统文件datafiles

       ASM在所有可用的资源中分布 I/O 负载,让 DBA 在无需关闭数据库的情况下,增加数据库的大小以调节存储分配。

       ASM 通过提供数据的冗余副本来提供容错能力。

       ASM 功能可以实现人工存储自动化。

       使用ASM,创建数据库文件时无需指定名字,并会在操作系统中隐藏起来

ASM 将文件分为多个分配单元 (AU),并在所有磁盘间平均分配每个文件的 AU。ASM 使用索引技术跟踪每个AU 的位置。存储容量发生变化时,ASM 不会重新条带化所有数据,

而是根据添加或删除的存储量,按比例移动一定数量的数据,以重新平均分配文件,并保

持磁盘间的负载平衡。此操作可在数据库处于活动状态时执行。

可以提高或降低重新平衡操作的速度,以减小对 I/O 子系统的影响。ASM 还提供了镜像保护,因此您不必再购买第三方的“逻辑卷管理器”。ASM 的一个特别的优势在于其镜像的应用基于文件而不是基于卷。因此,同一磁盘组中可以包含受镜像保护的文件和不受镜像保护的文件的组合。

ASM 支持数据文件、日志文件、控制文件、归档日志、RMAN 备份集以及其它 Oracle 数据库文件类型。ASM 支持 Oracle Real Application Clusters,而且无需使用“集群逻辑卷管理器”或“集群文件系统”。

 

ASM 常规体系结构:

       要使用ASM,则在启动数据库实例之前,必须启动一个名为 ASM 实例的特殊实例。ASM 实例不会装载数据库,而是管理使ASM 文件可用于普通数据库实例所必需的那些元数据。ASM 实例和数据库实例都能够访问一些公共的磁盘集,这些公共磁盘集称为磁盘组。数据库实例直接访问ASM 文件的内容,它们与 ASM 实例通信的目的只是为了获取这些文件的布局信息。

       ASM 实例包含两个新的后台进程。一个进程负责协调磁盘组的重新平衡活动,称为RBAL。第二个进程负责执行实际的重新平衡 AU 移动操作。在同一时刻可以存在许多此类进程,它们分别名为 ARB0、ARB1,以此类推。ASM 实例还有一些与数据库实例相同的后台进程,其中包括 SMON、PMON、LGWR、DBWR 和 CKPT。每个使用ASM 的数据库实例都有两个新的后台进程,ASMB 和RBAL。RBAL 负责全局打开磁盘组中的磁盘。数据库实例启动时,ASMB 作为前台进程连接到 ASM 实例。数据库实例和ASM 实例之间的通信就是通过这种桥接来实现的。此类通信包括物理文件更改,例如数据文件的创建和删除。通过这种连接可以定期交换消息,以更新统计信息并确认这两个实例都在正常运行。

 

具体参考文库:http://wenku.baidu.com/view/779394335a8102d276a22ff0.html

 

启动ASM 实例:

ASM 实例的启动类似于数据库实例,但初始化参数文件中包含一个INSTANCE_TYPE=ASM 这样的条目。将该参数值设置为 ASM 时,它会通知 Oracle 可执

行文件要启动的是ASM 实例而不是数据库实例。同时,ORACLE_SID 变量必须设置为该

ASM 实例的名称。ASM 实例启动时,在装载阶段会尝试装载 ASM_DISKGROUPS 初化

参数指定的磁盘组,而不是像非 ASM 实例那样装载数据库。对于ASM 实例和数据库实例,其它 STARTUP 子句的解释大致相同。OPEN 对于ASM 实例无效。NOMOUNT 将启动ASM 实例而不装载任何磁盘组。

 

ASM 存储:概念

ASM 不会妨碍任何现有的数据库功能。现有数据库能够像平常一样工作。可以将新文件创建为ASM 文件,但听任现有文件以原有的方式管理,也可以最终将这些文件移植到ASM。上图描述了使用ASM 的 Oracle 数据库内部各存储组件之间的关系。图表的左侧部分和中间部分显示了在以前的版本中各组件之间的关系。右侧部分是 ASM 引入的新概念。数据库文件可以存储为 ASM 文件。新层次的顶部是 ASM 磁盘组。任何单个 ASM 文件只能包含在一个磁盘组中。不过,一个磁盘组中可以包含属于多个数据库的多个文件,并且单个数据库可以使用来自多个磁盘组的存储空间。正如您看到的那样,一个磁盘组由多个ASM 磁盘组成,但每个 ASM 磁盘只能属于一个磁盘组。ASM 文件始终分布在该磁盘组中的所有ASM 磁盘上。ASM 磁盘按分配单元(AU) 进行分区,每个分配单元的大小为1 MB。分配单元是ASM 分配的最小连续磁盘空间。ASM 不允许跨分配单元拆分一个 Oracle 块。

注:本图只处理了一种类型的ASM 文件:数据文件。不过,ASM 也可用于存储其它类型的数据库文件。

posted @ 2014-07-22 15:27  月十日十  Views(225)  Comments(0)    收藏  举报