ASM迁移

环境:

sys@ORCL> select * from v$version where rownum=1;


BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod


sys@ORCL> !uname -a

Linux localhost.localdomain 2.6.18-308.el5xen #1 SMP Fri Jan 27 17:59:00 EST 2012 i686 i686 i386 GNU/Linux



① 规划


+DG1:用于存放数据文件、控制文件、联机日志

+DG2:用于存放联机日志

+RECOVERY:用于recovery area

idle> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;


GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB

------------ ---------- --------------------------------- ---------- ----------

1 DG1 MOUNTED 3072 3016

2 DG2 MOUNTED 768 718

3 RECOVERY MOUNTED 2304 2250



② 修改RDBMS参数

idle> alter system set db_recovery_file_dest='+RECOVERY' scope=both;


System altered.


idle> alter system set db_create_file_dest='+DG1' scope=both;


System altered.

idle> alter system set db_create_online_log_dest_1='+DG1' scope=both;


System altered.


idle> alter system set db_create_online_log_dest_2='+DG2' scope=both;


System altered.




③ 日志文件迁移

idle> alter database add logfile group 4 ('+DG1','+DG2') size 80m;


Database altered.


idle> alter database add logfile group 5 ('+DG1','+DG2') size 80m;


Database altered.


idle> alter database add logfile group 6 ('+DG1','+DG2') size 80m;


Database altered.



日志组的状态为inactive时,删除才能成功

idle> alter system checkpoint;

idle> alter database drop logfile group 1;


Database altered.

idle> alter database drop logfile group 2;


Database altered.


idle> alter database drop logfile group 3;


Database altered.


idle> select group#,status from v$log;


GROUP# STATUS

---------- ----------------

4 INACTIVE

5 CURRENT

6 UNUSED

idle> select member from v$logfile;


MEMBER

-----------------------------------------------------------------

+DG1/orcl/onlinelog/group_4.256.798634749

+DG2/orcl/onlinelog/group_4.256.798634753

+DG1/orcl/onlinelog/group_5.259.798634795

+DG2/orcl/onlinelog/group_5.259.798634801

+DG1/orcl/onlinelog/group_6.260.798634825

+DG2/orcl/onlinelog/group_6.260.798634829




④ 临时文件迁移

idle> select file_name,tablespace_name from dba_temp_files;


FILE_NAME TABLESPACE_NAME

------------------------------------------------------- ------------------------------

/u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_8050j3 TEMP

4j_.tmp



idle> alter tablespace temp add tempfile '+DG1';


Tablespace altered.


idle> select file_name,tablespace_name from dba_temp_files;


FILE_NAME TABLESPACE_NAME

------------------------------------------------------- ------------------------------

+DG1/orcl/tempfile/temp.258.798635383 TEMP

/u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_8050j3 TEMP

4j_.tmp



idle> alter tablespace temp drop tempfile '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_8050j34j_.tmp';


Tablespace altered.


idle> select file_name,tablespace_name from dba_temp_files;


FILE_NAME TABLESPACE_NAME

------------------------------------------------------- ------------------------------

+DG1/orcl/tempfile/temp.258.798635383 TEMP




⑤ 迁移控制文件、数据文件

在整个迁移过程,只有这一步需要对数据库实例进行关闭和启动

idle> show parameter control_files


NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

control_files string /u01/app/oracle/oradata/ORCL/c

ontrolfile/o1_mf_8050hgfp_.ctl

, /u01/app/oracle/flash_recove

ry_area/ORCL/controlfile/o1_mf

_8050hgqh_.ctl

idle> alter database backup controlfile to '/home/oracle/asmctl02.ctl';


Database altered.


idle> alter system set control_files='+DG1/ORCL/CONTROLFILE/control01','+DG2/ORCL/CONTROLFILE/control02' scope=spfile;


System altered.


idle> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.


RMAN> startup nomount;


Oracle instance started


Total System Global Area 419430400 bytes


Fixed Size 1219760 bytes

Variable Size 146801488 bytes

Database Buffers 268435456 bytes

Redo Buffers 2973696 bytes


RMAN> restore controlfile from '/home/oracle/asmctl02.ctl';


Starting restore at 06-NOV-12

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK


channel ORA_DISK_1: copied control file copy

output filename=+DG1/orcl/controlfile/control01

output filename=+DG2/orcl/controlfile/control02

Finished restore at 06-NOV-12


RMAN> alter database mount;


database mounted

released channel: ORA_DISK_1


RMAN> backup as copy database format '+DG1';


Starting backup at 06-NOV-12

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

input datafile fno=00001 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_8050fk2z_.dbf

