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. [前端_EasyUI]给easyui的datebox设置默认值,获取不到 的解决方法

    //给eayui datebox设置初始值 $("#ctime").datebox("setValue", function(){ var date = new ...

  2. Salt官方将RHEL5/CentOS5 源

    Salt官方将RHEL5/CentOS5的软件包维护迁移到了Fedora Corp (https://copr.fedoraproject.org/coprs/saltstack/salt-el5/) ...

  3. js加载顺序

    在jsp页面中引js文件,页面按照js顺序加载,若js中存在相同的方法,应该会执行顺序在前的js中的方法.有时候遇到js方法不执行或者执行不对的情况,可能就是js的顺序问题,有时候会找很久找不到问题. ...

  4. linux 服务器登录显示lastlogin

    1.参数修改: /etc/ssh/sshd_config 问价里边的 printlastlog 设置为yes /etc/ssh/sshd_config 问价里边的 printmotd 设置为yes 2 ...

  5. 关于生物信息学与R的相关资料和网站

    生物信息学的相关论坛:http://www.omicshare.com/forum/ 糗世界:http://qiubio.com:8080/ 统计之都网站 绘制QQ图和曼哈顿图:http://www. ...

  6. Java NIO教程 Selector

    这次我们开讲非阻塞I/O中的Selector,它需要配合非阻塞的TCP和UDP来使用.首先我们先简单讲一下TCP和UDP的非阻塞通道. 非阻塞I/O通道 在上代码前我们先讲解一些最基本的知识.TCP和 ...

  7. Java NIO教程 前言

    阅读本文前,建议你先了解 旧I/O NIO 是 New I/O 的缩写,要了解它真正的内涵,需要掌握的知识还是比较多的.我努力在这几篇笔记里,勾勒出整个io的面貌.为大家的深入学习铺路. I/O简史 ...

  8. C语课设心得分享(二)

    咱们今儿说说IDE的事儿. IDE是「集成开发环境」的意思,比如咱们常用的VC6.0,就是开发C语言所用的IDE的一种.对于IDE的认识,可能有些朋友有点儿模糊,咱们捋一捋,我也会给出一些IDE方面的 ...

  9. 【微博SDK调用逻辑】微博SDK的调用逻辑,最好自己还是写一个例子,试一下!!!

    逻辑是这样的,谢谢给我讲东西的开发哥哥,嘻嘻~~~  1.点击微博登录,SDK会打开微博客户端,然后点击登陆(如果已经登录了会出现一个当前app跟微博交互的图片界面,然后提示“正在获取授权信息”,如果 ...

  10. .net获取IP和MAC地址

    获取IP  解决request.UserHostAddress取不到真实IP private string GetClientIP()   {    string result = HttpConte ...