Oracle自动存储管理ASM(oracle自动释放表空间)
mhr18 2024-09-21 18:55 16 浏览 0 评论
什么是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镜像化选项:
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 TypeSupported Mirroring LevelsDefault Mirroring LevelNormal redundancy2-way3-wayUnprotected (none)2-wayHigh redundancy3-way3-wayExternal redundancyUnprotected (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操作会更快。
相关推荐
- B站收藏视频失效?mybili 收藏夹备份神器完整部署指南
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:羊刀仙很多B站用户都有过类似经历:自己精心收藏的视频突然“消失”,点开一看不是“已被删除”,就是“因UP主设置不可见”。而B站并不会主动通知...
- 中间件推荐初始化配置
-
Redis推荐初始化配置bind0.0.0.0protected-modeyesport6379tcp-backlog511timeout300tcp-keepalive300...
- Redis中缓存穿透问题与解决方法
-
缓存穿透问题概述在Redis作为缓存使用时,缓存穿透是常见问题。正常查询流程是先从Redis缓存获取数据,若有则直接使用;若没有则去数据库查询,查到后存入缓存。但当请求的数据在缓存和数据库中都...
- 后端开发必看!Redis 哨兵机制如何保障系统高可用?
-
你是否曾在项目中遇到过Redis主服务器突然宕机,导致整个业务系统出现数据读取异常、响应延迟甚至服务中断的情况?面对这样的突发状况,作为互联网大厂的后端开发人员,如何快速恢复服务、保障系统的高可用...
- Redis合集-大Key处理建议
-
以下是Redis大Key问题的全流程解决方案,涵盖检测、处理、优化及预防策略,结合代码示例和最佳实践:一、大Key的定义与风险1.大Key判定标准数据类型大Key阈值风险场景S...
- 深入解析跳跃表:Redis里的"老六"数据结构,专治各种不服
-
大家好,我是你们的码农段子手,今天要给大家讲一个Redis世界里最会"跳科目三"的数据结构——跳跃表(SkipList)。这货表面上是个青铜,实际上是个王者,连红黑树见了都要喊声大哥。...
- Redis 中 AOF 持久化技术原理全解析,看完你就懂了!
-
你在使用Redis的过程中,有没有担心过数据丢失的问题?尤其是在服务器突然宕机、意外断电等情况发生时,那些还没来得及持久化的数据,是不是让你夜不能寐?别担心,Redis的AOF持久化技术就是...
- Redis合集-必备的几款运维工具
-
Redis在应用Redis时,经常会面临的运维工作,包括Redis的运行状态监控,数据迁移,主从集群、切片集群的部署和运维。接下来,从这三个方面,介绍一些工具。先来学习下监控Redis实时...
- 别再纠结线程池大小 + 线程数量了,没有固定公式的!
-
我们在百度上能很轻易地搜索到以下线程池设置大小的理论:在一台服务器上我们按照以下设置CPU密集型的程序-核心数+1I/O密集型的程序-核心数*2你不会真的按照这个理论来设置线程池的...
- 网络编程—IO多路复用详解
-
假如你想了解IO多路复用,那本文或许可以帮助你本文的最大目的就是想要把select、epoll在执行过程中干了什么叙述出来,所以具体的代码不会涉及,毕竟不同语言的接口有所区别。基础知识IO多路复用涉及...
- 5分钟学会C/C++多线程编程进程和线程
-
前言对线程有基本的理解简单的C++面向过程编程能力创造单个简单的线程。创造单个带参数的线程。如何等待线程结束。创造多个线程,并使用互斥量来防止资源抢占。会使用之后,直接跳到“汇总”,复制模板来用就行...
- 尽情阅读,技术进阶,详解mmap的原理
-
1.一句话概括mmapmmap的作用,在应用这一层,是让你把文件的某一段,当作内存一样来访问。将文件映射到物理内存,将进程虚拟空间映射到那块内存。这样,进程不仅能像访问内存一样读写文件,多个进程...
- C++11多线程知识点总结
-
一、多线程的基本概念1、进程与线程的区别和联系进程:进程是一个动态的过程,是一个活动的实体。简单来说,一个应用程序的运行就可以被看做是一个进程;线程:是运行中的实际的任务执行者。可以说,进程中包含了多...
- 微服务高可用的2个关键技巧,你一定用得上
-
概述上一篇文章讲了一个朋友公司使用SpringCloud架构遇到问题的一个真实案例,虽然不是什么大的技术问题,但如果对一些东西理解的不深刻,还真会犯一些错误。这篇文章我们来聊聊在微服务架构中,到底如...
- Java线程间如何共享与传递数据
-
1、背景在日常SpringBoot应用或者Java应用开发中,使用多线程编程有很多好处,比如可以同时处理多个任务,提高程序的并发性;可以充分利用计算机的多核处理器,使得程序能够更好地利用计算机的资源,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle位图索引 (63)
- oracle批量插入数据 (62)
- oracle事务隔离级别 (53)
- oracle 空为0 (50)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- 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)