output filename=+DG1/orcl/datafile/system.261.798636159 tag=TAG20121106T112238 recid=2 stamp=798636197

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45

channel ORA_DISK_1: starting datafile copy

input datafile fno=00003 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_8050fk3w_.dbf

output filename=+DG1/orcl/datafile/sysaux.262.798636203 tag=TAG20121106T112238 recid=3 stamp=798636232

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35

channel ORA_DISK_1: starting datafile copy

input datafile fno=00005 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_8050jhm7_.dbf

output filename=+DG1/orcl/datafile/example.263.798636239 tag=TAG20121106T112238 recid=4 stamp=798636252

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile fno=00002 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_8050fkc6_.dbf

output filename=+DG1/orcl/datafile/undotbs1.264.798636255 tag=TAG20121106T112238 recid=5 stamp=798636257

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:08

channel ORA_DISK_1: starting datafile copy

input datafile fno=00004 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf

output filename=+DG1/orcl/datafile/users.265.798636261 tag=TAG20121106T112238 recid=6 stamp=798636261

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 06-NOV-12


RMAN-06497: WARNING: control file is not current, control file autobackup skipped


RMAN> recover database;


Starting recover at 06-NOV-12

using channel ORA_DISK_1


starting media recovery


archive log thread 1 sequence 16 is already on disk as file +DG1/orcl/onlinelog/group_5.259.798634795

archive log filename=+DG1/orcl/onlinelog/group_5.259.798634795 thread=1 sequence=16

media recovery complete, elapsed time: 00:00:02

Finished recover at 06-NOV-12


RMAN> switch database to copy;


datafile 1 switched to datafile copy "+DG1/orcl/datafile/system.261.798636159"

datafile 2 switched to datafile copy "+DG1/orcl/datafile/undotbs1.264.798636255"

datafile 3 switched to datafile copy "+DG1/orcl/datafile/sysaux.262.798636203"

datafile 4 switched to datafile copy "+DG1/orcl/datafile/users.265.798636261"

datafile 5 switched to datafile copy "+DG1/orcl/datafile/example.263.798636239"


RMAN> alter database open resetlogs;


database opened




⑥ 确认所有文件已经迁移到ASM中

sys@ORCL> select name,status from v$datafile;


NAME STATUS

-------------------------------------------------- -------

+DG1/orcl/datafile/system.261.798636159 SYSTEM

+DG1/orcl/datafile/undotbs1.264.798636255 ONLINE

+DG1/orcl/datafile/sysaux.262.798636203 ONLINE

+DG1/orcl/datafile/users.265.798636261 ONLINE

+DG1/orcl/datafile/example.263.798636239 ONLINE


sys@ORCL> select name from v$controlfile;


NAME

--------------------------------------------------

+DG1/orcl/controlfile/control01

+DG2/orcl/controlfile/control02


sys@ORCL> select member from v$logfile;


MEMBER

----------------------------------------------------------------------------------------------------

+DG1/orcl/onlinelog/group_4.256.798634749

+DG2/orcl/onlinelog/group_4.256.798634753

+DG1/orcl/onlinelog/group_5.259.798634795

+DG2/orcl/onlinelog/group_5.259.798634801

+DG1/orcl/onlinelog/group_6.260.798634825

+DG2/orcl/onlinelog/group_6.260.798634829


6 rows selected.


sys@ORCL> select name,status from v$tempfile;


NAME STATUS

-------------------------------------------------- -------

+DG1/orcl/tempfile/temp.258.798635383 ONLINE



⑦ 最后验证

idle> startup

ASM instance started


Total System Global Area 83886080 bytes

Fixed Size 1217836 bytes

Variable Size 57502420 bytes

ASM Cache 25165824 bytes

ASM diskgroups mounted


sys@ORCL> startup

ORACLE instance started.


Total System Global Area 419430400 bytes

Fixed Size 1219760 bytes

Variable Size 150995792 bytes

Database Buffers 264241152 bytes

Redo Buffers 2973696 bytes

Database mounted.

Database opened.


ASMCMD> lsct

DB_Name Status Software_Version Compatible_version Instance_Name

orcl CONNECTED 10.2.0.1.0 10.2.0.1.0 orcl

orcl CONNECTED 10.2.0.1.0 10.2.0.1.0 orcl



小结:

这一次迁移,比起上一篇,改进:

⑴ 多增加了2个磁盘组,多了份故障保证,但由于空间方面,还是选择了external ASM

⑵ 对spfile没有进行迁移

⑶ 对控制文件也作了多路镜像:+DG1和+DG2



oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

你可能感兴趣的:(ASM迁移)