ASM的全称是Automated Storage Management,通俗的讲 就是自动存储管理,ASM是自Oracle10g版本Oracle推出的***功能之一。这是Oracle数据库提供的一个卷管理器,用于替代操作操作系统所提供的LVM,它不仅支持单实例配置,也支持RAC这样的多实例配置。

将给Oracle数据库管理员带来极大的方便,ASM可以自动管理磁盘组,并提供数据冗余和优化。特别是对于企业极的大型数据库管理员来说,可以使管理员可以从管理成百上千个数据文件这些琐碎的日常事务中解脱开来,以便处理其它更为重要的事务上去。

在Oracle 10g这个版本之前,管理一个大型数据库成百上千个的数据文件对数据库管理员来说是一个既无技术含量又十分枯燥的工作,这要求数据库管理员要熟悉一些系统的LVM的相关知识,做好磁盘规化,LV的条带等相关的系统方面的相关操作。而使用自动存储管理将大大减轻这方面的工作量,Oracle数据库管理员只需要管理少数几个磁盘组即可。

一个磁盘组是ASM管理的一个逻辑单元,由一组磁盘设备组成。我们可以定义一个磁盘组作为Oracle数据库的默认磁盘组,Oracle会自动管理存储,包括创建、删除数据文件等。Oracle会自动将这些文件与一个合适的数据库对象做关联,这样我们在管理这些对象时只需要提供对象的名称,而无需像以前那样提供详细的文件名。

ASM提供了很多有用的存储技术,如RAID和LVM(逻辑卷管理)等。像这些技术一样,ASM允许你在一组独立的磁盘上创建一个单独的磁盘组。这样就实现了单个磁盘组的I/O均衡。同时ASM还实现了条带化(Striping)和磁盘镜像(Mirroring)以提高I/O的性能和数据可靠性。

与RAID或LVM不同的是,ASM是在文件级实现的条带化和镜像,这样的实现方式给用户带了很大选择自由度,我们可以在同一个磁盘组中对不同的文件配置不同的存储属性,实现不同的存储方式。

2 11g中ASM都有哪些新特征

2.1 快速重新同步(ASM Fast Mirror Resync)

短暂的磁盘路径发生问题时,恢复ASM磁盘组(DISK GROUP)的允余性是很费时间的,特别是这种恢复操作需要重新布局整个磁盘组的情况下。ASM快速磁盘重新同步这个新特征能显著减少重新同步一块坏磁盘时这种情况的时间,当你更换了坏磁盘,ASM能够快速的同步ASM磁盘的extent。

任何使磁盘组临时不可用的问题被认为是暂时的失效,这是ASM快速重新同步新特征可以恢复的。磁盘路径失效,例如接口线问题,主机适配器问题,磁盘控制器问题,或者是磁盘电源问题这些都能引起瞬时失效。缺省的情况下,当一块磁盘脱机时,ASM会立刻移出该磁盘。

ASM快速再同步功能够记录脱机磁盘在脱机期间该磁盘上区的所有的变化,当磁盘被修复或再次联机时,这期间更改的extent能够被快速的重新同步到刚才失效的这些磁盘中。

你可以设定DISK_REPAIR_TIME这个属性使失效磁盘在被修复和再次联机这段时间内重新整理这样的操作不发生。这个时间可以以分钟(m或M)或者小时(h或H)为单位,如果你不指定时间单位,缺省的时间单位为小时。如果DISK_REPAIR_TIME这个属性没有设定,其缺省值为3.6小时。

需要注意的是,这个缺省值适用于磁盘被设定为脱机模式而操作语句没有DROP AFTER子句这样的情况。大部分来说环境,3.6个小时这个DISK_REPAIR_TIME缺省属性数值应该都是合适的。

注意:

使用这项新功能,ASM磁盘组的兼容性需要设定至11.1或更高。

例:

CREATE DISKGROUP asmdskgrp1 DISK '/dev/raw/*'

SET ATTRIBUTE 'compatible.rdbms' = '11.1', 'compatible.asm' = '11.1';

只有当包含脱机磁盘的磁盘组再次被挂上,消逝时间(自磁盘被设定成脱机模式后)都是增加的,V$ASM_DISK的REPAIR_TIME这列显示的是脱机磁盘在被删除之前所剩余的时间(单位:秒),当指定的时间到达后,ASM删除磁盘,可以用带有DROP AFTER的ALTER DISKGROUP DISK OFFLINE语句来覆盖这个属性。

注意:

DROP AFTER也是11g的新特征。

如果一条ALTER DISKGROUP SET ATTRIBUTE DISK_REPAIR_TIME操作的磁盘组含有脱机的磁盘,这个属性只对当前那些非脱机模式的磁盘是生效的。

当一块脱机磁盘被第二次执行脱机操作,消逝时间会被重置并重新开始计算。如果另一个时间这块磁盘又被执行了DROP AFTER操作,上一个值会被覆盖并且新值生效。不能用ALTER DISKGROUP DROP DISK语句删除处于脱机状态的磁盘,这样操作时会报错。

如果在某时情况,例如磁盘不能够被修复,需要在DISK_REPAIR_TIME到达前把磁盘删除时,可以再次执行带有DROP AFTER子句的OFFLINE语句,DROP AFTER指定0H或0M,表示立刻删除。

你可以用ALTER DISKGROUP来设定磁盘组的DISK_REPAIR_TIME属性,可以是分钟,也可以是小时,例如4.5小时或270分钟,例如:

