
Oracle ASM (Automatic Storage Management), 是Oracle 极力推推荐的一种面向Oracle存储的比较好用的解决方案, ASM 与RDBMS 其实很相似,ASM 也是由实例和文件组成, 也可以通过sqlplus 工具来维护。
ASM 实例的创建和删除也可以用DBCA 这个命令来操作。在dbca 的第一个界面选择配置自动存储管理就可以了。 ASM 实例需要CSS 进程, 如果是非RAC 环境, 在启动ASM 实例之前会提示用脚本
$ORACLE_HOME/bin/localconfig add 启动CSS。
1. ASM 实例由SGA 和后台进程组成。
1.1 SGA 组成:
Oracle ASM 实例的SGA包括Buffer Cache, Share Pool, Large Pool等。 需要注意的是Share Pool, 因为Extent Map 要放在这部分的内存中,需要更具数据量来估计Extent Map 的大小做相应的调整。
Extent Map 的大小可以根据所有文件大小的和来估算,使用下面的语句来计算所有文件和:
这3个sum 的总和对应着数据库存放ASM中所有文件大小总和, 对于使用External Redundancy 的磁盘组, 每100G 需要1MB 的Extent Map, 根据这个比例计算Extent Map 所需要的空间,在加上额外的2MB就可以了。 在实际工作中一般不需要考虑Oracle ASM SGA的配置, 使用Oracle 提供的缺省值就可以了。
1.2 后台进程
ASM 实例比RDBMS 实例多2个进程: RBAL 和 ABRn。
RBAL: 这个进程也叫Rebalancer进程, 负责规划ASM 磁盘组的Reblance活动。
ABRn:是RBAL进程的子进程,这个进程在数量上可以有多个, n从1~9, 这组进程负责真正完成Reblance活动。
使用ASM 作为存储的RDBMS 实例也会多出2个进程: RBAL 和 ASMB
RBAL: 这个进程的主要功能是打开每个磁盘的所有磁盘和数据的Rebalance。
ASMB: 这个进程作为ASM 实例和数据库实例之间的信息通道。 这个进程负责与ASM 实例的通信, 它先利用Diskgroup Name 从CSS 获得管理该Diskgroup 的ASM 实例的连接串, 然后建立到ASM 的持久连接, 两个实例之间通过这条连接定期交换信息,同时也是一种心跳机制。
RDBMS 实例要想使用ASM 作为存储, RDBMS 实例必须在启动时从ASM 实例获得Extent Map, 以后发生磁盘组的维护操作, ASM 实例还要把Extent Map的更新信息通知给RDBMS 实例, 这2个实例间的信息交换就是他你哦刚过ASMB 进程完成的。 这也就为什么: ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。
注意: ASM 实例和数据库实例的关系可以是1:1, 也可以是1:n。如果是1:n, 最好为ASM 安装单独的ASM_HOME。
2. ASM 配置
ASM 可以使用裸设备 或者Oracle ASMLib 方式, 因为裸设别的维护比较复杂,在此只讲解ASMLib 方式。
对应不同的操作系统, 需要不同的包,下载的时候一定要和操作系统内核一致。 我的操作系统是 Red hat 4 update 7. 内核版本是2.6.9-78.ELSMP。
【编辑推荐】
oracle数据库中有哪些字符集,字符集之间的子集和超集关系是怎么样的?
oracle数据库的字符集有很多的,具体的也不能一一详细地列举出来了,但是,建库的时候,会有选择字符集的界面,点开下拉条,将会列出oracle所支持的所有字符集(10/12)。 超集与子集是包含和被包含的关系,超集兼容子集。
to_date(sysdate, 'yyyy-MM-dd') oracle 数据存储过程获取系统时间是什么类型的?
Oracle是怎样进行存储管理的?
数据库管理员终于可以将自己从单调而常用的增加、移动和删除存储磁盘的任务中解脱出来了 — 并且无需增加额外的成本。 假设您刚得到一个新的 Oracle 数据库的全新的服务器和存储子系统。 除操作系统配置之外,在您能够创建数据库之前,最重要的工作是什么?很明显,就是创建存储系统布局 — 或更具体地说,选择一种保护级别,然后构建必需的冗余磁盘阵列 (RAID) 组。 在大多数数据库安装中安装存储器要花费大量的时间。 从多种可能中选择一种特定的磁盘配置需要仔细的规划和分析,并且最重要的是,需要详细了解存储技术、卷管理器和文件系统。 在这个阶段的设计任务可以大致说明如下(注意这个列表只是代表性的,任务将随配置而变化):● 确认存储器在操作系统级通过了认证,并确定冗余保护的级别,该级别可能已经提供(硬件 RAID)。 ● 集中和构建逻辑卷组,并确定分段或镜像是否也是必需的。 ● 在逻辑卷管理器创建的逻辑卷上构建文件系统。 ● 设定所有权和权限,以便 Oracle 进程可以对设备进行打开、读和写操作。 ● 在文件系统上创建数据库,如果可能的话务必在非 RAID 的位置上创建特殊文件,例如重做日志、临时表空间和重做表空间之类的特殊文件。 在大多数公司中,这些步骤大部分是由对存储系统非常了解的某些人来执行的。 这里的“某些人”通常不是数据库管理员。 不过,请注意所有这些任务 — 分段、镜像、逻辑文件系统构建 — 的执行都只支持一种类型的服务器,Oracle 数据库。 因此,Oracle 自己提供一些技巧来简化或改进这个过程不是很有意义吗?Oracle Database 10g 正是这么做的。 一个新的和激动人心的特性 — 自动存储管理 (ASM) — 使 DBA 能够完全在 Oracle 框架内执行上述的许多任务。 利用 ASM,您可以仅利用 Oracle Database 10g 软件自带的功能(无需额外的成本)来将一组磁盘转换成一个高可伸缩的(重点是在“可伸缩”上)和高性能的文件系统/卷管理器。 并且您不需要是一个磁盘、卷管理器或文件系统管理方面的专家。 在本文中,您将了解到关于 ASM 大量的基础知识,以开始在实际的应用程序中使用它。 正如您的猜测,这个强大的特性无疑将引发全面的讨论,篇幅所限,我们不能在此作过多介绍,如果您想了解更多的内容,在结论部分列出了一些极好的信息来源。
发表评论