myguangzhou
作者myguangzhou·2011-10-18 16:59
技术经理·Uniwise

ASM的体系结构-Form Oracle RAC指南

字数 1446阅读 2451评论 7赞 0

ASM的体系结构

自动存储管理是数据库内核的一部分。自动存储管理代码的一部分允许启动一个名为ASM 实例的特殊实例。ASM 实例不会装载数据库,而是管理元数据,在使ASM 文件可供普通数据库实例使用时需要使用此元数据。ASM 实例和数据库实例都可以访问一组名为磁盘组的公用磁盘。数据库实例可以直接访问ASM 文件的内容,并且仅为了获取有关这些文件的布局的信息而与ASM 实例进行通信。

ASM 实例包含三种新的后台进程类型。第一种类型负责协调磁盘组的重新平衡活动,称为RBAL。第二种类型实际上执行数据区移动。可以同时存在大量这样的进程,将称为ARB0ARB1 等,依此类推。第三种类型负责特定的磁盘组监视操作,这些操作用于维护磁盘组内部的ASM 元数据。将磁盘组监视进程称为GMON

每个使用ASM 的数据库实例都具有两个新的后台进程,分别称为ASMB RBAL。在数据库实例中,RBAL对磁盘组中的磁盘执行全局打开。ASMB 将在数据库实例中运行,并且会连接到ASM 实例中的前台进程。可以通过这些连接定期交换消息,以更新统计信息并验证两个实例都可以正常工作。在需要ASM 进行干预的操作(例如由数据库前台执行的文件创建)期间,数据库前台将直接连接到ASM 实例以执行该操作。

 

首次访问ASM 文件时,将动态启动ASMB 进程。

启动后,ASM 后台将连接到所需的ASM 实例,并将一直保持该连接,直至数据库实例在该ASM 实例所服务的磁盘组中不再具有任何打开的文件为止。数据库实例一次只能连接到一个ASM 实例,因此它们最多具有一个ASMB 后台进程。

RAC 类似,可以使用现有全局高速缓存服务(GCS) 基础结构对ASM 实例本身进行集群化。

通常,集群上的每个节点都有一个ASM 实例。与现有RAC 配置一样,ASM 会要求不管在哪个节点上,操作系统必须使磁盘对于所有ASM 实例都全局可见。

数据库实例只与同一节点上的ASM 实例进行通信。如果在同一节点上存在不同数据库的多个数据库实例,则它们必须共享该节点上的同一个ASM 实例。

磁盘组可以包含多个不同Oracle 数据库的文件。因此,即使是位于没有RAC 的单一系统上,为不同数据库提供服务的多个数据库实例也可以访问同一磁盘组。另外,一个Oracle数据库还可以在由同一ASM 实例所管理的多个磁盘组中存储自己的文件。

组服务用于注册数据库实例所需的连接信息,以查找ASM 实例。当ASM 实例装载磁盘组时,它将在组服务中注册该磁盘组和连接字符串。数据库实例知道磁盘组的名称,因而可以使用它来查找相应ASM 实例的连接信息。组服务是Oracle Clusterware 所提供的一项功能,该功能会自动安装在每个运行Oracle Database 10g 的节点上。

注:如果ASM 实例出现故障,则依赖于该ASM 实例的所有Oracle 数据库实例也会出现故障。请注意,文件系统故障通常会导致节点崩溃。在单一ASM 实例配置中,如果ASM实例在磁盘组打开以进行更新时出现故障,则在重新初始化ASM 实例之后,它将读取磁盘组的日志并恢复所有临时更改。对于共享磁盘组的多个ASM 实例而言,如果其中一个ASM 实例出现故障,则另一个ASM 实例将自动恢复由出现故障的实例所导致的临时ASM 元数据更改。

数据库实例故障不会对ASM 实例产生影响。

 

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论7 条评论

zhalibashizhalibashi软件开发工程师boya
2012-03-06 16:41
兄弟 我帮你顶
pengqiepengqie系统工程师银信长远科技
2011-12-27 13:33
学习了
威尼斯威尼斯学生学校
2011-12-07 09:51
yuanyiyuanyi软件开发工程师昆明市
2011-11-16 18:00
我要转载,好内容,最近就是在关注和区分asm和rac,很多概念不清楚啊
风影子风影子数据库管理员深圳
2011-11-14 17:19
学习下,很喜欢ASM,感觉也挺稳定的。
xiao8577034xiao8577034系统运维工程师重庆市公安局交通巡逻警察总队
2011-10-21 09:54
谢谢,好文章,正有用
aixclubaixclub网站运营经理TWT
2011-10-18 17:02
好文!
Ctrl+Enter 发表

作者其他文章

X社区推广