这些天终于弄好了关于windows上的asm安装,当前还需要接下来布置环境的还有在linux上的rac dg设置
Asm的异步I/O性能和文件管理:
Asm是oracle 10g推出自动存储管理,oracle提供的一个统一管理存储管理接口,asm主要提供了在异步I/O的性能和文件系统的管理。
Asm是建立在裸设备上为oracle数据文件创建的‘特别文件系统’,这些文件系统全部由asm实例管理,oracle内核来管理和维护,跟os上维护管理不同,这些文件在os上是看不到的,全部由oracle内部管理维护。
asm可以为多个数据库提供磁盘组来存储文件,可以选择系统中划分好的裸设备来组成asm磁盘组,当然由于测试机只能利用oracle中的asmtool来构造虚拟asm磁盘组了。
在asm之前,裸设备是不能存储归档日志这类变化的文件的,asm下却是可以存储的,文件使用omf管理。
实例类型instance_type
在oracle10G中新增的一个实例类型,查看该参数instance_type,rdbms是数据库实例,asm
则是asm实例。
从数据库的启动的nomount mount和open知道,nomount首先我们需要的spfile或者pfile,先工作配置一个pfile吧
*.asm_diskgroups=’asmgroupgd1’
*.asm_diskstring='D:oracleproduct10.2.0+asm*'
*.background_dump_dest='D:oracleproduct10.2.0admin+asmbdump'
*.core_dump_dest='D:oracleproduct10.2.0admin+asmcdump'
*.instance_type='ASM'
*.db_unique_name=’+ASM’
*.remote_login_passwordfile='SHARED'
*.user_dump_dest='D:oracleproduct10.2.0admin+asmudump'
由于在windows下需要开启数据库服务历程到注册表中,linux等平台则不需要
Oradim –new –asmsid +asm
再创建一个sys的密码验证文件吧
Orapwd file=’d:oracleproduct10.2.0databasepwd+asm.ora’ password=oracle entries=2
这个asm实例已经创建完毕了可以启动了,其中asm类型的实例要以db_unique_name=’+asm’,不然后面的创建一个在asm上的库时很可能dbca找不到asm实例
Asm的实例的启动还需要一个css的服务了,css服务用来同步asm instance和database instance,不然oracle无法把两个实例链接起来啊。
命令行启动
Localconfig add
此时可以大胆的启动asm类型的实例了
Set oracle_sid=+asm
Sqlplus / as sysdba
Startup
此时asm也只能到nomount状态,asm实例启动了,分配sga和oracle的后台进程。
Ora-15110 no diskgroups mounted
完了此时还没有磁盘来加载了,和普通数据库mount状态需要controlfile,asm需要的是asm磁盘组。
此时可以利用oracle内部的asmtool功能来创建asm类型的虚拟磁盘,
C:Documents and SettingsAdministrator>asmtool -create d:asmasmdisk1 500C:Documents and SettingsAdministrator>asmtool -create d:asmasmdisk2 500C:Documents and SettingsAdministrator>asmtool -create d:asmasmdisk3 500C:Documents and SettingsAdministrator>asmtool -create d:asmasmdisk4 500
可以去目录下查看创建虚拟的asm磁盘了
Asm磁盘组时冗余选项:
high高度冗余oracle可以通过asm实现3路镜像,至少需要3个failure groups
normal正常冗余通过asm实现2路镜像,至少需要2个failure groups
external外部冗余通过asm之外的技术实现冗余oracle不做镜像处理(一般都是外部冗余,通过存储划分raid5 raid10)
在asm库内创建磁盘组吧
Create diskgroup asmgroupgd1
External redundancy
Disk ‘d:asmasmdisk1’,’ d:asmasmdisk2’,’ d:asmasmdisk3’,’ d:asmasmdisk4’
上述的asmgroupgd1是asm_diskgroups参数的值,disk则是asm_diskstring相关的。
查看select path,mount_status from v$asm_disk
各路径下的磁盘的状态是否cached成功。
Select group_number,name,state from v$asm_diskgroup
查看磁盘组的状态是否mounted成功
重启下asm实例吧
Shutdown immediate
Startup
然后可以创建rdbms的数据库并且配置自动存储管理(dbca即可轻松完成),注意asm库是在rdbms数据库启动之前启动,在rdbms关闭后才关闭.。(因为rdbms上的数据文件 控制文件 日志文件spfile等都存储在asm磁盘组中)
还算容易的在自己的windows上测试机上安装一个asm管理的,关于asm内部的东东在学习中慢慢更新吧
[@more@]