一) 在linux里增加1个8G的虚盘
/dev/sdb,8G, 分6个区,每个区1024M,分别对应sdb1,sdb2,sdb3,sdb4(逻辑扩展),sdb5,sdb6,sdb7。
# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 274 2096482+ 82 Linux swap / Solaris
/dev/sda3 275 3916 29254365 83 Linux
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 125 1004031 83 Linux
/dev/sdb2 126 250 1004062+ 83 Linux
/dev/sdb3 251 375 1004062+ 83 Linux
/dev/sdb4 376 1044 5373742+ 5 Extended
/dev/sdb5 376 500 1004031 83 Linux
/dev/sdb6 501 625 1004031 83 Linux
/dev/sdb7 626 750 1004031 83 Linux
二)提供ASM磁盘的方法
在Linux上创建ASM磁盘有两种方法:
1)Udev方法:这个方法在Linux5版之后已经稳定了,而且又是其他UNIX上(如AIX)的管理ASM磁盘的方法,所以一统天下的Udev方法应该是今后的方向。
2)ASMlib方法:这个方法仅仅针对Linux。
第一种方法:使用Udev方法提供ASM磁盘:
步骤1,# ls -al /dev/sd*
brw-r----- 1 root disk 8, 0 07-09 10:52 sda
brw-r----- 1 root disk 8, 1 07-09 10:53 sda1
brw-r----- 1 root disk 8, 2 07-09 10:52 sda2
brw-r----- 1 root disk 8, 3 07-09 10:53 sda3
brw-r----- 1 root disk 8, 16 07-09 10:52 sdb
brw-r----- 1 root disk 8, 17 07-09 10:52 sdb1
brw-r----- 1 root disk 8, 18 07-09 10:52 sdb2
brw-r----- 1 root disk 8, 19 07-09 10:52 sdb3
brw-r----- 1 root disk 8, 20 07-09 10:52 sdb4
brw-r----- 1 root disk 8, 21 07-09 10:52 sdb5
brw-r----- 1 root disk 8, 22 07-09 10:52 sdb6
brw-r----- 1 root disk 8, 23 07-09 10:52 sdb7
步骤2,编辑udev配置文件
#vi /etc/udev/rules.d/60-raw.rules 按照example编写如下:
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="18",RUN+="/bin/raw /dev/raw/raw2 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="19",RUN+="/bin/raw /dev/raw/raw3 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="20",RUN+="/bin/raw /dev/raw/raw4 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="21",RUN+="/bin/raw /dev/raw/raw5 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="22",RUN+="/bin/raw /dev/raw/raw6 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="23",RUN+="/bin/raw /dev/raw/raw7 %M %m"
KERNEL=="raw[1-7]", OWNER="oracle", GROUP="oinstall", MODE="640"
步骤3,建立udev
# start_udev
#ll /dev/raw
#reboot
[root@timran dev]# ls -al /dev/raw/*
crw-r----- 1 oracle oinstall 162, 1 07-09 15:34 /dev/raw/raw1
crw-r----- 1 oracle oinstall 162, 2 07-09 15:34 /dev/raw/raw2
crw-r----- 1 oracle oinstall 162, 3 07-09 15:34 /dev/raw/raw3
crw-r----- 1 oracle oinstall 162, 4 07-09 10:53 /dev/raw/raw4
crw-r----- 1 oracle oinstall 162, 5 07-09 15:34 /dev/raw/raw5
crw-r----- 1 oracle oinstall 162, 6 07-09 15:34 /dev/raw/raw6
crw-r----- 1 oracle oinstall 162, 7 07-09 15:34 /dev/raw/raw7
步骤4:创建ASM实例
单实例的ASM也要用到RAC套件中的一些驱动,它们负责多实例间的通信。
#/u01/oracle/bin/localconfig add
# ps -ef |grep css
创建ASM参数文件
$vi $ORACLE_HOME/dbs/init+ASM.ora
#*.asm_diskgroups='DG1'
*
*.asm_diskstring='/dev/raw/*'
*.diagnostic_dest='/u01'
*.instance_type='ASM'
*.instance_name='+ASM'
*.asm_power_limit=1
步骤5,创建ASM的口令文件
$orapwd file=$ORACLE_HOME/dbs/orapw+ASM password=oracle entries=5
启动ASM实例
$export ORACLE_SID=+ASM
$sqlplus / as sysdba
SQL> startup……ORA-15110:
no diskgroups mounted
这是因为ASM磁盘组还没有建立#
ps -ef |grep +ASM
步骤6,创建ASM磁盘组。
创建磁盘组要在ASM实例下去做,不可以在RDBMS实例下完成
SQL>create diskgroup DG1 normal redundancy
failgroup con1 disk '/dev/raw/raw1','/dev/raw/raw2','/dev/raw/raw3'
failgroup con2 disk '/dev/raw/raw5','/dev/raw/raw6','/dev/raw/raw7';
三)检查和测试ASM是否可以工作。
1)检查ASM磁盘组及磁盘的相关信息,
col name for a15;
col failgroup for a20;
SQL> select NAME,STATE,FREE_MB,REQUIRED_MIRROR_FREE_MB,USABLE_FILE_MB from v$asm_diskgroup;
NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
---------------------------------------------------------------------------------------------------------------
DG1 MOUNTED 3750 964 1393
SQL> select GROUP_NUMBER,DISK_NUMBER,NAME,FAILGROUP,STATE,TOTAL_MB from v$asm_disk;
SQL> select GROUP_NUMBER,DISK_NUMBER,NAME,FAILGROUP,STATE,TOTAL_MB from v$asm_disk;
GROUP_NUMBER DISK_NUMBER NAME FAILGROUP STATE TOTAL_MB
------------ ----------- --------------- -------------------- -------- ----------
1 0 DG1_0000 CON1 NORMAL 980
1 4 DG1_0004 CON2 NORMAL 980
2 0 DG1_0002 CON1 NORMAL 980
1 1 DG1_0001 CON1 NORMAL 980
1 3 DG1_0003 CON2 NORMAL 980
2 1 DG1_0005 CON2 NORMAL 980
看一下ASM磁盘的情况:
SQL> col path for a40;
SQL> select path, name, os_mb from v$asm_disk order by path;
PATH NAME OS_MB
---------------------------------------- --------------- ----------
/dev/raw/raw1 DG1_0000 980
/dev/raw/raw2 DG1_0001 980
/dev/raw/raw3 DG1_0002 980
/dev/raw/raw5 DG1_0003 980
/dev/raw/raw6 DG1_0004 980
/dev/raw/raw7 DG1_0005 980
2)重新启动前将参数文件的第一行#去掉
[root@timran11g dbs]#vi /u01/oracle/dbs/init+ASM.ora
*.asm_diskgroups='DG1'
------------------------------------------------------------------------------------------------
四) 数据库迁移-从文件系统到ASM
了解原系统信息
SQL> archive log list;
SQL> show parameter spfile;
SQL> show parameter control_files;
生成pfile
SQL> create pfile='/tmp/pfile1' from spfile;
备控制文件,注意SQLPLUS手工备份的控制文件在RMAN下也可以用
SQL> alter database backup controlfile to '/tmp/controfile1';
--查看当前数据文件位置
SQL> select name from v$datafile
--查看OMF相关参数
SQL> show parameter db_create_file_dest;
SQL> show parameter db_recovery_file_dest_size;
SQL> show parameter db_recovery_file_dest;
SQL> show parameter log_archive_dest_1;
--修改控制文件位置到ASM
SQL> alter system set control_files='+dg1' scope=spfile;
SQL> alter system set db_create_file_dest='+dg1' ;(指定这个参数后,就不需要在创建表空间时指定具体的datafile的文件路径和名称了。)
--切换到RMAN操作
[oracle@timran11g ~]$ rman target /
RMAN> shutdown immediate;
--启动到nomount状态
RMAN> startup nomount;
--还原备份的控制文件
RMAN> restore controlfile from '/tmp/controfile1';
RMAN> alter database mount;
-- 备份数据文件副本到ASM磁盘组DG1
RMAN> backup as copy database format '+dg1';
RMAN-06497: WARNING: control file is not current,control file autobackup skipped
--切换数据文件到ASM
RMAN> switch database to copy;
--恢复数据库
RMAN> recover database;
--打开数据库
RMAN> alter database open resetlogs;
--切换SQL*PLUS操作
[oracle@timran11g ~]$ sqlplus "/as sysdba"
--迁移REDO到ASM
SQL> alter database add logfile group 4 '+dg1' size 50m;
SQL> alter database add logfile group 5 '+dg1' size 50m;
SQL> alter database add logfile group 6 '+dg1' size 50m;
--删除旧REDO
SQL> alter database drop logfile group 1;
alter database drop logfile group 1
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
SQL> alter system switch logfile;
SQL> alter database drop logfile group 1;
--因为TEMP不在控制文件中记录,要单独迁移TEMP到ASM,
删除旧TEMP文件
SQL> alter tablespace temp add tempfile '+DG1' size 100m;
SQL> alter tablespace temp drop tempfile '/u01/oradata/temp01.dbf';
--迁移spfile到ASM
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ -----------------------------------------
spfile string /u01/oracle/timran11g/dbs/spfiletimran11g.ora
SQL> create pfile='/tmp/pfile2' from spfile;
SQL> create spfile='+dg1' from pfile='/tmp/pfile2';
SQL> exit
列出spfile在ASM下的别名
$export ORACLE_SID=+ASM
$asmcmd
asmcmd>ls
+DG1/TIMRAN11G/PARAMETERFILE/spfile.266.884607021
[oracle@timran11g ~]$ vi $ORACLE_HOME/dbs/inittimran11g.ora
spfile='+DG1/TIMRAN11G/PARAMETERFILE/spfile.266.884607021'
备份老spfile
考虑归档日志要不要迁移到ASM
1) NFS(RAC)
2) ASM
2.1 建立磁盘组 FRA 包括两个ASM磁盘
前面讲ASM磁盘已经全部加入到DG组,现在删除两个ASM磁盘,为建立FRA组使用,
alter diskgroup DG1 drop disk DG1_0002;
alter diskgroup DG1 drop disk DG1_0005;
观察:在删除的过程中有ASM磁盘处于droping状态,说明此时正在动态平衡中。
create diskgroup FRA normal redundancy
failgroup f1 disk '/dev/raw/raw3'
failgroup f2 disk '/dev/raw/raw7';
2.2 改ASM参数文件关于磁盘组描述
[oracle@timran dbs]$ more init+ASM.ora
*.asm_diskgroups='DG1','FRA'
*.asm_diskstring='/dev/raw/*'
*.diagnostic_dest='/u01'
*.instance_type='ASM'
*.instance_name='+ASM'
SQL> select NAME,STATE,FREE_MB,REQUIRED_MIRROR_FREE_MB,USABLE_FILE_MB from v$asm_diskgroup;
NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
--------------- ----------- ---------- ----------------------- --------------
DG1 MOUNTED 8 980 -486
FRA MOUNTED 732 0 366
GROUP_NUMBER DISK_NUMBER NAME FAILGROUP STATE TOTAL_MB
------------ ----------- --------------- -------------------- -------- ----------
1 0 DG1_0000 CON1 NORMAL 980
1 4 DG1_0004 CON2 NORMAL 980
2 0 FRA_0000 F1 NORMAL 980
1 1 DG1_0001 CON1 NORMAL 980
1 3 DG1_0003 CON2 NORMAL 980
2 1 FRA_0001 F2 NORMAL 980
2.3 改路径参数
SQL> alter system set db_recovery_file_dest='+fra';
SQL> alter system set log_archive_dest_1='location=+fra';
--检查迁移结果
SQL> startup force;
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ -----------------------------------------
spfile string +DG1/timran11g/parameterfile/sp
file.257.808328691
SQL> show parameter control_files;
SQL> archive log list;
SQL> Select Name From V$datafile;
删除旧的数据库文件
/dev/sdb,8G, 分6个区,每个区1024M,分别对应sdb1,sdb2,sdb3,sdb4(逻辑扩展),sdb5,sdb6,sdb7。
# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 274 2096482+ 82 Linux swap / Solaris
/dev/sda3 275 3916 29254365 83 Linux
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 125 1004031 83 Linux
/dev/sdb2 126 250 1004062+ 83 Linux
/dev/sdb3 251 375 1004062+ 83 Linux
/dev/sdb4 376 1044 5373742+ 5 Extended
/dev/sdb5 376 500 1004031 83 Linux
/dev/sdb6 501 625 1004031 83 Linux
/dev/sdb7 626 750 1004031 83 Linux
二)提供ASM磁盘的方法
在Linux上创建ASM磁盘有两种方法:
1)Udev方法:这个方法在Linux5版之后已经稳定了,而且又是其他UNIX上(如AIX)的管理ASM磁盘的方法,所以一统天下的Udev方法应该是今后的方向。
2)ASMlib方法:这个方法仅仅针对Linux。
第一种方法:使用Udev方法提供ASM磁盘:
步骤1,# ls -al /dev/sd*
brw-r----- 1 root disk 8, 0 07-09 10:52 sda
brw-r----- 1 root disk 8, 1 07-09 10:53 sda1
brw-r----- 1 root disk 8, 2 07-09 10:52 sda2
brw-r----- 1 root disk 8, 3 07-09 10:53 sda3
brw-r----- 1 root disk 8, 16 07-09 10:52 sdb
brw-r----- 1 root disk 8, 17 07-09 10:52 sdb1
brw-r----- 1 root disk 8, 18 07-09 10:52 sdb2
brw-r----- 1 root disk 8, 19 07-09 10:52 sdb3
brw-r----- 1 root disk 8, 20 07-09 10:52 sdb4
brw-r----- 1 root disk 8, 21 07-09 10:52 sdb5
brw-r----- 1 root disk 8, 22 07-09 10:52 sdb6
brw-r----- 1 root disk 8, 23 07-09 10:52 sdb7
步骤2,编辑udev配置文件
#vi /etc/udev/rules.d/60-raw.rules 按照example编写如下:
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="17",RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="18",RUN+="/bin/raw /dev/raw/raw2 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="19",RUN+="/bin/raw /dev/raw/raw3 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="20",RUN+="/bin/raw /dev/raw/raw4 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="21",RUN+="/bin/raw /dev/raw/raw5 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="22",RUN+="/bin/raw /dev/raw/raw6 %M %m"
ACTION=="add", ENV{MAJOR}=="8",ENV{MINOR}=="23",RUN+="/bin/raw /dev/raw/raw7 %M %m"
KERNEL=="raw[1-7]", OWNER="oracle", GROUP="oinstall", MODE="640"
步骤3,建立udev
# start_udev
#ll /dev/raw
#reboot
[root@timran dev]# ls -al /dev/raw/*
crw-r----- 1 oracle oinstall 162, 1 07-09 15:34 /dev/raw/raw1
crw-r----- 1 oracle oinstall 162, 2 07-09 15:34 /dev/raw/raw2
crw-r----- 1 oracle oinstall 162, 3 07-09 15:34 /dev/raw/raw3
crw-r----- 1 oracle oinstall 162, 4 07-09 10:53 /dev/raw/raw4
crw-r----- 1 oracle oinstall 162, 5 07-09 15:34 /dev/raw/raw5
crw-r----- 1 oracle oinstall 162, 6 07-09 15:34 /dev/raw/raw6
crw-r----- 1 oracle oinstall 162, 7 07-09 15:34 /dev/raw/raw7
步骤4:创建ASM实例
单实例的ASM也要用到RAC套件中的一些驱动,它们负责多实例间的通信。
#/u01/oracle/bin/localconfig add
# ps -ef |grep css
创建ASM参数文件
$vi $ORACLE_HOME/dbs/init+ASM.ora
#*.asm_diskgroups='DG1'
*
*.asm_diskstring='/dev/raw/*'
*.diagnostic_dest='/u01'
*.instance_type='ASM'
*.instance_name='+ASM'
*.asm_power_limit=1
步骤5,创建ASM的口令文件
$orapwd file=$ORACLE_HOME/dbs/orapw+ASM password=oracle entries=5
启动ASM实例
$export ORACLE_SID=+ASM
$sqlplus / as sysdba
SQL> startup……ORA-15110:
no diskgroups mounted
这是因为ASM磁盘组还没有建立#
ps -ef |grep +ASM
步骤6,创建ASM磁盘组。
创建磁盘组要在ASM实例下去做,不可以在RDBMS实例下完成
SQL>create diskgroup DG1 normal redundancy
failgroup con1 disk '/dev/raw/raw1','/dev/raw/raw2','/dev/raw/raw3'
failgroup con2 disk '/dev/raw/raw5','/dev/raw/raw6','/dev/raw/raw7';
三)检查和测试ASM是否可以工作。
1)检查ASM磁盘组及磁盘的相关信息,
col name for a15;
col failgroup for a20;
SQL> select NAME,STATE,FREE_MB,REQUIRED_MIRROR_FREE_MB,USABLE_FILE_MB from v$asm_diskgroup;
NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
---------------------------------------------------------------------------------------------------------------
DG1 MOUNTED 3750 964 1393
SQL> select GROUP_NUMBER,DISK_NUMBER,NAME,FAILGROUP,STATE,TOTAL_MB from v$asm_disk;
SQL> select GROUP_NUMBER,DISK_NUMBER,NAME,FAILGROUP,STATE,TOTAL_MB from v$asm_disk;
GROUP_NUMBER DISK_NUMBER NAME FAILGROUP STATE TOTAL_MB
------------ ----------- --------------- -------------------- -------- ----------
1 0 DG1_0000 CON1 NORMAL 980
1 4 DG1_0004 CON2 NORMAL 980
2 0 DG1_0002 CON1 NORMAL 980
1 1 DG1_0001 CON1 NORMAL 980
1 3 DG1_0003 CON2 NORMAL 980
2 1 DG1_0005 CON2 NORMAL 980
看一下ASM磁盘的情况:
SQL> col path for a40;
SQL> select path, name, os_mb from v$asm_disk order by path;
PATH NAME OS_MB
---------------------------------------- --------------- ----------
/dev/raw/raw1 DG1_0000 980
/dev/raw/raw2 DG1_0001 980
/dev/raw/raw3 DG1_0002 980
/dev/raw/raw5 DG1_0003 980
/dev/raw/raw6 DG1_0004 980
/dev/raw/raw7 DG1_0005 980
2)重新启动前将参数文件的第一行#去掉
[root@timran11g dbs]#vi /u01/oracle/dbs/init+ASM.ora
*.asm_diskgroups='DG1'
------------------------------------------------------------------------------------------------
四) 数据库迁移-从文件系统到ASM
了解原系统信息
SQL> archive log list;
SQL> show parameter spfile;
SQL> show parameter control_files;
生成pfile
SQL> create pfile='/tmp/pfile1' from spfile;
备控制文件,注意SQLPLUS手工备份的控制文件在RMAN下也可以用
SQL> alter database backup controlfile to '/tmp/controfile1';
--查看当前数据文件位置
SQL> select name from v$datafile
--查看OMF相关参数
SQL> show parameter db_create_file_dest;
SQL> show parameter db_recovery_file_dest_size;
SQL> show parameter db_recovery_file_dest;
SQL> show parameter log_archive_dest_1;
--修改控制文件位置到ASM
SQL> alter system set control_files='+dg1' scope=spfile;
SQL> alter system set db_create_file_dest='+dg1' ;(指定这个参数后,就不需要在创建表空间时指定具体的datafile的文件路径和名称了。)
--切换到RMAN操作
[oracle@timran11g ~]$ rman target /
RMAN> shutdown immediate;
--启动到nomount状态
RMAN> startup nomount;
--还原备份的控制文件
RMAN> restore controlfile from '/tmp/controfile1';
RMAN> alter database mount;
-- 备份数据文件副本到ASM磁盘组DG1
RMAN> backup as copy database format '+dg1';
RMAN-06497: WARNING: control file is not current,control file autobackup skipped
--切换数据文件到ASM
RMAN> switch database to copy;
--恢复数据库
RMAN> recover database;
--打开数据库
RMAN> alter database open resetlogs;
--切换SQL*PLUS操作
[oracle@timran11g ~]$ sqlplus "/as sysdba"
--迁移REDO到ASM
SQL> alter database add logfile group 4 '+dg1' size 50m;
SQL> alter database add logfile group 5 '+dg1' size 50m;
SQL> alter database add logfile group 6 '+dg1' size 50m;
--删除旧REDO
SQL> alter database drop logfile group 1;
alter database drop logfile group 1
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
SQL> alter system switch logfile;
SQL> alter database drop logfile group 1;
--因为TEMP不在控制文件中记录,要单独迁移TEMP到ASM,
删除旧TEMP文件
SQL> alter tablespace temp add tempfile '+DG1' size 100m;
SQL> alter tablespace temp drop tempfile '/u01/oradata/temp01.dbf';
--迁移spfile到ASM
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ -----------------------------------------
spfile string /u01/oracle/timran11g/dbs/spfiletimran11g.ora
SQL> create pfile='/tmp/pfile2' from spfile;
SQL> create spfile='+dg1' from pfile='/tmp/pfile2';
SQL> exit
列出spfile在ASM下的别名
$export ORACLE_SID=+ASM
$asmcmd
asmcmd>ls
+DG1/TIMRAN11G/PARAMETERFILE/spfile.266.884607021
[oracle@timran11g ~]$ vi $ORACLE_HOME/dbs/inittimran11g.ora
spfile='+DG1/TIMRAN11G/PARAMETERFILE/spfile.266.884607021'
备份老spfile
考虑归档日志要不要迁移到ASM
1) NFS(RAC)
2) ASM
2.1 建立磁盘组 FRA 包括两个ASM磁盘
前面讲ASM磁盘已经全部加入到DG组,现在删除两个ASM磁盘,为建立FRA组使用,
alter diskgroup DG1 drop disk DG1_0002;
alter diskgroup DG1 drop disk DG1_0005;
观察:在删除的过程中有ASM磁盘处于droping状态,说明此时正在动态平衡中。
create diskgroup FRA normal redundancy
failgroup f1 disk '/dev/raw/raw3'
failgroup f2 disk '/dev/raw/raw7';
2.2 改ASM参数文件关于磁盘组描述
[oracle@timran dbs]$ more init+ASM.ora
*.asm_diskgroups='DG1','FRA'
*.asm_diskstring='/dev/raw/*'
*.diagnostic_dest='/u01'
*.instance_type='ASM'
*.instance_name='+ASM'
SQL> select NAME,STATE,FREE_MB,REQUIRED_MIRROR_FREE_MB,USABLE_FILE_MB from v$asm_diskgroup;
NAME STATE FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
--------------- ----------- ---------- ----------------------- --------------
DG1 MOUNTED 8 980 -486
FRA MOUNTED 732 0 366
GROUP_NUMBER DISK_NUMBER NAME FAILGROUP STATE TOTAL_MB
------------ ----------- --------------- -------------------- -------- ----------
1 0 DG1_0000 CON1 NORMAL 980
1 4 DG1_0004 CON2 NORMAL 980
2 0 FRA_0000 F1 NORMAL 980
1 1 DG1_0001 CON1 NORMAL 980
1 3 DG1_0003 CON2 NORMAL 980
2 1 FRA_0001 F2 NORMAL 980
2.3 改路径参数
SQL> alter system set db_recovery_file_dest='+fra';
SQL> alter system set log_archive_dest_1='location=+fra';
--检查迁移结果
SQL> startup force;
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ -----------------------------------------
spfile string +DG1/timran11g/parameterfile/sp
file.257.808328691
SQL> show parameter control_files;
SQL> archive log list;
SQL> Select Name From V$datafile;
删除旧的数据库文件