linux中创建Oracle ASM及碰到的问题
时间:2011-03-15 来源:jasoname
操作系统:CentOS4
Oracle版本:Oracle10g
一、安装及配置
1、添加磁盘(我这里加了4块硬盘)安装ASMLib包,我这个版本的包是oracleasm-2.6.9-89.ELsmp- 2.0.5-1.el4.i686、oracleasmlib-2.0.4-1.el4.i386、oracleasm-support- 2.1.3-1.el4.i386
2.安装完Oracle ASMLib相关软件包后,配置ASM时初始化失败:initializing the oracle asmlib driver failed。
解决方法: 查询/lib/modules/2.6.9-.......ELsmp/kernel/drivers/addon/oracleasm下是否有oracleasm.ko,如果有,还出现这个问题需要修改/etc/SElinux/config文件里面的: SELINUX=enforcing 改为SELINUX=disabled
3、配置asm:/etc/init.d/oracleasm configure接着按提示进行
4、.卸载asm:/etc/init.d/oracleasm disable,加载asm:/etc/init.d/oracleasm enable
重新启动问题解决。
5、而后创建磁盘:/etc/init.d/oracleasm createdisk VOL1 /dev/sdb1(注意新加的磁盘需先分区:fdisk /dev/sdb)
卸载命令:/etc/init.d/oracleasm deletedisk VOL1 /dev/sdb1
6.查看创建的磁盘列表:/etc/init.d/oracleasm listdisks
7.注意,如果在RAC环境中,某个节点上添加ASM磁盘需在其他节点执行命令:/etc/init.d/oracleasm scandisks获取这个变化。
二、创建
分为两步:
(1)创建ASM实例
(注意事项:创建实例时,实例名必须为+ASM,否则在用dbca创建数据库实例时无法查找到我们创建的磁盘组)
1.创建初始化文件
(Oracle用户下)cd $ORACLE_HOME/dbs 而后创建pfile:init+ASM.ora
.asm_diskstring='ORCL:VOL*'(注意:ORCL不能省略)
.background_dump_dest='/oracle/oracle/product/10.2.0/db_1/admin/+ASM/bdump'
.core_dump_dest='/oracle/oracle/product/10.2.0/db_1/admin/+ASM/cdump'
.instance_type='asm'
.large_pool_size=12M
.remote_login_passwordfile='SHARED'
.user_dump_dest='/oracle/oracle/product/10.2.0/db_1/admin/+ASM/udump'
2.创建密码文件
orapwd file=orapwd+ASM password=dba
3.创建目录结构
mkdir -p $ORACLE_HOME/admin/+ASM/udump bdump cdump
(-p参数可以允许同时创建多个目录)
4.启动实例export ORACLE_SID=+ASM sqlplus / as sysdba
启动ASM时碰到:ORA-29701 :unable to connect to Cluster Manager解决办法:我在oracle的官方论坛找到一种方法:
Please run the following batch files in the $ORACLE_HOME/bin directory(以root用户身份)执行
./localconfig delete
./localconfig add
5.创建spfile,create spfile from pfile 然后shutdown immediate 再startup
6.创建磁盘组(diskgroup)
create diskgroup dgroup1 normal redundancy
failgroup fgroup1 disk 'ORCL:VOL1','ORCL:VOL2'(故障组1)
failgroup fgroup2 disk 'ORCL:VOL3','ORCL:VOL4';(故障组2)
查看磁盘组的情况:
select name,state from v$asm_diskgroup;
磁盘组状态为nomount时,可用alter diskgroup dgroup1 mount;命令手动挂载
(2)用dbca创建oracle实例,在创建过程中会提示选择已创建的磁盘组。
(可用ps -ef查看进程)在此步骤中我碰到一个问题:就是用DBCA创建ASM数据库时报ORA-32002 connot create SPFILE aready being used by the instance解决办法:在Oracle用户下执行export ORACLE_SID=asm set问题解决
三、关注三个视图:v$asm_operation v$asm_disk v$asm_diskgroup
1.向故障组1中加入磁盘:进入+ASM实例后,执行命令:
alter diskgroup dgroup1 add failgroup fgroup1 disk 'ORCL:VOL5' failgroup fgroup2 disk 'ORCL:VOL6';
2.查看数据的平衡情况:select GROUP_NUMBER,OPERATION,,STATE,EST_WORK,SOFAR,EST_RATE,EST_MINUTES from v$asm_operation;
3.从磁盘组中删除磁盘:alter diskgroup dgroup1 drop disk VOL4;
4.手动执行数据平衡:alter diskgroup dgroup1 rebalance;