《File system migrate to ASM 完整實作詳盡步驟》

摘要:《File system migrate to ASM 完整實作詳盡步驟》

2009/7/8 ~ 2009/7/12

1.

先建立 css 服務

C:\>localconfig
usage:  crssetup 
                  config   - configure and startup the cluster on nodes
                  add      - add specified nodes to the cluster
                  del      - delete the specified nodes from the cluster
                  deconfig - wipe out all cluster configuration information
                  ldel     - local css delete from oracle home
                  lres     - local css home reset to new oracle home
                  ladd     - local css add to oracle home
                  shutdown - shutdown the selected nodes
                  upgrade  - upgrade the specified nodes
                  help     - print out this information
C:\>localconfig add
Step 1:  creating new OCR repository
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'administrator', privgrp ''..
Operation successful.
Step 2:  creating new CSS service
successfully created local CSS service
successfully added CSS to home
C:\>

2. 建立 ASM Instance service 及密碼檔

C:\>oradim -new -asmsid +ASM
執行處理已建立.
C:\>orapwd
Usage: orapwd file= password= entries= force=
  where
    file - name of password file (mand),
    password - password for SYS (mand),
    entries - maximum number of distinct DBA and     force - whether to overwrit
e existing file (opt),
OPERs (opt),
  There are no spaces around the equal-to (=) character.
C:\>orapwd file="c:\oracle\product\10.2.0\db_a\database\pwd+ASM.ora" password="change_on_install" entries=5
C:\>

3. 建立 ASM 的各個目錄結構

C:\oracle\admin\ASM\bdump
C:\oracle\admin\ASM\cdump
C:\oracle\admin\ASM\udump
C:\oracle\admin\ASM\pfile

 

4. 建立ASM 必須的參數檔 init+ASM.ora

 

*.background_dump_dest='C:\oracle\admin\ASM\bdump'
*.core_dump_dest='C:\oracle\admin\ASM\cdump'
*.user_dump_dest='C:\oracle\admin\ASM\udump'
*.instance_name='+ASM'
*.instance_type='ASM'

5.

C:\>set oracle_sid
ORACLE_SID=+ASM
C:\>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 7月 8 19:57:03 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn sys as sysdba
輸入密碼:
連線至閒置的執行處理.
SQL> startup
已啟動 ASM 執行處理
Total System Global Area   79691776 bytes
Fixed Size                  1247396 bytes
Variable Size              53278556 bytes
ASM Cache                  25165824 bytes
ORA-15110: ???????
SQL> select *from V$asm_diskgroup;
沒有任何資料列被選取
SQL> select *from v$asm_disk;
沒有任何資料列被選取
SQL> create diskgroup ASMGroup1 normal redundancy
  2  failgroup fg1 disk 'c:\asmgroup\asmdisk1' name AG1
  3  failgroup fg2 disk 'c:\asmgroup\asmdisk2' name AG2;
create diskgroup ASMGroup1 normal redundancy
*
 ERROR 在行 1:
ORA-15018: ????????
ORA-15031: ????? 'c:\asmgroup\asmdisk2' ???????
ORA-15014: ?? 'C:\ASMGROUP\ASMDISK2' ??????
ORA-15031: ????? 'c:\asmgroup\asmdisk1' ???????
ORA-15014: ?? 'C:\ASMGROUP\ASMDISK1' ??????
SQL> show parameter asm
NAME                    TYPE          VALUE
----------------------- ------------  ------------------------------
asm_diskgroups             string
asm_diskstring             string
asm_power_limit            integer     1
SQL> alter system set asm_diskstring='c:\asmgroup\asmdisk1','c:\asmgroup\asmdisk';
已更改系統.
SQL> create diskgroup ASMGroup1 normal redundancy
  2  failgroup fg1 disk 'c:\asmgroup\asmdisk1' name AG1
  3  failgroup fg2 disk 'c:\asmgroup\asmdisk2' name AG2;
