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

2014-11-24 09:21:12 · 作者: · 浏览: 1
K3 CLOSED

6,创建ASM磁盘组,创建两个磁盘组.

a,创建一个由2块1000M的磁盘组成的磁盘组,采用2-way冗余

SQL> create diskgroup dg1
2 Normal Redundancy
3 failgroup DG1_0000 disk 'D:\oracle\asmdisk\disk1'
4 failgroup DG1_0001 disk 'D:\oracle\asmdisk\disk2';

b,--闪回用的磁盘组FLASH_DATA,由1块1000M的磁盘组成,采用外部冗余

SQL> create diskgroup dg2
2 External Redundancy
3 disk 'D:\oracle\asmdisk\disk3';

(这里我只用一个磁盘,正常也应该用多块)

还可以用DBCA创建

1,

\

2,这里我截的图因为是在做完之后的,在"select member disks"中没有可用的,没有做之前正常应该列出D:\oracle\asmdisk\disk1,disk2,disk3

选择disk1,disk2,group name为dg1,redundancy为normal创建一组.

选择disk3,group name为dg2,redundancy为external创建一组.

\

磁盘组创建完成查看状态:

SQL> select path,mount_status from v$asm_disk order by disk_number;
PATH MOUNT_S
------------------------------ -------
D:\ORACLE\ASMDISK\DISK1 CACHED
D:\ORACLE\ASMDISK\DISK3 CACHED
D:\ORACLE\ASMDISK\DISK2 CACHED

7,--重启ASM实例

SQL> shatdown immediate
SQL> startup
ASM instance started
Total System Global Area 83886080 bytes
Fixed Size 1295152 bytes
Variable Size 57425104 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
SQL>
刚才的"ORA-15110: no diskgroups mounted"错误信息也没了。
--生成SPFILE
SQL> create spfile from pfile;
File created.

8,--配置listener.ora和tnsnames.ora,这样就可以通过pl/sql developer这样的工具连接访问你的ASM实例了。

listener.ora的SID_LIST加上

(SID_DESC =
(GLOBAL_DBNAME = +asmdb)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = +asm)
)

在tnsnames.ora加上

ASM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = NBK-DAL-625040.ap.bt.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = +ASMDB)
)
)

这样toad,pl/sql developer等工具也可以通过tns访问asm 实例了.

--------------------------------------------------------------------------

第二部分,在ASM磁盘组上创建数据库

创建完ASM磁盘组后:用DBCA创建数据库:下面把与创建常规DB不同的地方列出来

1,选择自定义类型的数据库

\

2,SID 写成ASMDB,不创建EM,在选择存储类型的时候:

\

3,选择安装的磁盘组:

\

4,指定数据库文件的磁盘组 dg1

\

5,指定flash recovery的磁盘组:dg2

\

6,为了节约空间,不安装下面这些组件

\

7,将SGA size设为合适的值300M,PGA 40M, UNDO对应的文件100M,其他根据需要做适当调整.

然后finish.

\

创建完成后

C:\>set oracle_sid=asmdb

注意和开始的ASM的instance不一样
连接到DB的实例,C:\>sqlplus sys/sys as sysdba

启动数据库,SQL> startup

这后面的操作和普通的数据库就一样了.注意在启动数据库实例的时候,ASM的实例要先启动起来.

在创建过程中,碰到一个错误 ORA-06553: PLS-213: package STANDARD not accessible

解决方法:

1. SQL>ALTER PACKAGE STANDARD COMPILE;

2. SQL>ALTER PACKAGE DBMS_STANDARD COMPILE;

3,@ORACLE_BASE\ORACLE_HOME\rdbms\admin\utlrp.sql

第三步会费时较长,

可以 SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);查看,数字应该不断变小.

第三部分:ASMCMD.

asmcmd使用同样需要连接到ASM实例

1,设置ORACLE_HOME环境变量,注册表有的话也要设置

C:\>set oracle_home=D:\oracle\product\10.2.0\db_1

2,设置oralce_sid环境变量,如果注册表的oracle_sid不是asm实例的话

C:\>asmcmd
ORA-12560: TNS:protocol adapter error (DBD ERROR: OCIServerAttach)
C:\>set oracle_sid=+asm

3,操作asmcmd

C:\>asmcm
ASMCMD>

help查看帮助.提供的命令和unix命令

ASMCMD> pwd
+

ASMCMD> ls
DG1/
DG2/

ASMCMD> cd asmdb

ASMCMD> ls -l
Type Redund Striped Time Sys Name
Y CONTROLFILE/
Y DATAFILE/
Y ONLINELOG/
Y PARAMETERFILE/
Y TEMPFILE/