Oracle ASM:Oracle自动存储管理详解

4星 · 超过85%的资源 需积分: 10 10 下载量 195 浏览量 更新于2024-09-21 收藏 34KB DOCX 举报
"Oracle ASM是Oracle数据库的一种集成存储管理解决方案,它改变了传统数据库对磁盘空间的管理方式,提供了一种高效、灵活且高可用的存储架构。" Oracle ASM(Automatic Storage Management)是Oracle数据库系统中的一个核心组件,用于统一管理和优化数据库的数据存储。它引入了一种新的存储结构,与传统的非ASM存储方式相比,有着显著的优势。 在传统的非ASM存储环境中,数据库使用数据文件来存储数据,这些文件在操作系统层面被视为普通文件,由文件系统如Linux的ext2进行管理和跟踪。文件的创建和磁盘空间的分配都需要文件系统的参与。然而,这种方式可能会导致性能瓶颈,因为数据库实例需要与操作系统交互,处理文件级别的I/O操作。 相比之下,Oracle ASM引入了新的存储结构。ASM不再将Extent与DataBlock直接对应,而是与名为AU(Allocation Unit)的存储单位关联。同时,ASM不以DataFile的形式分配空间,而是使用ASMFile。ASMFilesystem的存在使得ASM能够将多个磁盘分区整合成一个磁盘组,提供给RDBMS使用。这为数据库实例提供了透明的存储层,使其可以专注于事务处理,而不必关注底层存储的具体实现。 ASM磁盘组是由一个或多个ASM磁盘构成的,每个磁盘只能属于一个磁盘组。磁盘组内可以包含多个磁盘文件(DISKFILE),每个文件会被平均分配到各个磁盘上,以实现I/O负载均衡,提高性能。当需要扩展存储时,可以动态添加或删除磁盘,ASM会自动进行数据重新分布,而这一过程对数据库实例是透明的。 ASM还提供了类似卷管理器的镜像功能,但其镜像是在ASMFile级别,而不是传统的卷级别,这为数据提供了额外的冗余和保护。ASM将磁盘划分为AU,每个AU通常为1MB大小。尽管数据库仍使用Extent作为逻辑存储单位,但在ASM环境中,Extent与AU的关系可能因冗余设置而变为1:2或1:3。数据库实例通过获取ASM实例提供的ExtentMap来定位数据,但实际的读写操作直接与磁盘交互,不再需要ASM的介入。 ASM实例的主要职责在于维护磁盘组,包括创建、删除磁盘组,以及添加、删除磁盘。而数据文件的生命周期管理则由数据库实例自己负责,这使得数据库能够更高效地利用存储资源,同时保持高可用性和性能。Oracle ASM的这些特性使得它成为大型企业级数据库部署的理想选择,简化了存储管理,提升了数据库的整体性能和可靠性。