已建立磁碟群組.
SQL> col name format a10
SQL> col state format a10
SQL> col type format a10
SQL> select name,state,type,total_mb,free_mb from v$asm_diskgroup;
NAME       STATE      TYPE         TOTAL_MB    FREE_MB
---------- ---------- ---------- ---------- ----------
ASMGROUP1  MOUNTED    NORMAL          20472      20370
SQL> col disk_number format 99
SQL> col path format a30
SQL> select disk_number,name,path from v$asm_disk;
DISK_NUMBER NAME       PATH
----------- ---------- ------------------------------
          0 AG1        C:\ASMGROUP\ASMDISK1
          1 AG2        C:\ASMGROUP\ASMDISK2
C:\>set oracle_sid
ORACLE_SID=+ASM
C:\>set oracle_sid=oraclea
C:\>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 7月 8 20:29:02 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn sys as sysdba
輸入密碼:
已連線.
SQL> alter system set control_files='+ASMGroup1\control01.ctl','+ASMGroup1\control
02.ctl','+ASMGroup1\control03.ctl' scope=spfile;
已更改系統.
SQL> shutdown immediate
ORA-01507: ??????

已關閉 ORACLE 執行處理.
SQL> startup nomount
SQL> exit
已切斷與 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 的連線
C:\>rman
復原管理員: Release 10.2.0.1.0 - Production on 星期三 7月 8 20:38:03 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
RMAN> connect target sys
目標資料庫密碼:
連線至目標資料庫: OracleA (未掛載)
RMAN> restore controlfile from 'c:\oracle\oradata\oraclea\control01.ctl';
開始 restore, 於 08-7月 -09
使用目標資料庫控制檔替代復原目錄
配置的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
RMAN-00571: ===============================================================
RMAN-00569: ================ ERROR MESSAGE STACK FOLLOWS===================
RMAN-00571: ===============================================================
RMAN-03002: restore 命令於07/06/2009 20:54:46 失敗
ORA-19504: 無法建立檔案 "+ASMGROUP1/control.ctl"
ORA-17502: ksfdcre:4 無法建立檔案 +ASMGROUP1/control01.ctl
ORA-15055: 無法連線 ASM 執行處理
ORA-01031: insufficient privileges
ORA-15055: 無法連線 ASM 執行處理
ORA-01031: insufficient privileges
ORA-19600: 輸入檔是 control file (C:\ORACLE\ORADATA\ORACLEA\CONTROL01.CTL)
ORA-19601: 輸出檔是 control file (+ASMGROUP1/control01.ctl)
RMAN> exit;
C:\>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 7月 8 21:05:07 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn sys as sysdba
輸入密碼:
已連線.
SQL> create spfile from pfile;
已建立檔案.
SQL> show parameter compatible
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
compatible                           string
9.2.0.0.0
SQL> alter system set compatible='10.2.0.0.0' scope=spfile;
已更改系統.
SQL> shutdown immediate
ORA-01507: ??????

已關閉 ORACLE 執行處理.
SQL> startup nomount
ORA-19905: log_archive_format must contain %s, %t and %r
SQL> startup nomount pfile='c:\oracle\product\10.2.0\db_a\database\bkinitoraclea
.ORA';
ORA-19905: log_archive_format must contain %s, %t and %r
SQL> shutdown immediate
ORA-01012: not logged on
SQL> conn sys as sysdba
輸入密碼:
連線至閒置的執行處理.
SQL> startup nomount
ORA-19905: log_archive_format must contain %s, %t and %r
---------------------------------------------------------
-- 修改 pfile 的 compatible 及 log_archive_format
---------------------------------------------------------
SQL> startup nomount pfile='c:\oracle\product\10.2.0\db_a\database\bkinitoraclea
.ORA';
ORACLE 執行處理已啟動.
Total System Global Area  335544320 bytes
Fixed Size                  1248864 bytes
Variable Size             306184608 bytes
Database Buffers           25165824 bytes
Redo Buffers                2945024 bytes
SQL> alter system set compatible='10.2.0.0.0' scope=spfile;
alter system set compatible='10.2.0.0.0' scope=spfile
*
 ERROR 在行 1:
