ASM磁盘组及磁盘 添加、删除

2023-05-16

一、相关概念
1.ASM 磁盘组
ASM存储管理除了ASM实例之外,最大的组成部分就是ASM磁盘组。一个ASM磁盘组由过多个ASM磁盘组成
一个磁盘组内可以存放多个数据文件,一个数据文件仅仅只能位于一个磁盘组内,不能跨磁盘组
多个数据库可以共享相同的或多个磁盘组
磁盘组的冗余类型可以分为三类:标准冗余,高度冗余,外部冗余
对于已创建的磁盘组,不能够更改其冗余级别,如要更改,需要删除该磁盘组后再重新创建

2.ASM 磁盘
ASM磁盘通过标准的OS接口来访问,由Oracle用户来读写,在聚集的所有节点可以被访问
ASM磁盘在不同的节点可以使用不同的名字
ASM磁盘可以使网络文件系统
ASM磁盘上的对象被冗余保护
每一个ASM磁盘的第1块用于定义磁盘的头部信息,ASM磁盘名字编号,创建的时间戳等
ASM文件会均匀分布在一个ASM组内的各个磁盘中

3.ASM 故障组
一个磁盘组可以由两个或多个故障组组成
一个故障组由一个或多个ASM磁盘组成
故障组提供了共享相同资源的冗余,我们可以这样来理解标准冗余
假定有磁盘组DG1,且创建了两个故障组fgroup1,fgroup2,每个故障组由2个ASM磁盘组成,则对标准冗余而言,两个故障组互为镜像
failgroup1 --> asmdiskA , asmdiskB
failgroup2 --> asmdiskC , asmdiskD
假定文件datafileA大小为4MB,则4个extent均匀分布到asmdiskA,asmdiskB,同样asmdiskC,asmdiskD也包含该文件的1至4个extent
即只要有一个extent在故障组fgroup1中存在,必定有一个镜像的extent存在于fgroup2中,反之亦然,两个extent互为镜像。
当一个故障组中的某个磁盘损坏,假定为asmdiskA ,则asmdiskA中原来保存的extent将会从failgroup2中复制到asmdiskB中。
总之,故障组failgroup1和failgroup2必定有相同的extent副本
标准冗余至少需要2个故障组,高度冗余则至少需要3个故障组。事实上对于未明确指定故障组的情况下,一个标准冗余至少需要2个
asm磁盘,而高度冗余至少需要3个asm磁盘

4.分配单元
ASM磁盘的最小粒度是分配单元,大小默认是1M,也可设置为128K进行细粒度访问
支持粗粒度和细粒度分配单元进行读写来实现装载平衡和减少延迟
ASM文件由一些分配单元的集合组成

5.ASM 文件
对Oracle自身而言,实际上与标准的文件并没有太多区别
ASM文件一般位于磁盘组内创建的子目录内,磁盘组以加号开头,相当于Linux系统的根目录
如+DG1/oradb/datafile/system.258.346542
ASM可以为控制文件,数据文件,联机日志文件,参数文件,归档日志,备份等
不支持trace文件,可执行文件,OCR,Votingdisk等,注:Oracle 11g R2可支持
使用extent maps来记录文件到磁盘的映射

6.I/O分布
可以使用条带化和镜像来保护数据
文件被平均分布在一个组内的所有磁盘中
磁盘的添加与删除,ASM会自动重新分配AU,因此也不存在碎片的问题
将I/O分配到不同的磁盘控制器提高了读写数据

7.Rebalance
ASM 文件被均衡地分布在一个磁盘组的所有磁盘中
磁盘添加时,当前磁盘组加载的所有磁盘中共享的部分extent将会被移植到新的磁盘中,直到重新分布完成才正常提供I/O均衡
磁盘删除或故障时,删除磁盘或故障磁盘的extent将会被均匀的分布到剩余的磁盘中
未使用force关键字drop磁盘操作,该磁盘上所有数据rebalance完毕后才被释放.即完毕后磁盘脱机,置磁盘头部状态为former
总之,任意存储性质改变(磁盘增加,删除,故障)都将导致rebalance,且由asm自动完成,无需人工干预,在一个时间段通常会锁定一个盘区

