一、准备:
oracle版本:Oracle Database
10g Enterprise Edition Release 10.2.0.1.0
操作系统:Centos 5.8
二、首先安装oracle数据库软件,
然后向虚拟机中添加1块5G的硬盘,重启虚拟机
三、安装软件包
查看好系统版本,本机是
redhat 5,内核版本如下:
[root@linux129 dev]# uname -a
Linux linux129
2.6.18-194.el5#1 SMP Tue Mar 16 21:52:43 EDT 2010 i686 i686 i386 GNU/Linux
上oracle官方网站,搜索关键字oracle asm red hat 5。去下载如下asm的三个rpm软件包(本机器下载的是标红的三个软件包,安装包一定要下载正确的版本否则第五步会出错,导致后续配置无法进行):
http://www.oracle.com/technetwork/topics/linux/downloads/rhel5-084877.html
Intel IA32 (x86) Architecture
Library and Tools
Drivers for kernel 2.6.18-194.el5
四、安装上述的三个rpm软件包:
[root@linux129 asm]# rpm -ivh *.rpm
warning: oracleasm-2.6.18-194.11.3.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159
Preparing... ########################################### [100%]
1:oracleasm-support########################################### [ 33%]
2:oracleasm-2.6.18-194.el###################################### [ 67%]
3:oracleasmlib ########################################### [100%]
五、?分区
对在第二步中添加进来的磁盘/dev/sdb进行分区(注意:这里是仅进行分区,而不需要进行格式化。
[root@linux129 dev]# fdisk /dev/sdb
省略
查看并确认分区的情况:
[root@linux129 dev]# fdisk –l /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot????? Start? ???????End????? Blocks?? Id? System
/dev/sdb1?????????????? 1???????? 200???? 1606468+? 83? Linux
/dev/sdb2???????????? 201???????? 400???? 1606500?? 83? Linux
/dev/sdb3???????????? 401???????? 650???? 2008125?? 83? Linux
六、配置ASM
[root@linux129 asm]# /etc/init.d/oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface [ ]:oracle
Default group to own the driver interface [ ]:oinstall
Start Oracle ASM library driver on boot (y/n) [y]:
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver:??????????????????? [ OK ]
Scanning the system for Oracle ASMLib disks: ?????????????[ OK ]
Initializing the Oracle ASMLib driver:??????? 要是失败的话,查看日志/var/log/oracleasm
[root@linux129 oracle]# cat /var/log/oracleasm
Creating /dev/oracleasm mount point: /dev/oracleasm
Loading module "oracleasm": failed
Unable to load module "oracleasm"
提示找不到模块
手动查找模块
[root@linux129 oracle]#? find / -name oracleasm.ko
/lib/modules/2.6.18-308.24.1.el5/kernel/drivers/addon/oracleasm/oracleasm.ko
手动安装模块
[root@linux129 oracle]# insmod /lib/modules/2.6.18-308.24.1.el5/kernel/drivers/addon/oracleasm/oracleasm.ko
重新执行
[root@linux129 oracle]# /etc/init.d/oracleasm enable
七、系统添加磁盘:
[root@linux129 asm]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
Marking disk "VOL1" as an ASM disk:?????????????????????? [ OK ]
[root@linux129 asm]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdb2
Marking disk "VOL2" as an ASM disk:?????????????????????? [ OK ]
[root@linux129 asm]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdb3
Marking disk "VOL3" as an ASM disk:?????????????????????? [ OK ]
八、创建ASM初始化文件init+ASM.ora
在$ORACLE_HOME/dbs目录下(可以理解为是ASM实例的pfile文件):
[oracle@localhostdb_1]$ cat>>/oracle/ora10g/product/10.2.0/db_1/dbs/init+ASM.ora<<EOF
> *.asm_diskstring='ORCL:VOL*'
> *.background_dump_dest='/oracle/ora10g/admin/+ASM/bdump'
> *.core_dump_dest='/oracle/ora10g/admin/+ASM/cdump'
> *.instance_type='asm'
> *.large_pool_size=24M
> *.remote_login_passwordfile='SHARED'
> *.user_dump_dest='/oracle/ora10g/admin/+ASM/udump'
> EOF
注:/oracle/ora10g/product/10.2.0/db_1/是本机器的$ORACLE_HOME路径。
九、创建结构目录
[oracle@linux129 db_1]$ mkdir -p /oracle/ora10g/admin/+ASM/udump
[oracle@linux129 db_1]$ mkdir -p /oracle/ora10g/admin/+ASM/bdump
[oracle@linux129 db_1]$ mkdir -p /oracle/ora10g/admin/+ASM/cdump
十、创建asm实例的密码文件:
[oracle@localhost dbs]$ orapwd file=orapw+ASM password=123456
十一、我们来测试一个asm实例能否启动:
[oracle@linux129 ~]$ sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 31 20:10:11 2010
Copyright (c) 1982,
2005, Oracle. All rights reserved.
Enter user-name:sys as sysdba
Enter password:
Connected to an idle instance.
SQL> startup
ORA-29701: unable to connect to Cluster Manager
十二、添加CSS,以解决上面出现的问题。
需要以root来执行命令:
[root@localhost~]#/oracle/ora10g/product/10.2.0/db_1/bin/localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized
Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
localhost
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
十三、再次启动ASM实例,
由于我们没有创建磁盘组,所以提示没有mount diskgroup正常:
[root@linux129 ~]# su - oracle
[oracle@linux129 ~]$ echo $ORACLE_SID
+ASM
[oracle@linux129 ~]$ sqlplus
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 31 20:16:46 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter user-name: sys as sysdba
Enter password:
Connected to an idle instance.
SQL> startup
ASM instance started
Total System Global Area? 96468992 bytes
Fixed Size???????????????? 1217908 bytes
Variable Size???????????? 70085260 bytes
ASM Cache???????????????? 25165824 bytes
ORA-15110: no diskgroups mounted
十四、执行dbca,开始创建数据库
第一步的时候,选择新建数据:
第三步的时候,数据库实例的SID要和ASM中的asm_diskstring参数中的SID一致本例中是SID)
第六步时。指定存储项为ASM:
点击Next的时候,提示需要关闭asm实例:
SQL>SHUTDOWN IMMEDIATE;
第七步时,点击Create New创建新的Disk Group:
给新的磁盘组取名为DATA1,并把三块硬盘都加入到改组,冗余项选择normal:
经过上述操作后,一个磁盘组DATA1已经创建好,并且已经加载上:
指定数据文件创建的位置,默认创建在DATA1磁盘组下:
第九步,指定Flash Recovery Area的位置和大小,按照默认的即可:
第十步,选择安装样例数据库:
第十一步,字符集我们可以进行如下的选择:
第十二步,查看数据库存储相关信息:
第十三步,点击Finish来结束配置过程,进行数据库的创建
安装过程中的截图:
安装完成后的截图:
至此,单机上安装ASM已经完成。
十五、登入数据库,测试
1、登入ASM实例
我们现在可以登陆asm实例,查看下一些相关的视图:
[oracle@linux129 ~]$ echo $ORACLE_SID +ASM
[oracle@linux129 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 31 20:56:29 2010
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 oracleions
SQL> SELECT GROUP_NUMBER,INSTANCE_NAME,DB_NAME,STATUS
FROM v$asm_client;
GROUP_NUMBER? INSTANCE_NAME?? DB_NAME? STATUS
----------------------?? -------------------------- --------------- ------------------
1????????? ORCL?????? ORCL?????? CONNECTED
查看ASM中的数据文件:
SQL> set linesize 500
SQL> SELECT FILE_NUMBER,BLOCKS,BLOCK_SIZE/1024 BLOCK_KB,BYTES/1024/1024 AS MB,SPACE/1024/1024 AS MB,TYPE FROM v$asm_file;
FILE_NUMBER??? BLOCKS? BLOCK_KB??????? MB??????? MB TYPE
----------- ---------- ---------- ---------- ---------- ----------------------------------------------------------------
256???? 61441?? ??????8 480.007813?????? 965 DATAFILE
257???? 30721???????? 8 240.007813?????? 485 DATAFILE
258????? 4481???????? 8 35.0078125??????? 75 DATAFILE
259?????? 641???????? 8 5.0078125??????? 12 DATAFILE
260?????? 431??????? 16? 6.734375??????? 24 CONTROLFILE
261?????? 431??????? 16? 6.734375??????? 24 CONTROLFILE
262??? 102401??????? .5 50.0004883?????? 115 ONLINELOG
263??? 102401??????? .5 50.0004883?????? 115 ONLINELOG
264??? 102401??????? .5 50.0004883 ??????115 ONLINELOG
265??? 102401??????? .5 50.0004883?????? 115 ONLINELOG
266??? 102401??????? .5 50.0004883?????? 115 ONLINELOG
FILE_NUMBER??? BLOCKS? BLOCK_KB??????? MB??????? MB TYPE
----------- ---------- ---------- ---------- ---------- ----------------------------------------------------------------
267??? 102401??????? .5 50.0004883?????? 115 ONLINELOG
268????? 2561???????? 8 20.0078125??????? 42 TEMPFILE
269???? 12801???????? 8 100.007813?????? 205 DATAFILE
270???????? 5??????? .5 .002441406???????? 2 PARAMETERFILE
2、登陆ORCL实例
[oracle@linux129 ~]$ export ORACLE_SID=ORCL
[oracle@linux129 ~]$ sqlplus? / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 31 20:53:52 2010
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 oracleions
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
ORCL
查看表空间及其所对应的文件名。发现具体的路径不详,由ASM自动给我们的文件命名进行
管理:
SQL> select FILE_NAME ,TABLESPACE_NAME from dba_data_files;
FILE_NAME???????????????????????????????????????? TABLESPACE_NAME
-------------------------------------------------- --------------------------------------------------
+DATA1/orcl/datafile/users.259.728512919????????? USERS
+DATA1/orcl/datafile/sysaux.257.728512919???????? SYSAUX
+DATA1/orcl/datafile/undotbs1.258.728512919?????? UNDOTBS1
+DATA1/orcl/datafile/system.256.728512919????? ???SYSTEM
+DATA1/orcl/datafile/example.269.728513077??????? EXAMPLE
3、用命令行添加新硬盘
1、以root命令来运行oracleasm命令
[root@linux129 dev]# /etc/init.d/oracleasm createdisk VOL4 /dev/sde1
Marking disk "VOL4" as an ASM disk: [ OK ]
2、登陆至ASM实例中,输入如下命令,需要有add failgroup子句:
SQL> alter diskgroup DATA1add failgroupVOL4 disk 'ORCL:VOL4';
可以看到,添加好了VOL4之后,会进行“重平衡”,每个磁盘的使用容量是相同的:
SQL> SELECT GROUP_NUMBER,DISK_NUMBER,NAME,TOTAL_MB,FREE_MB
2 FROM v$asm_disk;
GROUP_NUMBER????? DISK_NUMBER?? NAME????? TOTAL_MB?? FREE_MB
----------------------????? -------------------????? ---------???? ----------------??? ----------
1????????? 0????????? VOL1???????? 2047????? 1377
1????????? 1????????? VOL2???????? 2047????? 1376
1????????? 2????????? VOL3???????? 2047????? 1376
1????????? 3????????? VOL4 ????????2047????? 1377
Asm工具初体验
[oracle@linux129 dbs]$ asmcmd
asmcmd: command disallowed by current instance type
[oracle@linux129 dbs]$ export ORACLE_SID=+ASM
[oracle@linux129 dbs]$ asmcmd
ASMCMD> ls -l +DATA1/ORCL/DATAFILE
[oracle@linux129 ~]$ asmcmd
ASMCMD>
ASMCMD> ls -l +DATA1/ORCL/DATAFILE
Type???? Redund Striped Time??????????? Sys Name
DATAFILE MIRROR COARSE? SEP 01 13:00:00 Y?? EXAMPLE.269.728513077
DATAFILE MIRROR COARSE? SEP 01 14:00:00 Y?? SYSAUX.257.728512919
DATAFILE MIRROR COARSE? SEP 01 13:00:00 Y?? SYSTEM.256.728512919
DATAFILE MIRROR COARSE? SEP 01 13:00:00 Y?? UNDOTBS1.258.728512919
DATAFILE MIRROR COARSE? SEP 01 13:00:00 Y?? USERS.259.728512919
ASMCMD> help
asmcmd [-p] [command]
The environment variables ORACLE_HOME and ORACLE_SID determine the
instance to which the program connects, and ASMCMD establishes a
bequeath connection to it, in the same manner as a SQLPLUS / AS
SYSDBA. The user must be a member of the SYSDBA group.
Specifying the -p oracleion allows the current directory to be displayed
in the command prompt, like so:
ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >
[command] specifies one of the following commands, along with its
parameters.
Type "help [command]" to get help on a specific ASMCMD command.
commands:
-------
cd
du
find
help
ls
lsct
lsdg
mkalias
mkdir
pwd
rm
rmalias
ASMCMD>