ALTER DISKGROUP dg01 SET ATTRIBUTE 'disk_repair_time' = '4.5h'

ALTER DISKGROUP dg01 SET ATTRIBUTE 'disk_repair_time' = '270m'

在你修复磁盘后,运行ALTER DISKGROUP DISK ONLINE这条SQL语句可以使磁盘组恢复到联机状态,新的读写操作都可以正常进行了,这条语句也触发把磁盘维修期间内更改的extent从磁盘组冗余的数据重新同步到刚才失效的这些磁盘中。

以上的相关内容就是对Oracle数据库ASM功能详解的介绍,望你能有所收获。

【编辑推荐】

【责任编辑:孙巧华 TEL:(010)68476606】

点赞 0

Oracle数据库asm原理,Oracle数据库中ASM功能解剖相关推荐

  1. oracle命令行原理,Oracle命令行操作方式

    (1) 进入sqlplus界面 sqlplus user/password@dbname (2)进入sqlplus界面        sqlplus  /nolog        SQL>con ...

  2. Oracle count函数原理,oracle count函数

    用来返回查询的行数. 当指定distinct时,不能接order_by_clause: 如果指定表达式,count返回表达式不为空的值: 当指定*号时,它返回所有行,含重复行和空值.count从不返回 ...

  3. Oracle单实例下oracle数据库从文件系统迁移到ASM上

    第一步:启动ASM实例(+ASM) [oracle@oracle ~]$ export ORACLE_SID=+ASM [oracle@oracle ~]$ sqlplus / as sysdba S ...

  4. oracle 10g 配置asm,在Oracle Linux 4.7上安装配置Oracle 10g ASM数据库

    安装Oracle Linux的时候选上Oracle需要的那些rpm包,还有Oracle ASM那些rpm包. 1,修改/boot/grub/grub.conf文件,把default改成1 0对应ELh ...

  5. oracle rebalance参数,【案例】Oracle ASM扩展新LAN加入asm diskgroup asm rebalance 原理

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库的ASM空间不足,需要扩展.通过划新的LAN加入asm diskgroup并分析asm rebalance 原理. 本站文章除注 ...

  6. linux中asm数据库卸载教程,删除Linux非rac环境下的ASM实例

    转自:http://18904.com/archives/917.html 环境说明: 操作系统:CentOS 5 x86 数据库:Oracle 10.2.0.1 非RAC环境 ASM实例名:+ASM ...

  7. oracle 11g asm升级,Oracle 11g R1中ASM增强

    [IT168 技术文章] 本文主要概述了Oracle数据库11g第1版中对自动存储管理(ASM)的增强,其中包括: Oracle数据库存储管理员指南 新的磁盘组兼容属性 镜像快速重新同步 滚动升级 S ...

  8. linux oracle流复制文件,【学习笔记】Oracle ASM linux dd命令复制asm中文件 操作磁盘或者分区...

    天萃荷净 使用dd复制asm中文件,随着数据库新版本的推广ASM肯定会越来越被重视,最近准备系统的学习下ASM,以备突发情况需要,这是asm深入学习笔记 1.查询ASM某个数据文件AU信息 SQL&g ...

  9. Oracle 10g rac + ASM数据迁移(替换ASM中的磁盘,用新存储替换旧存储)

    一.环境介绍 Redhat 5.8 Oracle 10g rac + ASM 目前数据库是一套Oracle 10g rac环境,使用的是ASM,ASM的存储空间来自多台存储设备,包括:XP12000. ...

最新文章

  1. 李德毅获吴文俊人工智能最高成就奖 | AI日报
  2. 干货!一次kafka卡顿事故排查过程
  3. 怎么配置php服务器时间,php如何设置服务器时间
  4. Scala调用Java静态成员及静态方法注意点——只能通过当前类名调用而不能借助子类调用父类静态成员/方法
  5. 调查预测:云部署将于2018年中迎来小高峰
  6. cass小插件集合_插件|如何精准提取CASS方格网高程点?
  7. django处理select下拉表单(从model到前端到post到form)
  8. 4188元起!华为P40系列国行版发布:买它?
  9. 云承软件和云溪哪个好_多工序开料机的软件对接及注意事项
  10. 利用泰勒展开求高斯分布表
  11. SpreadJS V14.2.0 放假前Crack
  12. java围棋毕业设计,基于Java的围棋游戏的设计与实现.docx
  13. 蓝的成长记——追逐DBA(11):回家后的安逸,晕晕乎乎醒了过来
  14. GetType obsolete
  15. 阿尔法编程python答案_C语言程序设计-阿尔法编程(编程答案)
  16. linux生成了.swp文件怎么办
  17. Mac电脑卡顿的解决办法
  18. vs 项目重新生成无反应,仍然执行之前原先代码
  19. 大学计算机专业相关证书有哪些,大学必考8大证书 哪些最实用
  20. 点击table中的某一个td,获得这个tr的所有数据

热门文章

  1. linux下 open() write() read() close函数
  2. linux下/etc目录详解
  3. php mysql数据库简介,mysql数据库
  4. android状态栏半透明灰色,Android7.0沉浸式状态栏蒙灰问题完美解决
  5. HTML5 进阶系列:indexedDB 数据库
  6. jump-server 安装部署
  7. docker与虚拟机的对比
  8. Java中的数据结构
  9. 知乎高赞:985计算机视觉毕业后找不到工作怎么办?怒刷leetcode,还是另寻他路?
  10. 不要再问了,数据库不建议上Docker