摘要:《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中。