需要ASMLIB?
ASMLIB是Oracle基于Linux开发的ASM API,ASMLIB并不是使用在Linux下使用ASM的必须条件,ASMLIB只是为简化管理和配置磁盘提供的附件组件,为其他的存储厂商提供一个接口。据Oracle介绍ASMLIB主要提供两个功能特性:disk discovery和I/O efficient。作为我们使用来说更总要的提供磁盘访问路径的绑定功能,但是完全可以用其他的方式来替代。
虽然ASM可以与RDBMS数据库共享ORACLE_HOME,但是为了高可用性和可维护性考虑,分开ORACLE_HOME是有好处的,如果分开ORACLE_HOME,那么需要把RDBMS的用户纳入ASM实例的DBA用户组,但是无需把ASM的用户纳入RDBMS的DBA用户组;ASM版本可以与RDBMS不一致,但是建议相同于或者高于后者版本,否则会降低RDBMS版本可使用特性到ASM所在的版本,反之亦然;此外,在10G R1版本之前非RAC数据库无法与RAC数据库共享一个ASM,但是非RAC数据库之间可以共享一个ASM。
配置和使用DISKGROUP
根据需要配置至少2个磁盘组,一个存储数据和另外一个用作FRA(fast recovery area)。
为每个磁盘组配置使用的磁盘的时候,确保磁盘组内所有磁盘具有相同存储参数和特征,否则每个磁盘组的I/O速度性能取决于I/O最小的磁盘;虽然如此,但是在某些情形下违背该规则是可以接受的,比如将旧的磁盘全部更换掉,这个情况下在更换过程中将会同时存在新旧磁盘;在添加和删除磁盘操作的时候,一次操作同时完成添加删除操作比分开操作将会带来性能优势的好处,因为这将会在一次操作中完成,避免了无谓的磁盘重新平衡数据移动操作。
基于高端的存储,建议使用硬件的数据冗余保护,比如硬件RAID保护,当然如果没有采用硬件的RAID那么可以考虑使用ASM的镜像功能替代,或者基于系统的镜像保护功能;
合理分布ASM磁盘和OS、应用所在磁盘,最小化在此之间产生的I/O争用 ;
ASM不能存放trace文件、执行文件和非Oracle的文件。
SGA内存
和RDBMS实例一样,ASM实例也有相关的内存参数。
shared_pool-共享池,存放一些控制结构信息和extents map信息,建议设置128M db_cache_size-缓存区,建议设置64M
large_pool-主要用于大型操作,建议设置12M
PROCESS进程
该参数建议设置50+50*n,n为数据库客户端数量
在我的2G内存的Linux下上述参数默认如下:
sga_max_size 120M
pga_aggregate_target 24746393≈24M
shared_pool_size 84M
db_cache_size 24M
large_pool_size 8M
processes 40
由于ASM实例没有类似DB一样的数据字典,自然无法创建其他的管理用户,只能通过OS认证或者password file认证使用SYSDBA或SYSOPER权限进行操作。
SYSOPER权限比SYSDBA小,可以操作例如:STARTUP\SHUTDOWN、ALTER DISKGROUP MOUNT/DISMOUNT、ALTERE DISKGROUP ONLINE\OFFLINE DISK、ALTER DISKGROUP REBALANCE、ALTER DISKGROUP CHECK和访问V$ASM_*视图等操作,但是不能执行CREATE\DROP DISKGROUP、ADD\DROP\RESIZE DISK等操作。
ASM作为一个单独的实例运行,需要CSS服务的支持,CSS需要在ASM运行之前启动,CSS用于在ASM和数据库实例之间同步服务,CSS是CRS-Cluster Ready Services的一个组件,服务于单个ASM实例;在RAC环境中,还需要CRS服务进程。
CSS为集群管理和节点监控提供服务,监控ASM和共享存储(磁盘和磁盘组),在ASM实例启动的时候,透过CSS进行实例注册和磁盘组挂载操作,在RAC中还通过CSS在各个节点之间通信、同步。
如何配置CSS?
CSS For Linux&Unix平台
使用root用户登录,执行以下命令:
$ORACLE_HOME/bin/localconfigdelete
$ORACLE_HOME/bin/localconfigadd
系统会在/etc/inittab条目添加一条记录:
[root@gtser1~]# cat /etc/inittab | grep css
h1:35:respawn:/etc/init.d/init.cssdrun >/dev/null 2>&1 </dev/null
相应脚本为/etc/init.d/init.cssd,上述代码表示在状态3和5情况下运行,并在中断后重启。
CSS For Windowsx平台
同样DOS命令行窗口下执行该命令,将会在服务面板看到OracleCSService服务。
检查CSS进程
[oracle@gtser1~]$ crsctl check css
CSSappears healthy
-The End-