8.ASM磁盘组的管理
通常建议创建两个磁盘组,一个用于保存数据文件,一个用于保存闪回,备份恢复使用
Flash Recovery Area 的大小取决于闪回内容需要保留的时间长短
尽可能将数据区与闪回区使用不同的物理通道
尽可能一次性mount所有需要用到的磁盘
建议使用性能,磁盘大小相近的磁盘。假定两个故障组FG1,FG2各使用一块磁盘,则FG1内的磁盘应保持与FG2内的磁盘大小相同,
否则会以最小的磁盘空间作为可使用空间
9.ASM磁盘组管理原则
添加或删除磁盘的影响
当发生添加/删除磁盘组中磁盘的操作时,ASM能够自动平衡。对于普通的删除操作(无force选项),被删除的磁盘在该上数据被有效处理前并不会立刻释放同样,新增磁盘时,在重分配工作完成前,该盘也不会承担I/O负载的工作

ASM如何处理磁盘故障
ASM磁盘组大致有二:普通组和故障组,后者与ASM的冗余方式有所关联。
普通磁盘组就是标准的存储单元,ASM可以向其可访问的磁盘组中读写数据,failure磁盘组是为了提高数据的高可用性。
ASM中的磁盘冗余策略非常简单,概要成三类:外部冗余、标准冗余和高度冗余。其中,外部冗余和failure组无关。
如果设置了标准冗余或者高度冗余,那么该磁盘组就必须要有故障组。
对于标准冗余,ASM要求该磁盘组至少要拥有两个failure磁盘组,即提供双倍镜像保护,对于同一份数据,将有主从两份镜像。
并且ASM通过算法来自动确保主、从镜像不会存在于同一份failure磁盘组,这样就保障了就算整个failure磁盘组都损坏,数据也不会丢失。
ASM中镜像单位不是磁盘,也不是块,而是一种AU的单位,该单位大小默认是1M。
至于高度冗余,它至少需要三个failure磁盘组,也就是一份AU有一主多从的镜像,理论上将更加安全。
外部冗余的话磁盘属于磁盘组,内部冗余的话,磁盘属于磁盘组的同时,还属于而且仅属于某个failure磁盘组。
如果磁盘发生损坏,那么损坏的磁盘默认自动offlice并被drop掉,不过该磁盘所在的磁盘组仍将保持MOUNT状态。
如果该组有镜像的话,那么应用不会有影响,镜像盘将自动实现接管--只要不是所有failure磁盘组都损坏掉,否则的话,该磁盘组将自动DISMOUNT
举个例子吧,某标准冗余的failure组有6个盘(对应6个裸设备),假如说此时坏了一块盘,没关系,操作继续,坏了那块会被自动dropped,剩下的5块盘仍然能够负担起正常的读写操作。


ASM磁盘添加 磁盘操作 记录
export ORACLE_SID=+ASM
export ORACLE_HOME=/u01/app/grid/product/11.2.4/db_1/
sqlplus / as sysdba
SQL> select instance_name from v$instance;

INSTANCE_NAME
--------------------------------
+ASM


查看当前已经存在的ASM磁盘组
set pagesize 1000 linesize 500
select GROUP_NUMBER,NAME,TOTAL_MB,FREE_MB from v$asm_diskgroup;

GROUP_NUMBER NAME TOTAL_MB FREE_MB
------------ ------------------------------------------------------------ ---------- ----------
1 DATA 381553 126814

查看ASM磁盘的冗余策略
SQL> select state,name,type from v$asm_diskgroup;
STATE NAME TYPE
---------------------- ------------------------------------------------------------ ------------
MOUNTED DATA EXTERN

查看磁盘信息
select GROUP_NUMBER,DISK_NUMBER,TOTAL_MB,FREE_MB,NAME from v$asm_disk;
GROUP_NUMBER DISK_NUMBER NAME FAILGROUP CREATE_DATE PATH
------------ ----------- ---------- ------------------------------------------------------------ ------------ ----------
0 0 ORCL:DATA1
1 0 DATA DATA 16-DEC-15 ORCL:DATA


添加磁盘
alter diskgroup DATA add disk 'ORCL:DATA1' rebalance power 10;

监控asm磁盘组平衡速度
select * from v$asm_operation;

