详解Oracle 自动存储管理群集文件系统 (Oracle ACFS) 文件系统
mhr18 2024-09-23 09:47 38 浏览 0 评论
概述
Oracle Automatic Storage Management Cluster File System (Oracle ACFS) and Oracle ASM Dynamic Volume Manager (Oracle ADVM) extend Oracle ASM functionality.
ADVM主要是为了使除了数据库之外的第三方应用程序也可以使用asm存储,这样不限于使asm局限于自家的数据库领域。ACFS不能用于linux根分区,不能用于grid的安装目录,不支持数据库文件(即asm存储的文件),使用acfs要依赖于advm卷。下面主要从ASM实例、ASM磁盘组、镜像和故障组、ASM磁盘、AU和Extents来介绍oracle ACFS文件系统。
小编辛辛苦苦整理总结出来的,看完帮忙点个赞哦!
Oracle ASM Instances
1、概念
Oracle ASM metadata is the information that Oracle ASM uses to control a disk group and the metadata resides within the disk group.
Oracle ASM实例具有与Oracle数据库类似的系统全局区域(SGA)和后台进程。Oracle ASM实例装载磁盘组以使Oracle ASM文件可用于数据库实例;Oracle ASM实例不装载数据库。
Oracle ASM实例可以使用Oracle群集软件进行群集;每个群集节点都有一个Oracle ASM实例。如果同一节点上有多个不同数据库的数据库实例,则数据库实例在该节点上共享同一个Oracle ASM实例。
如果标准Oracle ASM集群中某个节点上的Oracle ASM实例失败,则该节点上的所有数据库实例也会失败。但是,在Oracle Flex ASM配置中,Oracle 12c数据库实例不会失败,因为它们可以远程访问另一个节点上的另一个Oracle ASM实例。
2、一个Oracle ASM实例和多个数据库实例的单节点配置
Oracle ASM实例管理元数据并为Oracle ASM文件提供空间分配。当数据库实例创建或打开Oracle ASM文件时,它将这些请求传递给Oracle ASM实例。作为响应,Oracle ASM实例向数据库实例提供文件范围映射信息。
3、Oracle RAC环境中的Oracle ASM群集
这里的Oracle ASM提供群集存储池。集群中的每个节点都有一个Oracle ASM实例,为多个Oracle RAC或单个实例数据库提供服务。所有数据库都是合并的,并且共享同两个Oracle ASM磁盘组。
4、多个单实例Oracle数据库共享集群存储池
如果要在多个节点之间共享磁盘组,必须在所有节点上安装Oracle Clusterware,而不管是否在节点上安装Oracle RAC。单独节点上的Oracle ASM实例不需要是Oracle ASM集群的一部分。但是,如果Oracle ASM实例不是Oracle ASM集群的一部分,则它们无法相互通信。不属于Oracle ASM群集的多个节点不能共享磁盘组。
Oracle ASM Disk Groups
A disk group consists of multiple disks and is the fundamental object that Oracle ASM manages.
Each disk group contains the metadata that is required for the management of space in the disk group. Disk group components include disks, files, and allocation units.
ASM磁盘组文件是从磁盘组分配的。任何Oracle ASM文件都完全包含在单个磁盘组中。但是,磁盘组可能包含属于多个数据库的文件。
一般是用asmca和命令行来配置asm磁盘组,之前有介绍过,篇幅有限,这里过滤下~
Mirroring and Failure Groups
Mirroring protects data integrity by storing copies of data on multiple disks.
镜像通过在多个磁盘上存储数据副本来保护数据完整性。
The redundancy level controls how many disk failures are tolerated without dismounting the disk group or losing data. The disk group type determines the mirroring levels with which Oracle creates files in a disk group.
主要有以下三个冗余级别:
- Normal for 2-way mirroring
- High for 3-way mirroring
- External to not use Oracle ASM mirroring, such as when you configure hardware RAID for redundancy
1、 外部冗余(external redundancy):
表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。
2、 默认冗余(normal redundancy):
表示Oracle提供2份镜像来保护数据(镜像数据一次),有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)。
3、 高度冗余(high redundancy):
表示Oracle提供3份镜像来保护数据(镜像数据两次),以提高性能和数据的安全,最少需要三块磁盘(三个failure group);
有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。
Oracle ASM Disks
Oracle ASM disks are the storage devices that are provisioned to Oracle ASM disk groups. ASM磁盘组成ASM磁盘组。
Oracle ASM磁盘包括:
1)存储阵列中的磁盘或分区
2)整个磁盘或磁盘分区
3)逻辑卷
4)网络附加文件(NFS)
Oracle ASM将文件按比例分布在磁盘组中的所有磁盘上。这种分配模式将每个磁盘保持在相同的容量级别,并确保磁盘组中的所有磁盘具有相同的I/O负载。由于Oracle ASM在磁盘组中的所有磁盘之间进行负载平衡,不同的Oracle ASM磁盘不应共享同一个物理驱动器。
Oracle ASM Allocation Units和ASM Extents
1、oracle ASM AU
An allocation unit is the fundamental unit of allocation within a disk group. A file extent consists of one or more allocation units. An Oracle ASM file consists of one or more file extents.
每个Oracle ASM磁盘都被划分为分配单元(AU)。
创建磁盘组时,可以使用au_size磁盘组属性设置Oracle ASM分配单元大小。AU一般可以是1、2、4、8、16、32或64 MB,具体取决于特定的磁盘组兼容性级别。如果不指定AU的大小,默认值是1MB(Exadata下为4MB)。较大的AU大小通常为使用大型顺序读取的数据仓库应用程序提供性能优势。
2、Oracle ASM Extents
一个或多个AU组成一个extent,一个或多个ASM extent组成了一个ASM的文件,因此一个ASM文件逻辑上是由extent组成的。
我们需要区分物理extent和虚拟extent,一个虚拟extent或者说extent set,在外部冗余的磁盘组中,是由一个物理extent组成,在normal冗余的磁盘组中,是由至少2个物理extent组成,在一个high冗余的磁盘组中,由至少3个物理extent组成。
在ASM 11.1版本之前,extent的大小是固定的,在ASM 11.1版本之后,出现了可变extent,可变extent的出现是为了更好的支持大数据文件,减少对ASM和数据库实例的SGA要求、提升创建文件和打开文件等操作的性能,初始化的extent大小等于磁盘组的AU_SIZE设定值,随着一个文件分配的extent越来越多,extent的size会按照4或16倍的AU_SIZE增大。这个特性在文件新建或者resize的时候自动起作用,当然ASM磁盘组的属性值COMPATIBLE.ASM 和COMPATIBLE.RDBMS要设置为大于等于11.1。
3、Oracle ASM Extent与AU的关系
这里前八个扩展数据块(0到7)分布在四个Oracle ASM磁盘上,大小等于AU。在第一个20000个范围集之后,接下来的20000个范围集(20000-39999)的范围大小将变为4*au。这显示为用范围集编号20000到20007标记的粗体矩形,依此类推。Oracle ASM扩展盘区的下一个增量是16*au。
一个文件的extent大小变化规律遵循如下方式:
一个文件的前20000个extent set,extent的size等于磁盘组的AU_SIZE的设定值。
接下来的20000个extent set,extent的size等于磁盘组的AU_SIZE*4。
如果一个文件的总extent set数多于40000个,那么后面所有的extent的size等于磁盘组的AU_SIZE*16。
总结:
ACFS=ASM Cluster File System,其建立于来自ASM的 Volume上,除了与普通文件系统类似,还可以在多个节点间共享。主要有ASM,ADVM,ACFS三个组件,ADVM(ASM Dynamic Volume Manager,可翻译为,ASM动态卷管理器)主要负责将ASM空间输出到OS的,也就是用来实现Volume的。大家可以跟lvm对照着理解:
asm disk -> lvm pv asm dg -> lvm vg asm advm acfs -> lv+fs
后面会分享更多关于DBA方面的内容,感兴趣的朋友可以关注下!!
相关推荐
- Spring Boot 分布式事务实现简单得超乎想象
-
环境:SpringBoot2.7.18+Atomikos4.x+MySQL5.71.简介关于什么是分布式事务,本文不做介绍。有需要了解的自行查找相关的资料。本篇文章将基于SpringBoot...
- Qt编写可视化大屏电子看板系统15-曲线面积图
-
##一、前言曲线面积图其实就是在曲线图上增加了颜色填充,单纯的曲线可能就只有线条以及数据点,面积图则需要从坐标轴的左下角和右下角联合曲线形成完整的封闭区域路径,然后对这个路径进行颜色填充,为了更美观...
- Doris大数据AI可视化管理工具SelectDB Studio重磅发布!
-
一、初识SelectDBStudioSelectDBStudio是专为ApacheDoris湖仓一体典型场景实战及其兼容数据库量身打造的GUI工具,简化数据开发与管理。二、Select...
- RAD Studio 、Delphi或C++Builder设计代码编译上线缩短开发时间
-
#春日生活打卡季#本月,Embarcadero宣布RADStudio12.3Athens以及Delphi12.3和C++Builder12.3,提供下载。RADStudio12.3A...
- Mybatis Plus框架学习指南-第三节内容
-
自动填充字段基本概念MyBatis-Plus提供了一个便捷的自动填充功能,用于在插入或更新数据时自动填充某些字段,如创建时间、更新时间等。原理自动填充功能通过实现com.baomidou.myba...
- 「数据库」Sysbench 数据库压力测试工具
-
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。目前支持的数据库有MySQL、Oracle和PostgreSQL。以...
- 如何选择适合公司的ERP(选erp系统的经验之谈)
-
很多中小公司想搞ERP,但不得要领。上ERP的目的都是歪的,如提高效率,减少人员,堵住财务漏洞等等。真正用ERP的目的是借机提升企业管理能力,找出管理上的问题并解决,使企业管理更规范以及标准化。上ER...
- Manus放开注册,但Flowith才是Agent领域真正的yyds
-
大家好,我是运营黑客。前天,AIAgent领域的当红炸子鸡—Manus宣布全面放开注册,终于,不需要邀请码就能体验了。于是,赶紧找了个小号去确认一下。然后,额……就被墙在了外面。官方解释:中文版...
- 歌浓酒庄总酿酒师:我们有最好的葡萄园和最棒的酿酒师
-
中新网1月23日电1月18日,张裕董事长周洪江及总经理孙健一行在澳大利亚阿德莱德,完成了歌浓酒庄股权交割签约仪式,这也意味着张裕全球布局基本成型。歌浓:澳大利亚年度最佳酒庄据悉,此次张裕收购的...
- 软件测试进阶之自动化测试——python+appium实例
-
扼要:1、了解python+appium进行APP的自动化测试实例;2、能根据实例进行实训操作;本课程主要讲述用python+appium对APP进行UI自动化测试的例子。appium支持Androi...
- 为什么说Python是最伟大的语言?看图就知道了
-
来源:麦叔编程作者:麦叔测试一下你的分析能力,直接上图,自己判断一下为什么Python是最好的语言?1.有图有真相Java之父-JamesGoshlingC++之父-BjarneStrou...
- 如何在Eclipse中配置Python开发环境?
-
Eclipse是著名的跨平台集成开发环境(IDE),最初主要用来Java语言开发。但是我们通过安装不同的插件Eclipse可以支持不同的计算机语言。比如说,我们可以通过安装PyDev插件,使Eclip...
- 联合国岗位上新啦(联合国的岗位)
-
联合国人权事务高级专员办事处PostingTitleIntern-HumanRightsDutyStationBANGKOKDeadlineOct7,2025CategoryandL...
- 一周安全漫谈丨工信部:拟定超1亿条一般数据泄露属后果严重情节
-
工信部:拟定超1亿条一般数据泄露属后果严重情节11月23日,工信部官网公布《工业和信息化领域数据安全行政处罚裁量指引(试行)(征求意见稿)》。《裁量指引》征求意见稿明确了行政处罚由违法行为发生地管辖、...
- oracle列转行以及C#执行语句时报错问题
-
oracle列转行的关键字:UNPIVOT,经常查到的怎么样转一列,多列怎么转呢,直接上代码(sshwomeyourcode):SELECTsee_no,diag_no,diag_code,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle 空为0 (51)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)