技术活动
CUUG学员就业信息
学员感言、就业资讯
报名热线
文档
当前您的位置:首页 > 技术活动 > 技术中心 > 文档
ASM迁移 -CUUG

  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