感觉windows下创建ASM存储数据库资料不多,抽时间整理了一下,供参考!
环境windows2k3 oracle10gR1
1、磁盘准备:
硬盘 类型 总大小 可用空间
本地磁盘 (C:) 本地磁盘 9.99GB 7.75GB
本地磁盘 (D:) 本地磁盘 9.99GB 9.99GB
本地磁盘 (E:)
本地磁盘 (F:)
本地磁盘 (G:)
本地磁盘 (H:)
本地磁盘 (I:)
本地磁盘 (J:)
2、安装oracle10g software only:
3、标记ASM存储驱动器:
/**一些参考资料
To avoid failures of this type, you could use two SCSI controllers, each with two disks, and define a failure group
for the disks attached to each controller. This configuration would enable the disk group to tolerate the failure of
one SCSI controller.
If you are sure that a suitable disk group does not exist on the system, install or identify appropriate disk devices
to add to a new disk group. Use the following guidelines when identifying appropriate disk devices:
All of the devices in an ASM disk group should be the same size and have the same performance characteristics.
Do not specify more than one partition on a single physical disk as a disk group device. Automatic Storage Management
expects each disk group device to be on a separate physical disk.
Although you can specify a logical volume as a device in an Automatic Storage Management disk group, Oracle does not
recommend their use. Logical volume managers can hide the physical disk architecture, preventing Automatic Storage
Management from optimizing I/O across the physical devices.
The asmtoolg(GUI version) and asmtool utilities only work on partitioned disks—you cannot use Automatic Storage
Management on unpartitioned disks.
**/
C:\Documents and Settings\Administrator>asmtool -list
\Device\Harddisk0\Partition1 10236M
\Device\Harddisk0\Partition2 10236M
\Device\Harddisk0\Partition3 4102M
\Device\Harddisk0\Partition4 4102M
\Device\Harddisk0\Partition5 4102M
\Device\Harddisk0\Partition6 4102M
\Device\Harddisk0\Partition7 4102M
\Device\Harddisk0\Partition8 4102M
description:
其中前2块盘为ntfs格式的C盘和D盘,后边6块盘为分配驱动器号的没有格式化的磁盘。
Use the following steps for asmtoolg:
1. Double-click asmtoolg.
2. Select the “Add or change label” option, then click “Next”. asmtoolg will show the devices available
on the system. Label types include:
a. "Candidate device"- unrecognized disks
b. "Oracle raw device file" – raw device files
c. "Stamped ASM disk"
d. "Unstamped ASM disks."
e. Windows file systems (such as NTFS). Windows file systems and Microsoft Dynamic disks cannot be used for ASM.
3. On the “Stamp Disks” screen, select the disks to stamp. For ease of use, ASM can generate unique stamps for all
of the devices selected for a given prefix. Forexample, if the prefix is DATA, the first ASM link name would be
ORCLDISKDATA0.
4. Optionally, select a disk to edit the individual stamp (ASM link name).
5. Click “Next”.
6. Click “Finish”.
You may use the following steps for asmtool:
asmtool -add \Device\Harddisk0\Partition3 ORCLDISKASM0 \Device\Harddisk0\Partition4 ORCLDISKASM1 \Device\Harddisk0\Partition5 ORCLDISKASM2 \Device\Harddisk0\Partition6 ORCLDISKASM3
4、准备init参数文件
一点说明:
instance_type是用于区分数据库实例与ASM实例的一个新参数。asm_diskstring参数指定ASM实例到哪去找它可以使用的驱动器。
\\.\*: 是统一命名约定(Universal Naming Convention,UNC)中的一种符号,通常用于网络。圆点表示本地节点,因此\\.
表示运行ASM的服务器。星号后紧跟一个冒号(*:) 匹配驱动器名,格式是E:、F:等等。你可以指定多个位置。例如,我本可以
使用asm_diskstring='\\.\E:','\\.\F:',...,但使用通配符更简单。
D:\oracle\product\10.1.0\db_1\database\initOrcl.ora内容如下:
大多数参数都不用于ASM实例,因此该文件可以非常短。如果对缓冲区、共享池及其它SGA存储结构的容量大小采用默认值,那就太省事了。
instance_type=asm
background_dump_dest=d:\oracle\product\10.1.0\admin\orcl\bdump
core_dump_dest=d:\oracle\product\10.1.0\admin\orcl\cdump
user_dump_dest=d:\oracle\product\10.1.0\admin\orcl\udump
compatible=10.1.0.2.0
asm_diskstring='\\.\*:'
5、创建工作路径:
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\BDUMP
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\CDUMP
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\CREATE
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\PFILE
MKDIR D:\ORACLE\PRODUCT\10.1.0\ADMIN\ORCL\UDUMP
以下可以借助dbca工具来完成或者按照下边的方法脚本建库:
6、创建ASM实例asm和ASM磁盘组:
ORADIM -NEW -ASMSID asm -SYSPWD system
C:\Documents and Settings\Administrator>SET ORACLE_SID=asm
C:\Documents and Settings\Administrator>SQLPLUS /NOLOG
SQL*Plus: Release 10.1.0.2.0 - Production on 星期二 10月 17 17:32:43 2006
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> CONNECT /AS SYSDBA
已连接到空闲例程。
SQL> STARTUP PFILE='D:\ORACLE\PRODUCT\10.1.0\DB_1\DATABASE\INITORCL.ORA';
OSM 例程已启动
Total System Global Area 100663296 bytes
Fixed Size 787648 bytes
Variable Size 99875648 bytes
Database Buffers 0 bytes
Redo Buffers 0 bytes
ORA-15110: ??????
SQL> CREATE SPFILE FROM PFILE='D:\ORACLE\PRODUCT\10.1.0\DB_1\DATABASE\INITORCL.ORA';
文件已创建。
SQL> SHUTDOWN
ORA-15100: ??????????
OSM 例程已关闭
SQL> startup
OSM 例程已启动
Total System Global Area 100663296 bytes
Fixed Size 787648 bytes
Variable Size 99875648 bytes
Database Buffers 0 bytes
Redo Buffers 0 bytes
ORA-15110: ??????
SQL> SELECT DISK_NUMBER, PATH FROM V$ASM_DISK;
0 \\.\D:
1 \\.\E:
2 \\.\F:
3 \\.\G:
4 \\.\H:
5 \\.\I:
6 \\.\J:
7 \\.\C:
已选择8行。
SQL> CREATE DISKGROUP MYDISKGROUP NORMAL REDUNDANCY
FAILGROUP MyDiskGroup01 DISK '\\.\E:','\\.\F:'
FAILGROUP MyDiskGroup02 DISK '\\.\G:','\\.\H:';
Diskgroup created.
SQL> SELECT NAME,STATE,TOTAL_MB FROM V$ASM_DISKGROUP;
NAME STATE TOTAL_MB
-------------------- ---------------------- ----------
MYDISKGROUP MOUNTED 16408
SQL> SELECT FAILGROUP,NAME,TOTAL_MB FROM V$ASM_DISK;
FAILGROUP NAME TOTAL_MB
-------------------- -------------------- ----------
5122
4102
4102
10236
MYDISKGROUP01 MYDISKGROUP_0000 4102
MYDISKGROUP01 MYDISKGROUP_0001 4102
MYDISKGROUP02 MYDISKGROUP_0002 4102
MYDISKGROUP02 MYDISKGROUP_0003 4102
可以通过以下命令来维护ASM磁盘组:如果是oracle10gR2有个新工具ASMCMD管理ASM磁盘组很好用:)
ALTER DISKGROUP MYDISKGROUP
ADD FAILGROUP MYDISKGROUP01 DISK '\\.\I:'
FAILGROUP MYDISKGROUP01 DISK '\\.\J:';
ALTER DISKGROUP MYDISKGROUP
DROP DISK MYDISKGROUP_0001, MYDISKGROUP_0003;
ASM磁盘组创建好后,现有的数据库实例也可以使用它了(可以把现有数据库的表空间建立在ASM磁盘组)。
例如:
CREATE TABLESPACE MYASMTBS DATAFILE '+MYDISKGROUP/CSLYN/DATAFILES/OTHER_TBS.DBF' SIZE 100M;
7、创建新数据库:
DBCA选择ASM存储......
SQL> SELECT NAME,TOTAL_MB,TOTAL_MB - FREE_MB AS USE_MB FROM V$ASM_DISK;
由于数据冗余,ASM磁盘组的使用将是我们数据文件OTHER_TBS大小的2倍。
注意4、5、6是创建磁盘组的方法;7是用dbca创建新实例的方法。
8、关于故障恢复:
从磁盘故障中恢复再简单不过了。驱动器发生故障时,ASM自动从盘组中删除它,重新构建驱动器发生故障时丢失的所有镜像文件,
并重新平衡数据。只要磁盘组中保留了足够的自由空间用于重新构建从已丢失驱动器的数据的镜像,数据库实例就将不仅能继续运行
而且会更安全地运行,因为对所有数据都仍能构建镜像。唯一需要花时间的是ASM要重新对所丢失的数据构建镜像。你不必让自己承担
太大压力就能在一个新驱动器中换入数据。但是,如果没有足够的自由空间来恢复丢失的数据,ASM将不能重新构建镜像文件,因而
数据库将停止运行,就像用完存档日志空间时数据库会停止运行一样。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/756652/viewspace-242259/ ,如需转载,请注明出处,否则将追究法律责任。