Oracle 高可用性:自动存储管理(ASM)

日期: 2009-11-17 作者:Ian AbramsonMichael AbbeyMichael J Corey翻译:冯昀晖 来源:TechTarget中国 英文

正如在真正应用集群RAC环境中提到的那样,自动存储管理(ASM)对Oracle数据库文件既做文件管理,也做磁盘管理。现在,你可能认为这看起来像是更高级点的话题,可能对初学者指导来说太详细了。然而,自动存储管理是高可用数据库环境中的一个重要部分,而且对处理性能问题和管理Oracle文件也非常重要。即使我们使用应用程序和数据库这么多年了,仍然存在I/O争夺的问题,读写磁盘是数据库做的主要工作。

所以,数据库管理员最终必须对磁盘,镜像,硬盘分割方面的知识比他们想象的要理解更多。讨论不同的raid策略和优化I/O看起来像是中级话题,但是这些领域的一些工作甚至已经由自动存储管理代劳了,已经简化了Oracl……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

正如在真正应用集群RAC环境中提到的那样,自动存储管理(ASM)对Oracle数据库文件既做文件管理,也做磁盘管理。现在,你可能认为这看起来像是更高级点的话题,可能对初学者指导来说太详细了。然而,自动存储管理是高可用数据库环境中的一个重要部分,而且对处理性能问题和管理Oracle文件也非常重要。即使我们使用应用程序和数据库这么多年了,仍然存在I/O争夺的问题,读写磁盘是数据库做的主要工作。所以,数据库管理员最终必须对磁盘,镜像,硬盘分割方面的知识比他们想象的要理解更多。讨论不同的raid策略和优化I/O看起来像是中级话题,但是这些领域的一些工作甚至已经由自动存储管理代劳了,已经简化了Oracle磁盘和文件需要的管理工作。

  围绕自动存储管理,有几个更深入的讨论和主题,但是本章将只做一个一般性的介绍,介绍一些基本配置以及如何开始使用自动存储管理。

  在大型数据库中,一个数据库实例的数据文件数量可能会增长到超出控制;甚至在大型环境中的表空间也可能变得难以管理。那么,任何对表空间做磁盘迁移或者移动的操作就变成一项非常艰巨的任务,而且由于数据文件的数量太多,也留下了漏洞开放的区域。自动存储管理使用磁盘组管理这些文件,甚至在数据库处于打开运行状态时,磁盘被添加到磁盘组,自动存储管理实例可以被访问。

  设置自动存储管理实例

  在Oracle 11g中,自动存储管理实例现在可以被设置为集群,提供滚动补丁,一个自动存储管理实例管理一个真正应用集群节点或者一个单独Oracle服务器的文件。一个自动存储管理实例可以为每一个集群节点上的所有实例管理以下文件:控制文件,数据文件,临时文件,参数配置文件,重做日志,归档日志,RMAN备份,数据泵泵集和闪回日志。就像真正应用集群实例一样,自动存储管理实例在故障时会自动切换到集群中的其他节点,继续管理磁盘。

  真正应用集群RAC不是使用自动存储管理所必须的。实际上,自动存储管理可以被安装在一台单独的服务器上。然而每一台服务器都需要自动存储管理实例。在图8-4中,你可以看到两台独立的服务器,每台都有他们自己的自动存储管理实例。尽管每一台服务器都需要它自己的自动存储管理实例,一个自动存储管理实例可以管理那台服务器上一个以上数据库实例中的文件。该服务器上自动存储管理实例的每一个数据库都可以访问所有磁盘组,只要这些磁盘是通过创建分组已经分配的可用磁盘。

  图8-4:自动存储管理实例单一模式

  你可以在图8-5中看到,在真正应用集群环境中自动存储管理实例的不同之处在于:他们还是故障切换时可以使用的实例;这意味着为了管理故障切换,真正应用集群组件必须是可用的。一个自动存储管理实例仍然创建在每一个节点上,但是该实例管理跨所有节点的磁盘组和文件。

  图8-5:自动存储管理实例真正应用集群模式

  自动存储管理实例是一个小型的数据库实例,因为它基本上就是那样的内存结构,它提供了管理磁盘组的框架。磁盘组包含几块物理磁盘,可以支持不同的磁盘格式。该格式可以是裸设备分区,逻辑单元数LUNS(硬件磁盘冗余阵列RAID),逻辑卷管理LVM(冗余功能)或者网络文件系统NFS(可以在网络文件系统上负载均衡,而不依赖于操作系统对网络文件系统进行支持)。不管怎样,自动存储管理的优点是绕过一切操作系统缓冲,直接使用裸设备。

  自动存储管理实例可以在安装Oracle软件时创建,也可以使用数据库配置助手(DBCA)创建。实例名通常以“+ASM”开头,然后必须配置Oracle集群同步服务器(CSS)。该服务是随着“localconfig”脚本添加的,该脚本将添加自动存储管理功能所必需的OCR资产库。同时,会增加一个新角色“SYSASM”,该角色可以以管理员身份登录。操作系统的组OSASM也随之增加这个角色。

  下面是使用数据库配置助手(dbca)创建自动存储管理实例过程的截图。在进行数据库配置时,你可以选择创建一个常规数据库或者配置自动存储管理。如果你想使用自动存储管理创建数据库,需要首先创建自动存储管理实例。然而,你还可以迁移现有的数据库到自动存储管理中,还支持为该迁移创建该实例。不管是哪种方式,数据库配置助手dbca(见图8-6)都提供了创建自动存储管理实例的便捷方式。

  图8-6:使用数据库配置助手创建自动存储管理实例

  如果Oracle集群同步服务器还没有启动,会弹出提示信息告知“要配置自动存储管理,需要首先运行该服务器”。另一个窗口会打开启动该服务器;该命令被提供在弹出窗口中,如图8-7所示。

  现在自动存储实例可以被创建了,点击“确定”按钮,如图8-8所示,将会创建自动存储管理实例。现在你只需要配置参数,找到可用的磁盘和磁盘组。

  为使自动存储管理实例可以找到可用磁盘,需要使用一个初始化参数:ASM_ DISKSTRING。其他参数有:ASM_DISKGROUPS指定了哪个文件受自动存储管理器管理;ASM_POWER_LIMIT是磁盘全局平衡的默认值。INSTANCE_TYPE设置为表示该实例是一个自动存储管理实例,而不是一个数据库。

  参数:

  ASM_DISKGROUPS = CONTROLFILE, DATAFILE, LOGFILE

  ASM_DISKSTRING = /dev/rdsk/*

  ASM_POWER_LIMIT = 0 /* 0 to 11 0 disables and 11 to enable

  rebalancing more quickly */

  INSTANCE_TYPE = ASM

  图8-7:创建自动存储管理实例(集群同步服务器CSS)

  图8-8:创建自动存储管理实例(完成)

  磁盘组可以在实例创建期间生成。在实例创建以后,可以用SqlPlus启动自动存储管理。项目8-1安装了ASMLib。

  对于Linux系统,可以选择使用裸设备或者ASMLib为自动存储管理管理可用磁盘。ASMLib是一个工具,需要安装为Linux操作系统包。

  一步一步跟我学

  以root用户登录,安装完包、Linux软件和Oracle软件之后,ASMLib还需要下面的包:

  # rpm –Uvh oracleasm-support-2.0.1.-1.i386.rpm

  # rpm –Uvh oracleasmlib-2.0.1.-1.i386.rpm

  # rpm –Uvh oracleasm-2.6.9-34.ELsmp-2.0.1-1.i686.rpm

  验证包确实被安装:

  # rpm –q oracleasm*

  前面的步骤安装了ASMLib软件。现在,可以按照以下步骤进行配置:

  # /etc/init.d/oracleasm configure

  ASMLib软件安装以后,可用分区可以被用来创建自动存储管理磁盘:

  # /etc/init.d/oracleasm createdisk VOL1 /dev/disk1

  # /etc/init.d/oracleasm createdisk VOL2 /dev/disk2

  要在操作系统层面浏览刚刚创建的磁盘,使用如下命令:# /etc/init.d/oracleasm listdisks

  VOL1

  VOL2

  课题总结

  本课题带你学习了安装ASMLib工具所需包的步骤,同时演示了使用命令行工具可以完成的一些任务。拥有了配置好的ASMLib对于管理自动存储管理磁盘和文件非常有用。

相关推荐