参考资料:

https://docs.oracle.com/cd/B19306_01/server.102/b14231/storeman.htm#ADMIN036

什么是ASM?

ASM是Automatic Storage Management(自动存储管理)的缩写。ASM是一个集成的高性能的文件系统和卷管理器。Oracle将所有的存储分为disk groups,我们只需要管理这些disk groups,而不用去管具体的数据文件。

In the SQL statements that you use for creating database structures such as tablespaces, control files, and redo and archive log files, you specify file location in terms of disk groups. ASM then creates and manages the associated underlying files(底层文件) for you.

为什么使用ASM?

  • 提供高效率的存储管理
  • 提供完整的集群文件系统和卷管理能力

ASM的优点:

Mirroring and Striping(镜像化和条带化)

条带化是一种用于在多个磁盘驱动器之间分散数据的技术。一个大的数据段被分为较小的单元,这些单元分布在可用设备之间。分隔数据的单元称为“数据单元大小”或“条带大小”,是指向每个磁盘写入这些条带的大小。可以同时读写的并行条带数量称为“条带宽度”。分条可以加快从磁盘存储中获取数据的操作,这是因为它扩展了总I/O带宽的能力。这样就优化了性能和磁盘利用率,从而不再需要手动I/O 性能调优。

ASM镜像化选项:

Mirroring Option Description
2-way mirroring Each extent has 1 mirrored copy.
3-way mirroring Each extent has 2 mirrored copies.
Unprotected ASM provides no mirroring. Used when mirroring is provided by the disk subsystem itself.

Dynamic Storage Configuration(动态存储配置)

可以在数据库运行时更改数据库的配置,ASM会自动Rebalance。

ASM Instance(Oracle实例)

ASM实例是一种Oracle实例,它为磁盘组、ADVM(ASM动态卷)和ACFS(ASM集群文件系统)管理元数据。所有元数据修改都是由ASM实例完成的,以隔离故障。数据库实例连接到一个ASM实例,以创建、删除、打开、关闭文件或者改变其大小,数据库实例直接读写由ASM实例管理的磁盘。Oracle在内部使用自动内存管理,很少需要对一个Oracle ASM实例进行调优。

Interoperability with Existing Databases

已存在数据库的互操作性。ASM并不会消除已存在系统的功能。

Single Instance and Clustered Environments

ASM支持单实例和集群环境。

ASM的Components

ASM的五项组成:disk groups, disks, failure groups, files, and templates。

disk groups

ASM的首要组成就是disk groups,一组disk作为一个单元构成disk groups。

三种disk group类型对应的镜像选择:

Disk Group Type Supported Mirroring Levels Default Mirroring Level
Normal redundancy 2-way3-wayUnprotected (none) 2-way
High redundancy 3-way 3-way
External redundancy Unprotected (none) Unprotected

disks

在windows操作系统上,disk可能是一个分区(partition),在其他的平台上可能是:

  • A partition of a logical unit number (LUN)
  • A network-attached file

failure groups

故障组定义了一些ASM磁盘,它们可能共用一种潜在的故障装置。故障组是磁盘组中的一个磁盘子集,这个子集内的磁盘依赖于一个必须容忍其故障的公共硬件资源。只有对于普通冗余(Normal redundancy)或高冗余(High redundancy)配置,它才非常重要。相同数据的冗余副本被放置在不同的故障组中。

files

写到ASM磁盘中的文件称为ASM文件。每个ASM文件都完全包含在单个磁盘组中,平均分布在这个组中的所有ASM磁盘上。一个ASM文件就是一个数据盘区集,每个数据盘区是分配单元的一个集合。由于在ASM文件变大时Oracle会自动增大数据盘区的大小,因此我们不能改变数据盘区的大小。

templates

Templates是文件属性值的集合。用来给每一种类型的数据库文件设置镜像化和条带化的属性的。

关于templates:

Managing Disk Group Templates

ASM架构

ASM支持单实例架构和集群架构。

在一个数据库服务器中,可以存在多个数据库实例,一个数据库实例可以对应一个ASM实例,也可以多个数据库实例对应一个ASM实例。单实例架构如下图:

ASM集群架构如下:多个ASM实例共同管理数据文件。数据库实例和ASM实例最常常见的还是一对一。

Rebalance

  • ASM rebalance 操作不会影响数据库的正常使用

    • 会影响I/O效率
  • 能通过数据的重新分布,使得系统的I/O得到最大的提升
  • 从Oracle 10R2之后,如果关闭数据库实例,Rebalance操作会更快。

记得帮我点赞哦!

