在windows中搭建虚拟ASM环境创建Oracle 10G数据库(一)

2014-11-24 09:21:12 · 作者: · 浏览: 0

本文分四部分,1,创建虚拟的ASM磁盘,2在虚拟的ASM磁盘上创建数据库,3,asmcmd工具,4为磁盘组增加磁盘

第一部分:创建虚拟的ASM磁盘:(本例中Oracle安装在D:\oracle\product\10.2.0)

1,利用Oracle提供的asmtool创建ASM虚拟磁盘,asmtool在D:\oracle\product\10.2.0\db_1\BIN目录下,

在CMD中执行:

asmtool -create D:\oracle\asmdisk\disk1 1024

asmtool -create D:\oracle\asmdisk\disk2 1024

asmtool -create D:\oracle\asmdisk\disk3 1024

2,配置CSS(Cluster Synchronization Services)
CSS主要用来同步ASM instance和它的client,也即database instance。可以由Oracle自带的localconfig命令来完成。Localconfig命令也位于D:\oracle\product\10.2.0\db_1\BIN目录下.
在CMD中执行
localconfig add

output:
Step 1: creating new OCR repository
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'zhangrp', privgrp ''..
Operation successful.
Step 2: creating new CSS service
successfully created local CSS service
successfully added CSS to home

配置完成后,在Windows Services中会出现类似如下一个entry

asm


--检查CSS守护进程的状态

D:oracle10g>crsctl check cssd
CSS appears healthy
D:oracle10g>

备注:如果后期要删除这个css服务,只需要在windows command下执行如下命令即可:

localconfig delete


3,在D:\oracle\product\10.2.0\admin下创建+asm文件夹,在其下创建bdump,cdump,udump三个文件夹.如下:

D:\oracle\product\10.2.0\admin\+asm\bdump

D:\oracle\product\10.2.0\admin\+asm\cump

D:\oracle\product\10.2.0\admin\+asm\udump

4,在D:\oracle\product\10.2.0\db_1\database\文件夹下创建文件: INIT+asm.ora

D:\oracle\product\10.2.0\db_1\database\INIT+asm.ora

文件内容如下:

*._asm_allow_only_raw_disks=FALSE
*.asm_diskstring='D:\oracle\asmdisk\*'
*.user_dump_dest='D:\oracle\product\10.2.0\admin\+asm\udump'
*.core_dump_dest='D:\oracle\product\10.2.0\admin\+asm\cdump'
*.background_dump_dest='D:\oracle\product\10.2.0\admin\+asm\bdump'
*.instance_type='ASM'
*.large_pool_size=12M
*.db_unique_name='+ASM'
*.asm_power_limit=1
*.remote_login_passwordfile='SHARED'

4,创建ASM虚拟磁盘实例的服务,

oradim -new -asmsid +asm -startmode auto -SRVCSTART system -pfile 'D:\oracle\product\10.2.0\db_1\database\init+asm.ora

成功后也会在Windows的服务中添加一个名为OracleASMService+asm的服务.

备注:如果后期要删除这个asm实例,只需要在windows command下执行如下命令即可:

oradim -delete -asmsid +asm

5,连接到ASM实例,如果是OS认证,

注意要设置ORACLE_SID=刚刚创建ASM实例
D:\>set oracle_sid=+asm

直接 sqlplus / as sysdba,如果不是的话改为OS认证或者创建一个pwd文件:

orapwd file=D:\oracle\product\10.2.0\db_1\database\PWD+asm.ora password=sys entries=5

重启OracleASMService+asm的服务,

D:\>sqlplus sys/sys as sysdba

Connected to an idle instance.
SQL> startup
ASM instance started

Total System Global Area 83886080 bytes
Fixed Size 1295152 bytes
Variable Size 57425104 bytes
ASM Cache 25165824 bytes
ORA-15110: no diskgroups mounted
SQL>

注意:这里有一个ORA-15110的错误信息,因为是首次启动asm实例,还没有创建diskgroup,所以显示15110错误是正常的,忽略掉该错误,继续后面的步骤。

查看instance的状态:

SQL> select host_name,instance_name,version,status from v$instance;
HOST_NAME INSTANCE_NAME VERSION STATUS
------------------------------ ---------------- ----------------- ------------
PC-625040 +asm 10.2.0.1.0 STARTED

(ASM实例只会处于STARTED状态不能像普通DB instance那样OPEN)

这时候可以查看识别出来的的磁盘:

SQL> col path format a30;
SQL> select path,mount_status from v$asm_disk order by disk_number;

PATH MOUNT_S
------------------------------ -------
D:\ORACLE\ASMDISK\DISK1 CLOSED
D:\ORACLE\ASMDISK\DISK2 CLOSED
D:\ORACLE\ASMDISK\DIS