ORA-32001: ?? SPFILE ???????????? SPFILE

SQL> create spfile from pfile;
已建立檔案.
SQL> shutdown immediate
ORA-01507: ??????
已關閉 ORACLE 執行處理.
SQL> startup nomount
ORACLE 執行處理已啟動.
Total System Global Area  335544320 bytes
Fixed Size                  1248864 bytes
Variable Size             306184608 bytes
Database Buffers           25165824 bytes
Redo Buffers                2945024 bytes
SQL> alter system set compatible='10.2.0.0.0' scope=spfile;
已更改系統.
SQL> show parameter log_archive_format
NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
log_archive_format                   string
ARC%S.%T
SQL> alter system set log_archive_format='ARC%S%R.%T' scope=spfile;
已更改系統.
SQL> shutdown immediate
ORA-01507: ??????

已關閉 ORACLE 執行處理.
SQL> startup nomount
ORACLE 執行處理已啟動.
Total System Global Area  335544320 bytes
Fixed Size                  1248864 bytes
Variable Size             306184608 bytes
Database Buffers           25165824 bytes
Redo Buffers                2945024 bytes
SQL> exit
已切斷與 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 的連線
C:\>rman
復原管理員: Release 10.2.0.1.0 - Production on 星期三 7月 8 20:38:03 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
RMAN> connect target sys
目標資料庫密碼:
連線至目標資料庫: OracleA (未掛載)
RMAN> restore controlfile from 'c:\oracle\oradata\oraclea\control01.ctl';
開始 restore, 於 08-7月 -09
使用目標資料庫控制檔替代復原目錄
配置的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 已複製控制檔複本
輸出檔案名稱=C:\ORACLE\ORADATA\ORACLEA\CONTROL01.CTL
輸出檔案名稱=C:\ORACLE\ORADATA\ORACLEA\CONTROL02.CTL
輸出檔案名稱=C:\ORACLE\ORADATA\ORACLEA\CONTROL03.CTL
完成 restore, 於 08-7月 -09
RMAN> exit

「復原管理員」已經完成.
C:\>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 7月 8 21:15:38 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn sys as sysdba
輸入密碼:
已連線.
SQL> shutdown immediate
ORA-01507: ??????

已關閉 ORACLE 執行處理.
SQL> startup nomount
ORACLE 執行處理已啟動.
Total System Global Area  335544320 bytes
Fixed Size                  1248864 bytes
Variable Size             306184608 bytes
Database Buffers           25165824 bytes
Redo Buffers                2945024 bytes
SQL> show parameter db_create
NAME                                 TYPE        VALUE
------------------------------------ ----------- -----------------------------
db_create_file_dest                  string
db_create_online_log_dest_1          string
db_create_online_log_dest_2          string
db_create_online_log_dest_3          string
db_create_online_log_dest_4          string
db_create_online_log_dest_5          string
SQL> alter system set db_create_file_dest='+ASMGROUP1' scope=spfile;
已更改系統.
SQL> alter system set db_create_online_log_dest_1='+ASMGROUP1' scope=spfile;
已更改系統.
SQL> alter system set db_create_online_log_dest_2='+ASMGROUP1' scope=spfile;
已更改系統.
SQL> alter system set db_create_online_log_dest_3='+ASMGROUP1' scope=spfile;
已更改系統.
SQL> alter system set db_create_online_log_dest_4='+ASMGROUP1' scope=spfile;
已更改系統.
SQL> alter system set db_create_online_log_dest_5='+ASMGROUP1' scope=spfile;
已更改系統.
SQL> shutdown immediate
ORA-01507: ??????

