ASM(Automatic Storage Management)是Oracle10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自己提供的卷管理器,主要用于替代操作系统所提供的LVM,它不仅支持单实例,同时对RAC的支持也是非常好。

一、ASM由来

ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自己提供的卷管理器,主要用于替代操作系统所提供的LVM,它不仅支持单 实例,同时对RAC的支持也是非常好。ASM可以自动管理磁盘组并提供有效的数据冗余功能。使用ASM(自动存储管理)后,数据库管理员不再需要对 ORACLE中成千上万的数据文件进行管理和分类,从而简化了DBA的工作量,可以使得工作效率大大提高。

二、什么是ASM

ASM它提供了以平台无关的文件系统、逻辑卷管理以及软RAID服务。ASM可以支持条带化和磁盘镜像,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡I/O以删除“热点”。它还支持直接和异步的I/O并使用Oracle9i中引入的Oracle数据管理器 API(简化的I/O系统调用接口)。

ASM是做为单独的Oracle实例实施和部署,并且它只需要有参数文件,不需要其它的任何物理文件,就可以启动ASM实例,只有它在运行的时候,才能被其它数据访问。在Linux平台上,只有运行了OCSSD服务(Oracle安装程序默认安装)了才能和访问ASM。

三、使用ASM的好处

优点:

(1)将I/O平均分部到所有可用磁盘驱动器上以防止产生热点,并且最大化性能。在ASM中是DiskGroup概念与LVM卷组管理中VG的概念类似,也是将多块物理磁盘总成一个磁盘组,一个磁盘组中的数据是均匀分布在各个物理磁盘上的。手工添加和删除物理磁盘时,数据会自动均衡(ReBalance);

(2) 配置更简单,并且最大化推动数据库合并的存储资源利用;数据文件都存储在DiskGroup中(简称DG),管理相对简单。

(3) 内在的支持大文件,支持BIGFILE文件。

(4) 在增量增加或删除存储容量后执行自动联系重分配,即自动ReBalance;

(5) 维护数据的冗余副本以提高可用性;

(6) 支持10g、11g的数据存储及RAC的共享存储管理,相对来说11g的ASM更稳定,10g中有些BUG。

(7) 支持第三方的多路径软件;如powerpath(aix)、mutlipath(linux)

(8) 使用OMF(Oracle Managed Files)方式来管理文件。

缺点:

(1)   数据库中新增一个ASM实例,维护上需要对ASM进行管理,增加了维护成本;

(2)   ASM相对来说是个黑匣子,如果出问题,恢复起来也是个难点。

四、ASM冗余方式

  ASM使用独特的镜像算法:不镜像磁盘,而是镜像盘区。作为结果,为了在产生故障时提供连续的保护,只需要磁盘组中的空间容量,而不需要预备一个热备(hot spare)磁盘。不建议用户创建不同尺寸的故障组,因为这将会导致在分配辅助盘区时产生问题。ASM将文件的主盘区分配给磁盘组中的一个磁盘时,它会将该盘区的镜像副本分配给磁盘组中的另一个磁盘。给定磁盘上的主盘区将在磁盘组中的某个伙伴磁盘上具有各自的镜像盘区。ASM确保主盘区和其镜像副本不会驻留在相同的故障组中。磁盘组的冗余可以有如下的形式:双向镜像文件(至少需要两个故障组)的普通冗余(默认冗余)和使用三向镜像(至少需要3个故障组)提供较高保护程度的高冗余。一旦创建磁盘组,就不可以改变它的冗余级别。为了改变磁盘组的冗余,必须创建具有适当冗余的另一个磁盘组,然后必须使用RMAN还原或DBMS_FILE_TRANSFER将数据文件移动到这个新创建的磁盘组。

三种不同的冗余方式如下:

  (1)外部冗余(external redundancy)--常用

  表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。

  (2)默认冗余(normal redundancy)

  表示Oracle提供2份镜像来保护数据,有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)

  (3)高度冗余(high redundancy)

  表示Oracle提供3份镜像来保护数据,以提高性能和数据的安全,最少需要三块磁盘(三个failure group);有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。

五、ASM进程

