Oracle ASM详解:存储解决方案与关键组件

需积分: 9 2 下载量 91 浏览量 更新于2024-07-29 收藏 84KB DOC 举报
Oracle ASM(Automatic Storage Management)是Oracle数据库提供的一种高级存储管理解决方案,它旨在优化存储资源的利用和性能。ASM是一种与Oracle RDBMS(关系数据库管理系统)类似的架构,主要由实例(Instance)和文件组成,可以借助SQL*Plus工具进行日常管理和维护。实例的创建和删除可以通过Oracle Database Configuration Assistant (DBCA) 来轻松操作,只需在配置阶段选择启用自动存储管理。 在创建ASM实例时,如果处于非RAC环境,通常会在启动前执行脚本$ORACLE_HOME/bin/localconfigadd以启动Controlled Structure Service (CSS) 进程。CSS对ASM实例的运行至关重要,它负责管理存储资源。 ASM实例的后台组件包括System Global Area (SGA),其中包括Buffer Cache、Share Pool以及Large Pool等。Share Pool特别值得注意,因为它包含Extent Map,这是ASM用于跟踪数据块位置的数据结构。为了合理设置Extent Map的大小,需要根据数据库中所有数据文件(如数据文件、联机重做日志文件和临时文件)的总大小来估算。可以使用SQL查询来计算这些文件的总容量,如: 1. 对于数据文件: - Select sum(bytes)/(1024*1024*1024) from v$datafile; 2. 对于联机重做日志文件(如果有多个组): - Select sum(bytes)/(1024*1024*1024) from v$logfilea, v$logb where a.Group# = b.Group#; 3. 对于临时文件: - Select sum(bytes)/(1024*1024*1024) from v$tempfile where status = 'online'; 这些总和代表了数据库在ASM中的所有文件占用空间。对于使用外部冗余的磁盘组,每100GB需要1MB的Extent Map空间,因此可以根据计算结果决定所需的空间,并预留额外的2MB作为冗余。 在实际工作中,除非遇到特定性能瓶颈或需求,一般无需过多调整ASM SGA配置,因为Oracle提供了默认值。不过,理解这些配置原理有助于在必要时进行优化。 除了SGA,ASM实例还额外拥有两个后台进程:Rebalance Manager (RBAL) 和 Active Background Process (ABRn,n取值1到9)。RBAL负责规划磁盘组的重新平衡活动,而ABRn则是RBAL的子进程,执行具体的平衡操作。对于使用ASM作为存储的RDBMS实例,还会额外有两个进程:RBAL(与ASM相同)和ASM Buffer Rebalance,它们分别处理磁盘和数据的重新分配任务。 Oracle ASM是一个复杂的存储管理系统,其管理方式、配置细节和后台进程的运作对于确保数据库高效、稳定地运行至关重要。理解并掌握这些知识将有助于数据库管理员更有效地管理Oracle数据库的存储资源。