已關閉 ORACLE 執行處理.
SQL> startup nomount
ORACLE 執行處理已啟動.
Total System Global Area  335544320 bytes
Fixed Size                  1248864 bytes
Variable Size             306184608 bytes
Database Buffers           25165824 bytes
Redo Buffers                2945024 bytes
SQL> exit
已切斷與 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 的連線
C:\>rman
復原管理員: Release 10.2.0.1.0 - Production on 星期日 7月 12 23:11:05 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
RMAN> connect target sys
目標資料庫密碼:
連線至目標資料庫: OracleA (未掛載)
RMAN> restore controlfile from 'c:\oracle\oradata\oraclea\control01.ctl';
開始 restore, 於 12-7月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 已複製控制檔複本
輸出檔案名稱=C:\ORACLE\ORADATA\ORACLEA\CONTROL01.CTL
輸出檔案名稱=C:\ORACLE\ORADATA\ORACLEA\CONTROL02.CTL
輸出檔案名稱=C:\ORACLE\ORADATA\ORACLEA\CONTROL03.CTL
完成 restore, 於 12-7月 -09
RMAN> alter database mount;
已掛載資料庫
釋出的通道: ORA_DISK_1
RMAN> backup as copy database format '+ASMGROUP1';
開始 backup, 於 12-7月 -09
配置的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00001 名稱=C:\ORACLE\ORADATA\ORACLEA\SYSTEM01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/system.256.692061321 標記=TAG20090712T2
31508 recid=1 戳記=692061394
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:01:26
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00002 名稱=C:\ORACLE\ORADATA\ORACLEA\UNDOTBS01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/undotbs1.257.692061397 標記=TAG20090712
T231508 recid=2 戳記=692061462
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:01:16
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00013 名稱=C:\ORACLE\PRODUCT\10.2.0\DB_A\DATABASE\SYSAUX01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/sysaux.258.692061473 標記=TAG20090712T2
31508 recid=3 戳記=692061529
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:01:06
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00005 名稱=C:\ORACLE\ORADATA\ORACLEA\EXAMPLE01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/example.259.692061539 標記=TAG20090712T
231508 recid=4 戳記=692061558
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:26
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00011 名稱=C:\ORACLE\ORADATA\ORACLEA\ORATEXT01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/oratext.260.692061565 標記=TAG20090712T
31508 recid=5 戳記=692061577
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:16
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00010 名稱=C:\ORACLE\ORADATA\ORACLEA\XDB01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/xdb.261.692061581 標記=TAG20090712T2315
8 recid=6 戳記=692061586
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:07
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00006 名稱=C:\ORACLE\ORADATA\ORACLEA\INDX01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/indx.262.692061589 標記=TAG20090712T231
508 recid=7 戳記=692061591
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:08
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00009 名稱=C:\ORACLE\ORADATA\ORACLEA\USERS01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/users.263.692061595 標記=TAG20090712T23
1508 recid=8 戳記=692061598
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:08
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00003 名稱=C:\ORACLE\ORADATA\ORACLEA\CWMLITE01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/cwmlite.264.692061605 標記=TAG20090712T
231508 recid=9 戳記=692061607
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:08
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00004 名稱=C:\ORACLE\ORADATA\ORACLEA\DRSYS01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/drsys.265.692061611 標記=TAG20090712T23
1508 recid=10 戳記=692061614
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:07
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00007 名稱=C:\ORACLE\ORADATA\ORACLEA\ODM01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/odm.266.692061619 標記=TAG20090712T2315
08 recid=11 戳記=692061622
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:04
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00008 名稱=C:\ORACLE\ORADATA\ORACLEA\TOOLS01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/tools.267.692061623 標記=TAG20090712T23
1508 recid=12 戳記=692061624
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:06
通道 ORA_DISK_1: 開始資料檔複製
輸入資料檔 fno=00012 名稱=C:\ORACLE\ORADATA\ORACLEA\TINGSPACE01.DBF
輸出檔案名稱=+ASMGROUP1/oraclea/datafile/tingspace.268.692061629 標記=TAG2009071
2T231508 recid=13 戳記=692061630
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:03
通道 ORA_DISK_1: 開始資料檔複製
正在複製目前的控制檔
輸出檔案名稱=+ASMGROUP1/oraclea/controlfile/backup.269.692061633 標記=TAG2009071
2T231508 recid=14 戳記=692061633
通道 ORA_DISK_1: 資料檔複製完成, 經歷時間: 00:00:04
通道 ORA_DISK_1: 啟動完整資料檔備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔
在備份集中包括目前的 SPFILE
通道 ORA_DISK_1: 啟動部份 1, 在 12-7月 -09
通道 ORA_DISK_1: 已完成部份 1, 在 12-7月 -09
片段處理=+ASMGROUP1/oraclea/backupset/2009_07_12/nnsnf0_tag20090712t231508_0.270
.692061637 標記=TAG20090712T231508 註解=NONE
通道 ORA_DISK_1: 備份集完成, 經歷時間: 00:00:02
完成 backup, 於 12-7月 -09
RMAN> switch database to copy;
資料檔 1 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/system.256.692061321"
資料檔 2 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/undotbs1.257.692061397"
資料檔 3 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/cwmlite.264.692061605"
資料檔 4 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/drsys.265.692061611"
資料檔 5 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/example.259.692061539"
資料檔 6 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/indx.262.692061589"
資料檔 7 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/odm.266.692061619"
資料檔 8 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/tools.267.692061623"
資料檔 9 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/users.263.692061595"
資料檔 10 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/xdb.261.692061581"
資料檔 11 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/oratext.260.692061565"
資料檔 12 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/tingspace.268.692061629"
資料檔 13 已切換至資料檔複本 "+ASMGROUP1/oraclea/datafile/sysaux.258.692061473"
RMAN> alter database open;
已開啟資料庫
RMAN> exit