ASM实例除了传统的DBWR,LGWR,CKPT,SMON,PMON等进程还包含如下四个新后台进程:

  (1) RBAL:负责协调磁盘组的重新平衡活动(负责磁盘组均衡)

  (2) ARB0-ARBn:在同一时刻可以存在许多此类进程,它们分别名为ARB0、ARB1,以此类推,执行实际的重新平衡分配单元移动进程。

  (3) GMON:用于ASM磁盘组监控

  (4) O0nn 01-10:这组进程建立到ASM实例的连接,某些长时间操作比如创建数据文件,RDBMS会通过这些进程向ASM发送信息

  ASMB与ASM 实例的前台进程连接,周期性的检查两个instance的健康状况。每个数据库实例同时只能与一个ASM实例连接,因此数据库只会有一个ASMB后台进程。如一个节点上有多个数据库实例,它们只能共享一个ASM实例。

  RBAL用来进行全局调用,以打开某个磁盘组内的磁盘。ASMB进程与该节点的CSS守护进程进行通信,并接收来自ASM实例的文件区间映射信息。ASMB还负责为ASM实例提供I/O统计数据

  CSS集群同步服务。要使用ASM,必须确保已经运行了CSS集群同步服务,CSS负责ASM实例和数据库实例之间的同步。

注意

  ASM实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。ASM 实例和数据库实例的关系可以是1:1,也可以是1:n。如果是1:n,最好为ASM 安装单独的ASM_HOME。

六、ASM支持文件类型

  ASM支持datafile,logfiles,control files,archivelogs,RMAN backup sets等自动的数据库文件管理。

  一般来说,一个采用ASM单实例数据库由两个DG组成。一个是datadg,另外一个是fradg。Datadg主要是存放数据文件,而fradg(flash recovery area)存放archivelog文件,control文件和备份文件等。

七、ASM实例和数据库实例对应关系

八、Cluster ASM 架构

九、相关视图

视图名

X$基表名

描述

V$ASM_DISKGROUP

X$KFGRP

实施磁盘发现disk discovery和列出磁盘组

V$ASM_DISKGROUP_STAT

X$KFGRP_STAT

显示disk group状态

V$ASM_DISK

X$KFDSK, X$KFKID

实施磁盘发现disk discovery和列出磁盘以及这些磁盘的使用度量信息

V$ASM_DISK_STAT

X$KFDSK_STAT,X$KFKID

列出磁盘和其使用度量信息

V$ASM_FILE

X$KFFIL

列出ASM文件也包括了元数据信息

V$ASM_ALIAS

X$KFALS

列出了ASM的别名,文件和目录

V$ASM_TEMPLATE

X$KFTMTA

列出可用的模板和其属性

V$ASM_CLIENT

X$KFNCL

列出链接到ASM的DB实例

V$ASM_OPERATION

X$KFGMG

列出rebalancing重平衡操作

 

X$KFKLIB

可用的ASMLIB路径

 

X$KFDPARTNER

列出Disk-partners关系

 

X$KFFXP

所有ASM文件的extent map

 

X$KFDAT

所有ASM Disk的extent列表

 

X$KFBH

描述ASM cache

 

X$KFCCE

ASM block的链表

V$ASM_ATTRIBUTE(new in 11g)

X$KFENV(new in 11g)

Asm属性,该X$基表还显示一些隐藏属性

V$ASM_DISK_IOSTAT(new in 11g)

X$KFNSDSKIOST(new in 11g)

I/O统计信息

 

X$KFDFS(new in 11g)

 

 

X$KFDDD(new in 11g)

 

 

X$KFGBRB(new in 11g)

 

 

X$KFMDGRP(new in 11g)

 

 

X$KFCLLE(new in 11g)

 

 

X$KFVOL(new in 11g)

 

 

X$KFVOLSTAT(new in 11g)

 

 

X$KFVOFS(new in 11g)

 

 

X$KFVOFSV(new in 11g)

 

十、参考资料

http://www.jb51.net/article/43527.htm

  http://blog.csdn.net/tianlesoftware/article/details/5314541

  http://docs.oracle.com/cd/B28359_01/server.111/b31107/asmcon.htm#OSTMG036

