之前安装时diskgroup使用的是external的冗余级别,现在想把它换成normal的冗余级别,但是由于diskgroup的冗余一经创建就无法调整,只能重建。
整个过程的大概步骤如下:
1、备份已有的数据库dcdb,,并伤处asm上的文件
2、新建一个磁盘组sfra作为过渡
3、迁移原磁盘组data上的vote和ocr以及asm的spfile至sfra
4、删除并重建data磁盘组为normal冗余
5、回迁vote和ocr以及asm的spfile至data磁盘组
6、恢复数据库
详细过程如下:
1、备份已有数据库,此步略过不做介绍
使用dbca删除数据库。
删除asm上dcdb数据库的参数文件等:
[grid@srcbdb2 ~]$ asmcmd
asmcmd> cd +data/
asmcmd> ls
dcdb/
asmcmd> rm -fr dcdb
过程如同在os上执行。
2、新建一个磁盘组sfra作为过渡
create diskgroup sfra normal redundancy
failgroup dgfg02 disk '/dev/iscsi/11gdisk41' size 20480m ,
'/dev/iscsi/11gdisk42' size 20480m ,
'/dev/iscsi/11gdisk43' size 20480m
failgroup dgfg01 disk '/dev/iscsi/11gdisk31' size 20480m ,
'/dev/iscsi/11gdisk32' size 20480m ,
'/dev/iscsi/11gdisk33' size 20480m
attribute 'compatible.asm'='11.2.0.0.0',
'au_size'='1m';
diskgroup created.
检查另一节点上改磁盘组是否mount起来的。
+asm2@sys> select * from v$asm_diskgroup;
group_number name sector_size block_size allocation_unit_size state type total_mb free_mb hot_used_mb cold_used_mb
------------ ------------------------------------------------------------ ----------- ---------- -------------------- ---------------------- ------------ ---------- ---------- ----------- ------------
required_mirror_free_mb usable_file_mb offline_disks compatibility
----------------------- -------------- ------------- ------------------------------------------------------------------------------------------------------------------------
database_compatibility vo
------------------------------------------------------------------------------------------------------------------------ --
0 sfra 0 4096 0dismounted 0 0 0 0
0 0 0 0.0.0.0.0
0.0.0.0.0 n
2 data 512 4096 1048576 mounted normal 122880 121175 0 1705
304 60435 0 11.2.0.0.0
10.1.0.0.0 y
如果没有自动mount起来,则手工mount改磁盘组
+asm2@sys> alter diskgroup sfra mount;
diskgroup altered.
3、迁移spfile,ocr和vote文件至sfra磁盘组
3.1、迁移spfile
查看当前asm的spfile位置
+asm1@sys> show parameter spfile
name type value
------------------------------------ ---------------------- ------------------------------
spfile string +data/srcbdb-cluster/asmparame
terfile/registry.253.788224447
创建一个pfile作为spfile迁移的过渡文件
+asm1@sys> create pfile from spfile;
file created.
新建spfile文件并指定到过渡磁盘组
+asm1@sys> create spfile='+sfra' from pfile='?/dbs/init+asm1.ora';
file created.
+asm1@sys>
spfile已经在sfra磁盘组中
[grid@srcbdb2 ~]$ asmcmd
asmcmd> cd +sfra/srcbdb-cluster/asmparameterfile
asmcmd> ls
registry.253.788224447
在另一节点上执行同样的操作迁移spfile。
