改asm磁盘组冗余模式:(默认冗余改外部冗余)
原因:由于dbca创建asm时疏忽,将archdb磁盘组创建成默认冗余模式,即产生一份镜像,由于盘阵已经raid0+1做了设备冗余,
所以再使用磁盘组来做冗余策略是没有必要的。
此磁盘组archdb 是用来放spfile和归档日志用的
初步设想是先把现有磁盘组archdg drop掉,然后把设备文件重建到其他diskgroup
如果直接drop磁盘组会报错:大概意思是以前的asm盘组已经带有了实例的文件数据,
所以不允许直接drop。
SQL> DROP diskgroup archdg including contents;
DROP diskgroup archdg including contents
*
μú 1 DD3???′í?ó:
ORA-15039: ??????
ORA-15001: ??? "ARCHDG" ????????
两个实例执行:
SQL> alter diskgroup archdg dismount force;
root执行:
#dd if=/dev/zero of=/dev/raw/raw13 bs=1M count=20000
#dd if=/dev/zero of=/dev/raw/raw14 bs=1M count=10800
#dd if=/dev/zero of=/dev/raw/raw15 bs=1M count=10800
然后重新创建diskgroup 为archdg1
SQL> create diskgroup archdg1 external redundancy disk '/dev/raw/raw13' ;
SQL> alter diskgroup archdg1 add disk '/dev/raw/raw14';
SQL> alter diskgroup archdg1 add disk '/dev/raw/raw15';
创建成功后:
重新修改归档路径
SQL> alter system set log_archive_dest_1 ='LOCATION=+ARCHDG1/postdbs/' SCOPE=SPFILE SID='postdbs1';
SQL> alter system set log_archive_dest_1 ='LOCATION=+ARCHDG1/postdbs/' SCOPE=SPFILE SID='postdbs2';
修改db spfile文件位置:大略步骤如下
create pfile='/tmp/pfile.ora' from spfile;
create spfile='+ARCHDG1/postdbs/spfilepostdbs.ora' from pfile='/tmp/pfile.ora';
vi $ORACLE_HOME/dbs/initpostdbs.ora --修改spfile指向新的磁盘组位置
spfile='+ARCHDG/postdbs/spfilepostdbs.ora'
改为:
spfile='+ARCHDG1/postdbs/spfilepostdbs.ora'
修改两台node 的asm初始化文件:
vi /oracle/admin/+ASM/pfile/init.ora
asm_diskgroups='ATMDG1','ATMDG2','ARCHDG' --自动挂载和使用磁盘组配置
修改为:
asm_diskgroups='ATMDG1','ATMDG2','ARCHDG1'
重启rac即可
测试:
SQL> Alter system archive log current ;
asm查询结果
SQL> select name,state from v$asm_diskgroup;