EST_MINUTES=0的时候 表示完成

备份磁盘头信息
su - oracle
mkdir -p /u01/app/oracle/diskheader
cd /u01/app/oracle/diskheader
[oracle@testya diskheader]$ kfed read /dev/oracleasm/disks/DATA > DATAheader.txt
[oracle@testya diskheader]$ kfed read /dev/oracleasm/disks/DATA1 > DATA1header.txt



---删除磁盘组
SQL> select GROUP_NUMBER,DISK_NUMBER,TOTAL_MB,FREE_MB,NAME from v$asm_disk;

GROUP_NUMBER DISK_NUMBER TOTAL_MB FREE_MB
------------ ----------- ---------- ----------
NAME
------------------------------------------------------------
1 0 381553 183266
DATA

1 1 381553 183268

执行删除:

alter diskgroup DATA drop disk DATA1;


SQL> alter diskgroup DATA drop disk DATA1;
alter diskgroup DATA drop disk DATA1
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15250: insufficient diskgroup space for rebalance completion
考虑应该是数据占用的空间过多了

删除测试空间
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options

SQL> drop tablespace t including contents and datafiles;

Tablespace dropped.

SQL> drop tablespace tt including contents and datafiles;

Tablespace dropped.


SQL> alter diskgroup DATA drop disk DATA1;

Diskgroup altered.
监控asm磁盘组平衡速度
select * from v$asm_operation;

SQL> select * from v$asm_operation;

GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- ----------- ----------------------------------------------------------------------------------------
1 REBAL RUN 1 1 44654 167557 21662 5