精心整理了计算机各个方向的从入门、进阶、实战的视频课程和电子书,按照目录合理分类,总能找到你需要的学习资料,还在等什么?快去关注下载吧!!!

念念不忘,必有回响,小伙伴们帮我点个赞吧,非常感谢。

我是职场亮哥,YY高级软件工程师、四年工作经验,拒绝咸鱼争当龙头的斜杠程序员。

听我说,进步多,程序人生一把梭

如果有幸能帮到你,请帮我点个【赞】,给个关注,如果能顺带评论给个鼓励,将不胜感激。

职场亮哥文章列表:更多文章

本人所有文章、回答都与版权保护平台有合作,著作权归职场亮哥所有,未经授权,转载必究!

Oracle自动存储管理ASM的更多相关文章

  1. 自动存储管理 ASM (转)

    文章转自:http://www.itpub.net/thread-1342473-1-1.html 自动存储管理 (ASM) ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台 ...

  2. 转:Oracle下创建ASM磁盘总结

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

  3. 跨resetlogs不完全恢复- oracle自动reset错误incarnation

    在做oracle跨resetlogs的不完全恢复时,如果未删除flashback area的控制文件自动备份,那么Oracle可能会从控制文件自动备份中自动探测到incarnation信息,并重置in ...

  4. oracle之二ASM 管理

    Oracle ASM 管理(PPT-II:602-636) 16.1 什么是ASM 自动存储管理即ASM(Automatic Storage Management),是Oracle提供的一项管理磁盘的 ...

  5. Oracle自动备份脚本(网上找到的资料)

    废话不多说了,直接给大家贴代码了,具体代码如下所示: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

  6. oracle自动编号

    oracle自动编号 在access中有自动编号的数据类型,MSSQL和MYSQL也都有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值,而oracle没有自动增长的数据类型,我们需要建 ...

  7. Oracle自动执行任务(存储过程)

    Oracle自动执行任务(存储过程) SQL> variable job number;SQL> begin2 dbms_job.submit(:job,'存储过程名;',sysdate, ...

  8. oracle 12c 中asm元数据是否有所变化

    详见原文博客链接地址: oracle 12c 中asm元数据是否有所变化

  9. Oracle自动备份.bat 最新更新(支持Win10了)

    20170418更新: 很多年没有用了,最近两天打开来用,发现在Win10下面At命令已经被淘汰不能使用了,还有不少命令工作方式和原来也不一样了 所以就更新了一下下,使用 schtasks 命令代替了 ...

随机推荐

  1. Flutter 容器(3) - AnimatedPadding

    AnimatedPadding : 会产生动画效果的padding,在给定时间内缩放到指定padding import 'package:flutter/material.dart'; class A ...

  2. P、NP、NPC问题详解

    转载地址 https://blog.csdn.net/bcb5202/article/details/51202589 P.NP.NPC 概念 > P问题:能够在多项式时间内解决的决策问题. - ...

  3. 浏览器自动化的一些体会8 HttpWebRequest的几个问题

    前面说过了,httpWebRequest的好处在于轻量,不需要界面,缺点在于无法执行javascript.这里再归纳一些问题. 1. 设置代理 1) httpWebRequest不支持https的代理 ...

  4. java反序列化——XMLDecoder反序列化漏洞

    本文首发于“合天智汇”公众号 作者:Fortheone 前言 最近学习java反序列化学到了weblogic部分,weblogic之前的两个反序列化漏洞不涉及T3协议之类的,只是涉及到了XMLDeco ...

  5. asyncio异步模块的21个协程编写实例

    启动一个无返回值协程 通过async关键字定义一个协程 import sys import asyncio async def coroutine(): print('运行协程') if sys.ve ...

  6. oracle练习前期准备

    oracle练习前期准备 登陆scott用户(默认密码tiger),开始一般提示用户已锁. 解决办法:登陆sys或system用户解锁 输入命令alter user scott account unl ...

  7. Java抽象类简述

    Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不 ...

  8. Combine 框架,从0到1 —— 1.核心概念

      本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 1.核心概念.     内容概览 前言 核心概念 RxSwift Combine 总结 参考内容 ...

  9. Kafka 0.10.1版本源码 Idea编译

    Kafka 0.10.1版本源码 Idea编译 1.环境准备 Jdk 1.8 Scala 2.11.12:下载scala-2.11.12.msi并配置环境变量 Gradle 5.6.4: 下载Grad ...

  10. 01.图文理解RDB和AOF两种持久化机制

    一.RDB和AOF两种持久化机制的介绍 RDB:对redis中的数据执行周期性的持久化,每隔一个时刻生成一个RDB文件,这个RDB文件包含这个时刻所有的数据. AOF:记录每条写入命令,以append ...