红帽5.4 企业版下 创建asm数据库
2.6.18-8.el5
前两个rpm是通用的,最后一个分内核下载;
4、 在进行此步骤前请先确认/etc/sysconfig/selinux 文件中的SELINUX=disable
否则在接下在的配置后会报Initializing the Oracle ASMLib driver: [FAILED]错误。
设置系统启动自动挂载asm磁盘
/etc/init.d/oracleasm configure
输入这条命令后,会让你输入用户和组名,
数据库通常都安装在oracle用户oinstall组下,这里我们只要输入oracle和oinstall即可:
5、创建asm磁盘
dd if=/dev/zero f=/home/asmdg/sdb1 bs=1M count=5000
dd if=/dev/zero f=/home/asmdg/sdb2 bs=1M count=5000
dd if=/dev/zero f=/data/asmdg/sdb3 bs=1M count=5000
dd if=/dev/zero f=/data/asmdg/sdb4 bs=1M count=5000
将dd得到的文件虚拟成循环设备:
/sbin/losetup /dev/loop1 /home/asmdg/sdb1
/sbin/losetup /dev/loop2 /home/asmdg/sdb2
/sbin/losetup /dev/loop3 /data/asmdg/sdb3
/sbin/losetup /dev/loop4 /data/asmdg/sdb4
创建asm磁盘
/etc/init.d/oracleasm createdisk V1 /dev/loop1
/etc/init.d/oracleasm createdisk V2 /dev/loop2
/etc/init.d/oracleasm createdisk V3 /dev/loop3
/etc/init.d/oracleasm createdisk V4 /dev/loop4
以上步骤三个步骤千万不能出错,如果出错,及时重建,否则会影响后面的asm磁盘挂载
6、添加oracleasm磁盘
cd $ORACLE_HOME/bin
./localconfig add
7、磁盘创建至此,已经结束,接下来 就可以使用dbca来创建管理asm磁盘并创建数据库,
注意:此时创建的asm磁盘,在系统重启后将会消失,因此,我们需要修改系统文件配置,使其在重启时自动挂载并创建
修改/etc/rc.local 文件,把刚才创建asm的语句都放在上面就可以了:
[root@localhost ~]# cat /etc/rc.local
#!/bin/sh
#
# This script. will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style. init stuff.
touch /var/lock/subsys/local
/sbin/losetup /dev/loop1 /home/sdb1
/sbin/losetup /dev/loop1 /home/sdb2
/etc/init.d/oracleasm createdisk V1 /dev/loop1
/etc/init.d/oracleasm createdisk V2 /dev/loop2
保存退出后,重启一下机器,查看磁盘是否正常挂载。
8、第七步的时候,如果我们不方面启动图形界面,我们也可以通过手工用命令创建
(以下内容
配置+asm参数文件---init+ASM.ora--
INSTANCE_TYPE=ASM
DB_UNIQUE_NAME=+ASM
LARGE_POOL_SIZE=12M
ASM_DISKSTRING='/dev/oracleasm/disks/V1','/dev/oracleasm/disks/V2'
_ASM_ALLOW_ONLY_RAW_DISKS=FALSE
注意:在配置好参数文件, startup nomount 时,可能出现
ORA-00845: MEMORY_TARGET not supported on this system 错误,这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小:
修改/etc/fstab表,添加
------------tmpfs /dev/shm tmpfs defaults,size=10240M 0 0----------------
这个值的大小可以自己根据实际情况调节,系统为内存的一半,我们可以适当的放大;
然后执行:umount /dev/shm
mount /dev/shm
df -k /dev/shm
执行完这些操作后,再次startup 问题解决。
-----
启动+ASM实例到 nomount状态后,创建逻辑卷组
有一个asm组时执行create diskgroup grouptest external redundancy disk '/dev/oracleasm/disks/VOL1';
多个asm组 执行create diskgroup DGROUP1 normal redundancy disk '/dev/oracleasm/disks/V1','/dev/oracleasm/disks/V2';
create diskgroup DGROUP2 normal redundancy disk '/dev/oracleasm/disks/V3','/dev/oracleasm/disks/V4';
create diskgroup DGROUP3 normal redundancy disk '/dev/oracleasm/disks/V5','/dev/oracleasm/disks/V6','/dev/oracleasm/disks/V7';
Diskgroup created.
创建成功后,查看逻辑卷 挂载状态。
select path,mount_status from v$asm_disk;
9、关闭+ASM实例,在参数文件上添加参数,添加后,下次磁盘组讲自动挂载
ASM_DISKGROUPS='DGROUP1','DGROUP2'
10、启动+ASM实例,测试是否可以一次性到mount。
create spfile from pfile;
startup
11、创建asm磁盘相关命令:
手工挂载asm磁盘
alter diskgroup dgroup1 mount;
alter diskgroup dgroup2 mount;
查看css状态
crsctl check cssd
删除diskgroup
drop diskgroup DATA including contents;
- 对于多结点的diskgroup, 只能有在一个asm实例上挂载之后才能被dorp, 其他结点必须dismount。
为diskgroup增加disk
SQL> alter diskgroup DATA add disk '/dev/oracleasm/VOL5' name
VOL5,'/dev/oracleasm/VOL6' name VOL6;
从diskgroup删除disk
SQL> alter diskgroup DATA drop disk VOL5;