ORACLE之ASM学习的更多相关文章

  1. 深入了解 Oracle Flex ASM 及其优点

    简介 Oracle Real Application Cluster (RAC) 是 Oracle 解决方案中的一个著名产品,用于保持业务数据的高可用性.Oracle RAC 允许在所有集群节点之间共 ...

  2. Oracle教程之学习笔记

    Oracle教程之学习笔记... ----------------------------------- Oracle教程:---学习笔记: ============================= ...

  3. 【oracle】入门学习(一)

    一直想学oracle但都没有下定决心.这次借了书,一定要学好oracle. 目前学习 <Oracle从入门到精通> 明日科技 的Oracle 11g 版本 关系型数据库的基本理论 数据模型 ...

  4. Oracle 12c 搭建学习

    Oracle 12c 搭建学习 Vm workstaton10 安装linux 6.4 安装oracle12c Oracle 12c只支持64位系统 1 环境检查 [root@rac1 ~]# gre ...

  5. Oracle data guard学习

    Oracle data guard学习:三思笔记 Data guard 1data guard结构: data guard是一个集合,由一个primary数据库(生产数据库)和一个或多个standby ...

  6. Oracle 下ASM磁盘总结

    Oracle 下ASM磁盘总结 文章转载: Oracle下创建ASM磁盘总结https://blog.csdn.net/okhymok/article/details/78791841?utm_sou ...

  7. FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1)

    FAQ: Oracle Flex ASM 12c / 12.1 (Doc ID 1573137.1) APPLIES TO: Oracle Database - Enterprise Edition ...

  8. 探索ORACLE之ASM概念(完整版)

    探索ORACLE之ASM概念(完整版) 本文出自https://www.jb51.net/article/43527.htm ASM是Oracle 10g R2中为了简化Oracle数据库的管理而推出 ...

  9. Oracle DBA的学习(笔记)

    1.软件任务分组:系统分析师.系统设计师.程序员.测试人员.开发dba.系统架构师.实施人员. 2.常用设计图:活动图.用例图.类图.序列图. 2010-9-15(dba学习) 1.1 Oracle产 ...

随机推荐

  1. 如何设置a标签的宽高,如何使a标签的文字垂直居中

    通常情况下a标签是没有宽高的,设置 width 和 height 没有作用. 若要使用 width 和 height,需要把a标签转为块级元素,即:display:block|inline-block ...

  2. 使用虚幻引擎中的C++导论(一-生成C++类)

    使用虚幻引擎中的C++导论(一) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...

  3. A Beginner's Guide To Understanding Convolutional Neural Networks(转)

    A Beginner's Guide To Understanding Convolutional Neural Networks Introduction Convolutional neural ...

  4. 使用linux的nc来进行文件的传输

    NAME nc - arbitrary TCP and UDP connections and listensSYNOPSIS     nc [-46DdhklnrStUuvz] [-i interv ...

  5. [简单]docx4j常用方法小结

    http://53873039oycg.iteye.com/blog/2194479?utm_source=tuicool&utm_medium=referral —————————————— ...

  6. 第八十八天请假 PHP smarty模板 变量调节器,方法和块函数基本书写格式

    变量调节器 : 文件命名格式(modifier.名称.php)  前端调用方式<{变量|名称:参数:参数……}>可组合使用,用|隔开 <?php /* 命名格式 smarty_mod ...

  7. VC++ 限制窗口的大小范围的方法

    响应WM_GETMAXMININFO  的消息 处理之 void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { // TODO: Add y ...

  8. union all 里面的order by

    例1: SELECT 1 order2 FROM dual union all SELECT 3 order2 FROM dual union all SELECT 2 order1 FROM dua ...

  9. jquery的常用ajax操作

    $.ajax() 定义和用法 ajax() 方法通过 HTTP 请求加载远程数据. 该方法是 jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() ...

  10. Hibernate 一级二级缓存

    1.一级缓存与session关联,session关闭时,缓存数据消失: 2.一级缓存无法自我控制缓存的数量,需考虑缓存溢出: 3.二级缓存与sessionFactory关联,当sessionFacto ...