ASM迁移

环境:

[sql]  view plain copy
  1. sys@ORCL> select * from v$version where rownum=1;  
  2.   
  3. BANNER  
  4. ----------------------------------------------------------------  
  5. Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod  
  6.   
  7. sys@ORCL> !uname -a  
  8. 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

[sql]  view plain copy
  1. idle> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup;  
  2.   
  3. GROUP_NUMBER NAME       STATE                               TOTAL_MB    FREE_MB  
  4. ------------ ---------- --------------------------------- ---------- ----------  
  5.            1 DG1        MOUNTED                                 3072       3016  
  6.            2 DG2        MOUNTED                                  768        718  
  7.            3 RECOVERY   MOUNTED                                 2304       2250  


    ② 修改RDBMS参数

[sql]  view plain copy
  1. idle> alter system set db_recovery_file_dest='+RECOVERY' scope=both;  
  2.   
  3. System altered.  
  4.   
  5. idle> alter system set db_create_file_dest='+DG1' scope=both;  
  6.   
  7. System altered.  
  8. idle> alter system set db_create_online_log_dest_1='+DG1' scope=both;  
  9.   
  10. System altered.  
  11.   
  12. idle> alter system set db_create_online_log_dest_2='+DG2' scope=both;  
  13.   
  14. System altered.  


 

    ③ 日志文件迁移