「復原管理員」已經完成.
C:\>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 7月 12 23:24:21 2009
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn sys as sysdba
輸入密碼:
已連線.
SQL> select group#,status,bytes from v$log;
    GROUP# STATUS                BYTES
---------- ---------------- ----------
         1 INACTIVE          104857600
         2 CURRENT           104857600
         3 INACTIVE          104857600
SQL> alter database add logfile group 4 '+ASMGROUP1' size 5M;
已更改資料庫.
SQL> alter database add logfile group 5 '+ASMGROUP1' size 5M;
已更改資料庫.
SQL> alter database add logfile group 6 '+ASMGROUP1' size 5M;
已更改資料庫.
SQL> alter system switch logfile;
已更改系統.
SQL> alter system switch logfile;
已更改系統.
SQL> alter system switch logfile;
已更改系統.
SQL> select group#,status,bytes from v$log;
    GROUP# STATUS                BYTES
---------- ---------------- ----------
         1 INACTIVE          104857600
         2 INACTIVE          104857600
         3 INACTIVE          104857600
         4 ACTIVE              5242880
         5 ACTIVE              5242880
         6 CURRENT             5242880
已選取 6 個資料列.
SQL> alter database drop logfile group 1;
已更改資料庫.
SQL> alter database drop logfile group 2;
已更改資料庫.
SQL> alter database drop logfile group 3;
已更改資料庫.
SQL> alter database add logfile group 1 '+ASMGROUP1' size 5M;
已更改資料庫.
SQL> alter database add logfile group 2 '+ASMGROUP1' size 5M;
已更改資料庫.
SQL> alter database add logfile group 3 '+ASMGROUP1' size 5M;
已更改資料庫.
-- 到此為止整個切換過程可以說是正式完結
-- 據oracle 文件上說明,所有oracle的檔案,如data file、control file、log file,都可以放到ASM中。