资源描述
ASM的安装
陈玉松
一、 asm相关内核驱动
下载相关内核版本的oracleasm驱动,,注意下载和cup位数相对应的版本,下载地址:
[root@data ~]# uname -a
Linux 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
我的操作系统内核是2.6.18-164的,操作系统时32位的,故下载对应的oracleasm包如下:
oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
oracleasm-2.6.18-164.el5debug-2.0.5-1.el5.i686.rpm
oracleasm-2.6.18-164.el5-debuginfo-2.0.5-1.el5.i686.rpm
oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm
oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-support-2.1.7-1.el5.i386.rpm
[root@data ~]#rpm –ivh oracleasm*
二、创建磁盘
准备多块磁盘,做为ASM的存储介质
[root@data ~]# ls /dev/sd
sda sda1 sda2 sda3 sda4 sdb sdb1 sdc sdc1 sdd sdd1 sde sde1 sdf sdf1 sdg sdg1
我这里准备了6块磁盘,从/dev/sdb1~/dev/sdg1
加载oracleasm lib驱动配置: --root用户去执行
[root@data bin]#/etc/init.d/oracleasm configure
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
创建oracleasm 磁盘
[root@data ~]# /etc/init.d/oracleasm createdisk vol1 /dev/sdb1
[root@data ~]# /etc/init.d/oracleasm createdisk vol2 /dev/sdc1
[root@data ~]# /etc/init.d/oracleasm createdisk vol3 /dev/sdd1
[root@data ~]# /etc/init.d/oracleasm createdisk vol4 /dev/sde1
[root@data ~]# /etc/init.d/oracleasm createdisk vol5 /dev/sdf1
[root@data ~]# /etc/init.d/oracleasm createdisk vol6 /dev/sdg1
创建之后,可以用oracleasm listdisks查看创建了多少个asm磁盘
[root@data ~]# oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
VOL5
VOL6
添加css服务:用root用户添加
[root@data bin]# id
uid=0(root) gid=0(root) groups=0(root),1(bin)
cd /u01/app/oracle/product/10.2.0/db_1/bin/
[root@data bin]# ./localconfig add
如果在升级的时候,这个css一定要delete掉,否则无法升级成功,因为要确保所有的oracle进程都要停掉
三、用dbca配置 configure asm
四、用dbca配置 database create database ...
五、登陆验证
[oracle@data ~]$ sqlplus / as sysdba
SQL> select name from v$datafile;
NAME
-----------------------------------------------------------------
+ASM1/chen/datafile/system.256.765405881
+ASM1/chen/datafile/undotbs1.258.765405883
+ASM1/chen/datafile/sysaux.257.765405881
+ASM1/chen/datafile/users.259.765405883
+ASM1/chen/datafile/example.265.765406215
SQL> select name from v$tempfile;
NAME
-----------------------------------------------------------------
+ASM1/chen/tempfile/temp.264.765406151
SQL> select group#,MEMBER from v$logfile;// 日志文件自动冗余 成员放置在不同磁盘组
GROUP# MEMBER
--------- -------------------------
3
+ASM1/chen/onlinelog/group_3.263.765406081
3
+ASM2/chen/onlinelog/group_3.259.765406085
2
+ASM1/chen/onlinelog/group_2.262.765406061
2
+ASM2/chen/onlinelog/group_2.258.765406067
1
+ASM1/chen/onlinelog/group_1.261.765406045
1
+ASM2/chen/onlinelog/group_1.257.765406049
6 rows selected.
冗余策略:
SQL> select name from v$controlfile;
NAME
-----------------------------------------------------------------
+ASM1/chen/controlfile/current.260.765406039
+ASM2/chen/controlfile/current.256.765406039
六、ASM文件系统提供下来好处:
1.ASM提供了在所有磁盘之上的自动负载均衡,从而减少文件系统中的热点。
2.ASM可以预防磁盘碎片,这样你就不需要对数据进行手动重新定位来优化I/O性能。
3.增加一个磁盘相当简单--当增加或移除磁盘时,ASM可以自动进行联机磁盘重组。
4.ASM使用了智能存储阵列中用到的冗余特性。
5.ASM存储系统存储所有类型的数据库文件。
6.ASM可以使文件管理任务更容易,因为你只需要处理新的磁盘组,而不是多个数据文件。
7.ASM可以镜像和条带化,这可以依次提高可靠性和性能。
提示:ASM文件和非ASM文件可以在同一个数据库中共享。
ASM存储系统的概要:
1.一个数据库允许有多个磁盘组。
2.可以将所有的ORACLE数据库文件作为SDM文件存储,因为oracle在oracle数据库文件和ASM文件之间建立了一对一的映射关系。
3.一个ASM磁盘组有一组磁盘驱动器组成。
4.ASM磁盘组允许包含来自多个磁盘组的文件。
5.ASM文件总是分布在ASM磁盘组的每个磁盘上,并属于一个磁盘组。
6.ASM按1MB的分配单元分配磁盘空间。
ASM instance
asm single instance Architecture
asm rac Architecture
ASM DISK GROUPS
metadata
x$kffxp
extend distribution
create diskgroup diskgroup1 external redundancy disk ‘/dev/oracleasm/disks/VOL1’
drop diskgroup diskgroup1 including contents
rebanlancing
alter diskgroup diskgroup1 add disk ‘/dev/oracleasm/disks/VOL2’ REBALANCE POWER 0;
alter diskgroup diskgroup1 drop disk ‘/dev/oracleasm/disks/VOL2’ REBALANCE POWER 0;
alter diskgroup diskgroup1 REBALANCE POWER 1;
v$asm_operation
redundancy
三种冗余的方式
high normal external
三路镜像 两路镜像 外部镜像 raid
七、管理ASM
[oracle@data ~]$ export ORACLE_SID=+ASM
[oracle@data ~]$ asmcmd
ASMCMD> ls
ASM1/
ASM2/
ASMCMD> help
ASMCMD>du
ASMCMD>lsdg
ASMCMD>pwd
ASMCMD>cd
SQL> create tablespace bill datafile '+db1' size 100m;
Tablespace created. //创建表空间的时候直接跟ASM的根目录就可以了
ASM的监听
[oracle@data ~]$ lsnrctl status
Services Summary...
Service "+ASM" has 1 instance(s). //会有+ASM存在
Instance "+ASM", status BLOCKED, has 1 handler(s) for this service...
Service "+ASM_XPT" has 1 instance(s).
Instance "+ASM", status BLOCKED, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "emma" has 1 instance(s).
Instance "emma", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
与ASM有关的进程
[oracle@data ~]$ ps -ef | grep asmb
oracle 22241 1 0 09:49 ? 00:00:00 ora_asmb_emma
有ASM有关的参数文件
[oracle@data dbs]$ more spfile+ASM.ora
[oracle@data dbs]$cd $ORACLE_HOME/dbs
[oracle@data ~]$ export ORACLE_SID=+ASM
[oracle@data ~]$ sqlplus / as sysdba
SYS=>show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/10.2.0
/db_1/dbs/spfile+ASM.ora
ASM与库的启停顺序
先起ASM,再起数据库
export ORACLE_SID=+ASM
startup mount
export ORACLE_SID=emma
startup
先停数据库,在停ASM
export ORACLE_SID=emma
shutdown immediate
export ORACLE_SID=+ASM
shutdown immediate
与ASM有关的视图
SYS=> col TOTAL_MB format a20;
SYS=>select LABEL,PATH TOTAL_MB,FREE_MB from v$asm_disk;
LABEL TOTAL_MB FREE_MB
------------------------------- -------------------- ----------
VOL1 ORCL:VOL1 0
VOL2 ORCL:VOL2 0
VOL3 ORCL:VOL3 0
VOL4 ORCL:VOL4 0
VOL5 ORCL:VOL5 0
VOL6 ORCL:VOL6 0
SYS=>select name,TOTAL_MB,FREE_MB from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB
------------------------------ ---------- ----------
ASM1 4094 1422
ASM2 8188 7647
SYS=>show parameter spfile
NAME TYPE VALUE
------------------------------------
spfile string +ASM1/chen/spfileemma.ora
如果想要看spfile的内容,可以用
SYS=>create pfile='/u01/oracle/a.txt' from spfile的命令
[oracle@data dbs]$ more /u01/oracle/a.txt
修改之后,也可用通过静态参数启动,然后用
SYS=>create spfile from pfile的命令
[oracle@data dbs]$ more initemma.ora
SPFILE='+ASM1/chen/spfileemma.ora'
八、添加
1.添加新的磁盘给已经存在的磁盘组:
2.添加新的磁盘组 :
新加磁盘,首先分区,格式化
[root@rac1 ~]# /etc/init.d/oracleasm listdisks //原来的
VOL1
VOL2
VOL3
VOL4
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL5 /dev/sdb1
Marking disk "VOL5" as an ASM disk: [ OK ]
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL6 /dev/sdc1
Marking disk "VOL6" as an ASM disk: [ OK ]
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL7 /dev/sdd1
Marking disk "VOL7" as an ASM disk: [ OK ]
[root@rac1 ~]# /etc/init.d/oracleasm listdisks //现在的
VOL1
VOL2
VOL3
VOL4
VOL5
VOL6
VOL7
然后在用dbca配置 configure asm
同上
…
可以进入asmcmd检测
ASMCMD> lsdg
展开阅读全文