[sql]  view plain copy
  1. idle> alter database add logfile group 4 ('+DG1','+DG2'size 80m;  
  2.   
  3. Database altered.  
  4.   
  5. idle> alter database add logfile group 5 ('+DG1','+DG2'size 80m;  
  6.   
  7. Database altered.  
  8.   
  9. idle> alter database add logfile group 6 ('+DG1','+DG2'size 80m;  
  10.   
  11. Database altered.  


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

[sql]  view plain copy
  1. idle> alter system checkpoint;  
  2. idle> alter database drop logfile group 1;  
  3.   
  4. Database altered.  
  5. idle> alter database drop logfile group 2;  
  6.   
  7. Database altered.  
  8.   
  9. idle> alter database drop logfile group 3;  
  10.   
  11. Database altered.  
  12.   
  13. idle> select group#,status from v$log;  
  14.   
  15.     GROUP# STATUS  
  16. ---------- ----------------  
  17.          4 INACTIVE  
  18.          5 CURRENT  
  19.          6 UNUSED  
  20. idle> select member from v$logfile;  
  21.   
  22. MEMBER  
  23. -----------------------------------------------------------------  
  24. +DG1/orcl/onlinelog/group_4.256.798634749  
  25. +DG2/orcl/onlinelog/group_4.256.798634753  
  26. +DG1/orcl/onlinelog/group_5.259.798634795  
  27. +DG2/orcl/onlinelog/group_5.259.798634801  
  28. +DG1/orcl/onlinelog/group_6.260.798634825  
  29. +DG2/orcl/onlinelog/group_6.260.798634829  


 

    ④ 临时文件迁移

[sql]  view plain copy
  1. idle> select file_name,tablespace_name from dba_temp_files;  
  2.   
  3. FILE_NAME                                               TABLESPACE_NAME  
  4. ------------------------------------------------------- ------------------------------  
  5. /u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_8050j3 TEMP  
  6. 4j_.tmp  
  7.   
  8.   
  9. idle> alter tablespace temp add tempfile '+DG1';  
  10.   
  11. Tablespace altered.  
  12.   
  13. idle> select file_name,tablespace_name from dba_temp_files;  
  14.   
  15. FILE_NAME                                               TABLESPACE_NAME  
  16. ------------------------------------------------------- ------------------------------  
  17. +DG1/orcl/tempfile/temp.258.798635383                   TEMP  
  18. /u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_8050j3 TEMP  
  19. 4j_.tmp  
  20.   
  21.   
  22. idle> alter tablespace temp drop tempfile '/u01/app/oracle/oradata/ORCL/datafile/o1_mf_temp_8050j34j_.tmp';  
  23.   
  24. Tablespace altered.  
  25.   
  26. idle> select file_name,tablespace_name from dba_temp_files;  
  27.   
  28. FILE_NAME                                               TABLESPACE_NAME  
  29. ------------------------------------------------------- ------------------------------  
  30. +DG1/orcl/tempfile/temp.258.798635383                   TEMP  


 

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

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

[sql]  view plain copy
  1. idle> show parameter control_files  
  2.   
  3. NAME                                 TYPE        VALUE  
  4. ------------------------------------ ----------- ------------------------------  
  5. control_files                        string      /u01/app/oracle/oradata/ORCL/c  
  6.                                                  ontrolfile/o1_mf_8050hgfp_.ctl  
  7.                                                  , /u01/app/oracle/flash_recove  
  8.                                                  ry_area/ORCL/controlfile/o1_mf  
  9.                                                  _8050hgqh_.ctl  
  10. idle> alter database backup controlfile to '/home/oracle/asmctl02.ctl';  
  11.   
  12. Database altered.  
  13.   
  14. idle> alter system set control_files='+DG1/ORCL/CONTROLFILE/control01','+DG2/ORCL/CONTROLFILE/control02' scope=spfile;  
  15.   
  16. System altered.  
  17.   
  18. idle> shutdown immediate;  
  19. Database closed.  
  20. Database dismounted.  
  21. ORACLE instance shut down.  
  22.   
  23. RMAN> startup nomount;  
  24.   
  25. Oracle instance started  
  26.   
  27. Total System Global Area     419430400 bytes  
  28.   
  29. Fixed Size                     1219760 bytes  
  30. Variable Size                146801488 bytes  
  31. Database Buffers             268435456 bytes  
  32. Redo Buffers                   2973696 bytes  
  33.   
  34. RMAN> restore controlfile from '/home/oracle/asmctl02.ctl';  
  35.   
  36. Starting restore at 06-NOV-12  
  37. using target database control file instead of recovery catalog  
  38. allocated channel: ORA_DISK_1  
  39. channel ORA_DISK_1: sid=156 devtype=DISK  
  40.   
  41. channel ORA_DISK_1: copied control file copy  
  42. output filename=+DG1/orcl/controlfile/control01  
  43. output filename=+DG2/orcl/controlfile/control02  
  44. Finished restore at 06-NOV-12  
  45.   
  46. RMAN> alter database mount;  
  47.   
  48. database mounted  
  49. released channel: ORA_DISK_1  
  50.   
  51. RMAN> backup as copy database format '+DG1';  
  52.   
  53. Starting backup at 06-NOV-12  
  54. using channel ORA_DISK_1  
  55. channel ORA_DISK_1: starting datafile copy  
  56. input datafile fno=00001 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_8050fk2z_.dbf  
  57. output filename=+DG1/orcl/datafile/system.261.798636159 tag=TAG20121106T112238 recid=2 stamp=798636197  
  58. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:45  
  59. channel ORA_DISK_1: starting datafile copy  
  60. input datafile fno=00003 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_8050fk3w_.dbf  
  61. output filename=+DG1/orcl/datafile/sysaux.262.798636203 tag=TAG20121106T112238 recid=3 stamp=798636232  
  62. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35  
  63. channel ORA_DISK_1: starting datafile copy  
  64. input datafile fno=00005 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_8050jhm7_.dbf  
  65. output filename=+DG1/orcl/datafile/example.263.798636239 tag=TAG20121106T112238 recid=4 stamp=798636252  
  66. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15  
  67. channel ORA_DISK_1: starting datafile copy  
  68. input datafile fno=00002 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_8050fkc6_.dbf  
  69. output filename=+DG1/orcl/datafile/undotbs1.264.798636255 tag=TAG20121106T112238 recid=5 stamp=798636257  
  70. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:08  
  71. channel ORA_DISK_1: starting datafile copy  
  72. input datafile fno=00004 name=/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf  
  73. output filename=+DG1/orcl/datafile/users.265.798636261 tag=TAG20121106T112238 recid=6 stamp=798636261  
  74. channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01  
  75. Finished backup at 06-NOV-12  
  76.   
  77. RMAN-06497: WARNING: control file is not current, control file autobackup skipped  
  78.   
  79. RMAN> recover database;  
  80.   
  81. Starting recover at 06-NOV-12  
  82. using channel ORA_DISK_1  
  83.   
  84. starting media recovery  
  85.   
  86. archive log thread 1 sequence 16 is already on disk as file +DG1/orcl/onlinelog/group_5.259.798634795  
  87. archive log filename=+DG1/orcl/onlinelog/group_5.259.798634795 thread=1 sequence=16  
  88. media recovery complete, elapsed time: 00:00:02  
  89. Finished recover at 06-NOV-12  
  90.   
  91. RMAN> switch database to copy;  
  92.   
  93. datafile 1 switched to datafile copy "+DG1/orcl/datafile/system.261.798636159"  
  94. datafile 2 switched to datafile copy "+DG1/orcl/datafile/undotbs1.264.798636255"  
  95. datafile 3 switched to datafile copy "+DG1/orcl/datafile/sysaux.262.798636203"  
  96. datafile 4 switched to datafile copy "+DG1/orcl/datafile/users.265.798636261"  
  97. datafile 5 switched to datafile copy "+DG1/orcl/datafile/example.263.798636239"  
  98.   
  99. RMAN> alter database open resetlogs;  
  100.   
  101. database opened  


 

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

[sql]  view plain copy
  1. sys@ORCL> select name,status from v$datafile;  
  2.   
  3. NAME                                               STATUS  
  4. -------------------------------------------------- -------  
  5. +DG1/orcl/datafile/system.261.798636159            SYSTEM  
  6. +DG1/orcl/datafile/undotbs1.264.798636255          ONLINE  
  7. +DG1/orcl/datafile/sysaux.262.798636203            ONLINE  
  8. +DG1/orcl/datafile/users.265.798636261             ONLINE  
  9. +DG1/orcl/datafile/example.263.798636239           ONLINE  
  10.   
  11. sys@ORCL> select name from v$controlfile;  
  12.   
  13. NAME  
  14. --------------------------------------------------  
  15. +DG1/orcl/controlfile/control01  
  16. +DG2/orcl/controlfile/control02  
  17.   
  18. sys@ORCL> select member from v$logfile;  
  19.   
  20. MEMBER  
  21. ----------------------------------------------------------------------------------------------------  
  22. +DG1/orcl/onlinelog/group_4.256.798634749  
  23. +DG2/orcl/onlinelog/group_4.256.798634753  
  24. +DG1/orcl/onlinelog/group_5.259.798634795  
  25. +DG2/orcl/onlinelog/group_5.259.798634801  
  26. +DG1/orcl/onlinelog/group_6.260.798634825  
  27. +DG2/orcl/onlinelog/group_6.260.798634829  
  28.   
  29. rows selected.  
  30.   
  31. sys@ORCL> select name,status from v$tempfile;  
  32.   
  33. NAME                                               STATUS  
  34. -------------------------------------------------- -------  
  35. +DG1/orcl/tempfile/temp.258.798635383              ONLINE  


    ⑦ 最后验证

[sql]  view plain copy
  1. idle> startup  
  2. ASM instance started  
  3.   
  4. Total System Global Area   83886080 bytes  
  5. Fixed Size                  1217836 bytes  
  6. Variable Size              57502420 bytes  
  7. ASM Cache                  25165824 bytes  
  8. ASM diskgroups mounted  
  9.   
  10. sys@ORCL> startup  
  11. ORACLE instance started.  
  12.   
  13. Total System Global Area  419430400 bytes  
  14. Fixed Size                  1219760 bytes  
  15. Variable Size             150995792 bytes  
  16. Database Buffers          264241152 bytes  
  17. Redo Buffers                2973696 bytes  
  18. Database mounted.  
  19. Database opened.  
  20.   
  21. ASMCMD> lsct  
  22. DB_Name   Status        Software_Version  Compatible_version  Instance_Name  
  23. orcl      CONNECTED           10.2.0.1.0          10.2.0.1.0  orcl  
  24. orcl      CONNECTED           10.2.0.1.0          10.2.0.1.0  orcl  


    小结

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

        ⑴ 多增加了2个磁盘组,多了份故障保证,但由于空间方面,还是选择了external ASM
        ⑵ 对spfile没有进行迁移
        ⑶ 对控制文件也作了多路镜像:+DG1和+DG2

 

    Good luck

         by Think

    2012/11/6


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值