参考:
ASM 磁盘、目录的管理
http://blog.csdn.net/leshami/article/details/6134071
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASM磁盘组及磁盘 添加、删除 的相关文章

  • 宽带测速网站收集

    国际通用 xff1a https www speedtest net http www speedtest cn xff08 国产 xff0c 主要服务器节点多 xff09 电信 xff1a https 10000 gd cn 移动 xff
  • 使用Git为每个项目配置独立的用户名和邮箱

    使用Git为每个项目配置独立的用户名和邮箱 平时在开发的过程中 xff0c 用到git时 xff0c 要做一些特殊的配置 xff0c 例如自己公司内网https的SSL证书未经过第三方机构签署 xff0c 直接操作Git就会报错 xff0c
  • 电脑重装系统后文件还能恢复吗?2个方法助你还原文件

    电脑重装系统后文件还能恢复吗 xff1f 此时可能你面临一个难题 xff1a 已经重装了电脑 xff0c 但是发现丢失的问题 实际上 xff0c 一般当电脑出现运行缓慢 xff0c 或者是电脑系统出现故障无法修复的时候 xff0c 大家都会
  • C盘重装还能恢复以前文件嘛,重装C盘数据备份清单

    重装系统主要是对C盘的重装 xff0c 也就是对C盘的格式化 xff0c 电脑安装系统的位置是C盘 xff0c 常见的重装方法只影响C盘而不会丢失其他盘的数据 那么C盘重装还能恢复以前的文件嘛 xff1f 重装C盘时什么文件必须备份呢 xf
  • HTML Parsing Error:Unable to modify the parent container element before the child element is closed

    一 又涨见识了 IE8报下面错误 xff0c 而且是我的机器不报 xff0c 同事的机器报 xff0c 试了4台 xff0c 两个报 xff0c 两个不报 xff0c IE版本都一样 xff0c 没想明白 解决 xff1a 1 查看是否有未
  • 架构师必须学会的几种 UML图

    文章目录 一 UML 是什么定义作用 二 UML 画图的工具推荐三 UML 类图中的关系1 泛化 继承 2 实现 xff08 Realization xff09 3 关联 xff08 Association 4 聚合 xff08 Aggre
  • 算法:如何实现两个大数相加

    文章目录 问题要求思路代码实现 问题 实现两个很大很大的数相加 xff0c 求出它们的和 要求 1 是整数 xff1b 2 两个数无限大 xff0c long 都装不下 xff1b 3 不能用 BigInteger xff1b 4 不能用任
  • 关于Android 未来开发的方向探讨

    文章目录 背景Anroid 应用开发工程师技能参考Android 基础设施建设技能参考Android 逆向开发工程师技能参考Android Framework工程师技能参考 xff08 车载系统 系统开发方向 xff09 Android 性
  • Git Commit Message 规范实践

    文章目录 背景示例FeatureBugRefactorDocsTestStyleChore 每个Merge Request只有一个Commit小结附录 背景 本文总结了项目实践中的 Commit Message 规范 任何一笔提交都是有原因
  • github push 报错的问题记录

    文章目录 背景解决办法示例 背景 当 git 执行 git push xff08 origin origin master xff09 后出现错误提示 xff1a git push origin origin master Password
  • Mac 平台 Android FFmpeg 编译与集成实践

    文章目录 FFmpeg 是什么为什么要学 FFmpeg 开发FFmpeg 编译1 编译环境准备2 FFmpeg 环境配置3 完整的脚本4 FQA 编译小结在Android Studio 中的集成集成问题记录写在最后 FFmpeg 是什么 F
  • 音频中文件大小计算公式(转)

    声卡对声音的处理质量可以用三个基本参数来衡量 xff0c 即采样频率 采样位数和声道数 采样频率是指单位时间内的采样次数 采样频率越大 xff0c 采样点之间的间隔就越小 xff0c 数字化后得到的声音就越逼真 xff0c 但相应的数据量就
  • 「设计模式」六大原则之一:单一职责小结

    文章目录 1 单一职责原则定义2 如何理解单一职责原则 xff08 SRP xff09 xff1f 3 如何判断类的职责是否足够单一 xff1f 4 类的职责是否设计得越单一越好 xff1f 5 应用体现6 应用示例18 应用示例2 xff
  • 「设计模式」六大原则之二:开闭职责小结

    文章目录 1 开闭原则定义2 如何理解 对扩展开放 对修改关闭 xff1f 3 如何做到 对扩展开放 修改关闭 xff1f 4 如何在项目中灵活应用开闭原则 xff1f 5 示例 xff1a 6 小结 xff1a 设计模式 六大原则系列链接
  • 「设计模式」六大原则之三:里氏替换原则小结

    文章目录 1 里式替换原则定义2 举例说明示例1 xff1a 示例2 xff1a 3 哪些代码明显违背了 LSP xff1f 子类违背父类声明要实现的功能子类违背父类对输入 输出 异常的约定子类违背父类注释中所罗列的任何特殊说明开发 Tip
  • 「设计模式」六大原则之四:接口隔离原则小结

    文章目录 1 接口隔离原则定义2 如何理解3 接口隔离原则与单一职责原则的区别2 举例说明4 小结 设计模式 六大原则系列链接 设计模式 六大原则之一 xff1a 单一职责小结 设计模式 六大原则之二 xff1a 开闭职责小结 设计模式 六
  • 「设计模式」六大原则之五:依赖倒置原则小结

    文章目录 1 依赖倒置原则 xff08 DIP xff09 定义4 DIP举例说明2 如何理解控制反转 xff08 IOC xff09 3 如何理解依赖注入 xff08 DI xff09 4 小结 设计模式 六大原则系列链接 设计模式 六大
  • 「设计模式」六大原则之六:最小知识原则小结

    文章目录 1 最小知识原则 xff08 LOD xff09 定义2 什么是 高内聚 呢3 什么是 松耦合 xff1f 4 应用举例 设计模式 六大原则系列链接 设计模式 六大原则之一 xff1a 单一职责小结 设计模式 六大原则之二 xff
  • Android NDK 中堆栈日志 add2line 的分析实践

    文章目录 目的常用的辅助工具分析步骤参考 目的 Android NDK 中出现的 crash 日志分析定位 xff0c 使用 addr2line 对库中定位so 动态库崩溃位置 xff0c 定位到某个函数的具体的代码行 常用的辅助工具 ad
  • Android 中关于 FileObserver类监听文件状态的实践

    文章目录 需求背景走进源码实现示例参考 需求背景 当某一个目录的文件发生变化 xff08 创建 修改 删除 移动 xff09 时 xff0c 需要给一个回调事件给其他端调用 其他场景 xff1a 阅后即焚等等 比如在 Android 的 V

随机推荐