Windows下虚拟ASM磁盘搭建基于ASM的Oracle 10g数据库系统 |
很多人对Oracle 10g推出的ASM技术感到畏惧,总觉得是一个black box,自己驾御不了,其实呢,ASM并不是黑匣子,只是大家还没有完全掌握她、了解她。本小结不对ASM技术本身做过多的介绍,假设你对ASM技术有了一定的了解(至少看过一些别人的案例或相关的技术白皮书什么的吧?),本文介绍一个在Windows XP环境下构建一个基于ASM的Oracle 10g(10.2.0.4)单机的数据库,从而给大家提供一个ASM的学习环境,从而尽快的了解ASM,让她变的不再陌生!
在Windows平台下,Oracle提供了一个工具叫asmtool(位于%ORACLE_HOME%bin目录下),通过asmtool可以构建虚拟ASM磁盘,从而让我们有了一个可以在虚拟ASM磁盘上建立学习环境的机会。 不过大家要注意,这种方法不是官方支持的的,所以千万不要用于生产系统,仅限于学习研究
第一步:创建ASM虚拟磁盘 在我这个个测试中,我总共创建4个diskgroup,下面创建的asm磁盘的单位是M asmtool -create d:asmdiskasmdisk1 500 asmtool -create d:asmdiskasmdisk8 100 asmtool -create d:asmdiskasmdisk10 100 -- TEST_DATA High Redundancy 具体的执行过程就略了。执行完了的结果就是: D:oracle10g>dir d:asmdisk 第二步:配置CSS(Cluster Synchronization Services) CSS主要用来同步ASM instance和它的client,也即database instance。可以由Oracle自带的localconfig命令来完成。Localconfig命令也位于ORACLE_HOMEbin目录下. %ORACLE_HOME%binlocalconfig add
配置完成后,在Windows Services中会出现类似如下一个entry
D:oracle10g>crsctl check cssd
备注:如果后期要删除这个css服务,只需要在windows command下执行如下命令即可: localconfig delete
第三步:准备ASM实例的参数文件 注意:ASM的实例名一定要以+开头的字符串,比如+ASM,否则后面通过dbca配置ASM实例或创建数据库的时候,DBCA无法识别到之前的asm实例。 参见Metalink Doc ID: 403644.1
先创建一个pfile文件,我的这个测试ASM实例的名字就叫+ASM,所以我需要在%ORACLE_HOME%database下创建一个INIT+asm.ORA的参数文件,内容如下: *._asm_allow_only_raw_disks=FALSE *.db_unique_name='+ASM' *.asm_power_limit=1 注意:此处"_asm_allow_only_raw_disks"为隐含参数,设为FALSE是为了允许ASM使用非裸设备,在这里是必须要设置为FALSE的。 第四步:创建ASM实例 D:oracle10g>oradim -new -asmsid +asm -startmode manual 备注:如果后期要删除这个asm实例,只需要在windows command下执行如下命令即可: oradim -delete -asmsid +asm 第五步:连接到ASM实例 D:oracle10g>set ORACLE_SID=+ASM 注意:这里有一个ORA-15110的错误信息,因为是首次启动asm实例,还没有创建diskgroup,所以显示15110错误是正常的,忽略掉该错误,继续后面的步骤。
SQL> select host_name,instance_name,version,status from v$instance; 第六步:创建磁盘组 按照我之前的规划,我这里需要创建4个磁盘组. --查看一下磁盘信息 可以看到,我之前创建的10块ASM虚拟磁盘mount 状态全是closed,因为他们还没有被加到任何的diskgroup中.下面开始创建我的diskgroup --系统用的磁盘组SYS_DATA,由3块500M的磁盘组成,采用外部冗余 SQL> create diskgroup sys_data 2 Normal Redundancy 2 High Redundancy --再看一下磁盘的状态 SQL> select path,mount_status from v$asm_disk order by disk_number;
这时的磁盘状态,MOUNT_STATUS变成"CACHED",表示磁盘已经成为磁盘组的一部分,并且正在被ASM Instance访问 SQL> select group_number,name,sector_size,block_size,allocation_unit_size,state,type,total_mb,free_mb from v$asm_diskgroup;
第七步:关闭ASM实例,修改pfile并转为spfile,创建密码文件 在这一步中,先关闭ASM实例,然后修改pfile,增加如下参数: asm_diskgroups='SYS_DATA', 'FLASH_DATA', 'USER_DATA', 'TEST_DATA' --关闭ASM实例 SQL> shutdown immediate; SQL> host more d:oracle10gdatabaseINITasm.ORA --创建密码文件 D:oracle10g>orapwd file=d:oracle10gdatabasePWDasm.ora password=admin entries=10
好了,刚才的"ORA-15110: no diskgroups mounted"错误信息也没了。 --生成SPFILE SQL> create spfile from pfile; --配置listener.ora和tnsnames.ora,这样就可以通过pl/sql developer这样的工具连接访问你的ASM实例了。参见我另外的文章:如何从远程连接ASM实例 |
SQL> select file_id,file_name,tablespace_name from dba_data_files;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- ------------------------------------- -----------------
4 +SYS_DATA/oratest/users01.dbf USERS
3 +SYS_DATA/oratest/sysaux01.dbf SYSAUX
2 +SYS_DATA/oratest/undotbs01.dbf UNDOTBS1
1 +SYS_DATA/oratest/system01.dbf SYSTEM
SQL> create tablespace study datafile '+USER_DATA/oratest/study.dbf' size 30M
2 extent management local segment space management auto;
Tablespace created
SQL> select file_id,file_name,tablespace_name from dba_data_files;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- ----------------------------------- -----------------
4 +SYS_DATA/oratest/users01.dbf USERS
3 +SYS_DATA/oratest/sysaux01.dbf SYSAUX
2 +SYS_DATA/oratest/undotbs01.dbf UNDOTBS1
1 +SYS_DATA/oratest/system01.dbf SYSTEM
5 +USER_DATA/oratest/study.dbf STUDY
SQL> select group_number,name,state,type,total_mb,free_mb from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB
------------ -------------- ----------- ------ ---------- ----------
1 FLASH_DATA MOUNTED EXTERN 400 346
2 SYS_DATA CONNECTED EXTERN 1500 466
3 TEST_DATA MOUNTED HIGH 300 147
4 USER_DATA CONNECTED NORMAL 200 32
SQL>
SQL> create user study identified by study default tablespace study quota unlimited on study;
User created
SQL> grant connect,resource,dba to study;
Grant succeeded
SQL> conn study/study@oratest
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.4.0
Connected as study
SQL>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24104518/viewspace-712763/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24104518/viewspace-712763/