ASM (Automatic Storage Management) 是Oracle 10g的一个重要新特性,在实现数据库I/O自动负载平衡,数据文件镜像等方面起着重要的作用。即使是单节点的数据库,Oracle也推荐使用ASM。但一般文档上提到ASM时,都需要有磁盘组或者多块磁盘才能实现,这使得很多人无法建立学习和实践的环境。下面的实验将带领你在windows xp的操作系统中建立ASM环境,并将已有的数据库转移到ASM中,同时该实验 1. 不需要磁盘组或者多块磁盘 2. 不需要在Windows xp中安装虚拟机,Linux等复杂的步骤 ===================== 一、建立ASM Instance ===================== 1. 建立模拟磁盘 建立ASM Instance,首先要在一个磁盘上模拟出多块磁盘。Oracle的asmtool可以实现这个功能。Asmtool是Oracle 10g for Windows的一个自带工具,位于ORACLE_HOME\bin目录下。 C:\>md C:\asmdisks C:\>cd asmdisks C:\asmdisks>asmtool -create C:\asmdisks\disk1 1000; C:\asmdisks>asmtool -create C:\asmdisks\disk2 1000; C:\asmdisks>asmtool -create C:\asmdisks\disk3 1000; C:\asmdisks>asmtool -create C:\asmdisks\disk4 1000; C:\asmdisks>asmtool -create C:\asmdisks\disk5 1000; C:\asmdisks>dir Volume in drive C is OS Volume Serial Number is FCC6-4EA2 Directory of C:\asmdisks 01/03/2007 09:28 AM 这样我们就在C:\asmdisks目录中生成了5个文件,每个大小为1G。ASM instance会把它们当成5块1G的硬盘。 2. 配置CSS(Cluster Synchronization Services) CSS主要用来同步ASM instance和它的client,也即database instance。这一步就算不是在cluster环境中也是必须的,可以由Oracle自带的localconfig命令来完成。Localconfig命令也位于ORACLE_HOME\bin目录下。 C:\oracle\product\10.2.0\db_1\BIN>localconfig add Step 1: creating new OCR repository Successfully accumulated necessary OCR keys. Creating OCR keys for user 'corp\e468447', privgrp ''.. Operation successful. Step 2: creating new CSS service successfully created local CSS service successfully added CSS to home 检查CSS daemon状态: C:\asmdisks>crsctl check cssd CSS appears healthy “CSS appears healthy”表明该进程正在运行。 3. 创建ASM Instance的initial文件 ASM Instance有自己的初始参数文件,可以为spfile或者文本文件。通过在文件名中嵌入SID,来区分ASM Instance和Database Instance。单节点的环境中,ASM SID默认为+ASM, RAC中各节点上的SID默认为+ASMnode#。 打开记事本编辑初始参数文件。 C:\oracle\product\10.2.0\db_1\database>notepad init+ASM.ora INSTANCE_TYPE=ASM #必须设置的参数,而且值只能为ASM DB_UNIQUE_NAME=+ASM LARGE_POOL_SIZE=8M #给ASM的internal packages使用,至少8M ASM_DISKSTRING='C:\asmdisks\*' #告诉ASM Instance物理磁盘位置 _ASM_ALLOW_ONLY_RAW_DISKS=FALSE #Oracle隐藏参数,允许ASM使用非裸设备。 C:\oracle\product\10.2.0\db_1\database>dir Volume in drive C is OS Volume Serial Number is FCC6-4EA2 Directory of C:\oracle\product\10.2.0\db_1\database 12/28/2006 09:48 AM 4. 用oradim创建Oracle ASM实例。 C:\oracle\product\10.2.0\db_1\database>oradim -NEW -ASMSID +ASM -STARTMODE auto 实例已创建。 其中 -NEW: indicates that you are creating a new instance. This is a mandatory parameter -ASMSID SID: is the name of the Automatic Storage Management (ASM) instance to create STARTMODE: indicates whether to start the instance when the Oracle Database service is started. Default is manual 5. 连接到ASM Instance。 C:\oracle\product\10.2.0\db_1\database>set ORACLE_SID=+ASM C:\oracle\product\10.2.0\db_1\database>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 12月 28 10:04:21 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> show user USER 为 "SYS" SQL> select status from v$instance; STATUS ------------------------ STARTED 6. 创建磁盘组 SQL> set pages 3000 SQL> set lines 132 SQL> column path format a50 SQL> select path,mount_status from v$asm_disk; PATH MOUNT_STATUS -------------------------------------------------- -------------- C:\ASMDISKS\DISK1 CLOSED C:\ASMDISKS\DISK2 CLOSED C:\ASMDISKS\DISK5 CLOSED C:\ASMDISKS\DISK4 CLOSED C:\ASMDISKS\DISK3 CLOSED 注意MOUNT_STATUS为"CLOSED",因为磁盘组还没创建。 SQL> create diskgroup dgroup1 normal redundancy disk 2 'C:\asmdisks\disk1', 3 'C:\asmdisks\disk2', 4 'C:\asmdisks\disk3', 5 'C:\asmdisks\disk4', 6 'C:\asmdisks\disk5'; 磁盘组已创建。 再检查磁盘状态,MOUNT_STATUS变成"CACHED",表示磁盘已经成为磁盘组的一部分,并且正在被ASM Instance访问。 SQL> select path,mount_status from v$asm_disk; PATH MOUNT_STATUS -------------------------------------------------- -------------- C:\ASMDISKS\DISK1 CACHED C:\ASMDISKS\DISK2 CACHED C:\ASMDISKS\DISK3 CACHED C:\ASMDISKS\DISK4 CACHED C:\ASMDISKS\DISK5 CACHED 关闭ASM Instance, SQL> shutdown immediate; ASM 磁盘组已卸装 ASM 实例已关闭 在init+ASM.ora中加入参数 ASM_DISKGROUPS='DGROUP1',并创建spfile。 SQL> create spfile from pfile='C:\oracle\product\10.2.0\db_1\database\init+asm.ora'; 文件已创建。 启动ASM Instance。 SQL> startup ASM 实例已启动 Total System Global Area 79691776 bytes Fixed Size 1247396 bytes Variable Size 53278556 bytes ASM Cache 25165824 bytes ASM 磁盘组已装载 |