之前安装时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。