Windows 平台下,使用OS files 代替raw devices,步骤如下:
1) If the ASM instance was not created, then create an ASM instance thru the DBCA .
2) Update the initialization parameter file with the next hidden parameter:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining options
INSTANCE_NAME
----------------
+asm
SQL> alter system set "_asm_allow_only_raw_disks"=false scope=spfile;
System altered.
3) If you have real raw devices you will see them after create the ASM instance:
SQL> select path from v$asm_disk;
PATH
--------------------------------------------------------------------------------
//./ORCLDISKDG0
//./ORCLDISKDG1
//./ORCLDISKDATA0
//./ORCLDISKDATA1
//./ORCLDISKDATA2
//./ORCLDISKDATA3
//./ORCLDISKFRA0
//./ORCLDISKFRA1
8 rows selected.
4) Create the new directory to allocate the fake files/disks:
SQL> host mkdir d:/asmfake
5) Update the ASM instance with the new path associated with the fake directory:
SQL> alter system set asm_diskstring='//./ORCLDISK*','d:/asmfake/*' scope=both;
System altered.
6) Shutdown and startup the ASM instance to apply the changes:
SQL> shutdown
ASM diskgroups dismounted
ASM instance shutdown
SQL> startup
ASM instance started
Total System Global Area 83886080 bytes
Fixed Size 1289028 bytes
Variable Size 57431228 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
SQL> show parameter asm
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
_asm_allow_only_raw_disks boolean FALSE
asm_diskgroups string DATADG, FRADG
asm_diskstring string //./ORCLDISK*, d:/asmfake/*
asm_power_limit integer 1
7) In order to create fake files to be used as ASM disks you will need to create them thru the dd command, therefore please install the dd command for windows, you can download it from:
http://www.chrysocome.net/dd
8) Then create the desired fake disks/files on the fake directory:
SQL> host dd if=/dev/zero of=d:/asmfake/fakeasm1 bs=1k count=1000000
1000000+0 records in
1000000+0 records out
SQL> host dd if=/dev/zero of=d:/asmfake/fakeasm2 bs=1k count=1000000
1000000+0 records in
1000000+0 records out
SQL> host dd if=/dev/zero of=d:/asmfake/fakeasm3 bs=1k count=1000000
1000000+0 records in
1000000+0 records out
SQL> host dd if=/dev/zero of=d:/asmfake/fakeasm4 bs=1k count=1000000
1000000+0 records in
1000000+0 records out
SQL> host dir d:/asmfake/*
Volume in drive D is New Volume
Volume Serial Number is 94B6-1FC7
Directory of d:/asmfake
06/11/2008 03:00 PM <DIR> .
06/11/2008 03:00 PM <DIR> ..
06/11/2008 02:58 PM 1,024,000,000 fakeasm1
06/11/2008 02:59 PM 1,024,000,000 fakeasm2
06/11/2008 03:00 PM 1,024,000,000 fakeasm3
06/11/2008 03:01 PM 1,024,000,000 fakeasm4
4 File(s) 4,096,000,000 bytes
2 Dir(s) 19,148,734,464 bytes free
9) Connect to the ASM instance and make sure the fake disks are visible:
SQL> select path from v$asm_disk;
PATH
----------------------------------------------------------
D:/ASMFAKE/FAKEASM1
D:/ASMFAKE/FAKEASM2
D:/ASMFAKE/FAKEASM3
D:/ASMFAKE/FAKEASM4
//./ORCLDISKDG0
//./ORCLDISKDG1
//./ORCLDISKDATA0
//./ORCLDISKDATA1
//./ORCLDISKDATA2
//./ORCLDISKDATA3
//./ORCLDISKFRA0
//./ORCLDISKFRA1
12 rows selected.
10) Then create diskgroup(s) using the fake disks:
SQL> create diskgroup TEST external redundancy disk 'D:/ASMFAKE/FAKEASM1',
2 'D:/ASMFAKE/FAKEASM2',
3 'D:/ASMFAKE/FAKEASM3',
4 'D:/ASMFAKE/FAKEASM4';
Diskgroup created.
SQL> select name, state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATADG MOUNTED
FRADG MOUNTED
TEST MOUNTED
SQL> select name, path from v$asm_disk where group_number =3;
NAME PATH
------------------------------ ----------------------------------
TEST_0000 D:/ASMFAKE/FAKEASM1
TEST_0001 D:/ASMFAKE/FAKEASM2
TEST_0002 D:/ASMFAKE/FAKEASM3
TEST_0003 D:/ASMFAKE/FAKEASM4
11) Now your new diskgroup was created using OS files.
From Oracle
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Email: [email protected]
DBA1 群:62697716(满); DBA2 群:62697977(满) DBA3 群:62697850(满)
DBA 超级群:63306533(满); DBA4 群: 83829929 DBA5群: 142216823
聊天 群:40132017 聊天2群:69087192
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请