aix 下 oracle 11.2 rac 在同一臺機器上把資料遷移到新儲存

zhengbao_jun發表於2015-05-21

環境:aix主機 oracle 11.2.0.3 rac

主機不更換,只是把資料庫遷移到新的儲存
原有的dg:griddg是ocr和vote使用的dg ,datadg是資料檔案使用的dg
新的儲存dg:gridnewdg是ocr和vote使用的dg,newdatadg是資料檔案使用的dg
1.在新儲存劃分空間,然後主機識別磁碟
#cfgmgr
2.更改磁碟屬性 
reserve_policy根據儲存廠家決定 ibm:no_reserve,可以去oracle support查詢各個廠家怎麼更改
3.chown grid:asmadmin /dev/rhdiskn
4.建立新的磁碟組
使用grid使用者
 $asmca
5.遷移ocr file,先新增,後刪除
su - root
# /u01/11.2.0/grid/bin/ocrconfig -add '+gridnewdg' 
#ocrconfig -delete +griddg
6.遷移vote檔案
su - grid
$ crsctl replace votedisk '+gridnewdg'
Successful addition of voting disk 3f4020905f184ff4bff57bd6e635331b.
Successful deletion of voting disk 8a7dd049391f4f41bf97b4414ee73bb2.
Successfully replaced voting disk group with +gridnewdg.
CRS-4266: Voting file(s) successfully replaced
7.遷移 asm使用的引數檔案
su - grid
sql> create pfile='/tmp/pfile.txt' from spfile;
sql> create spfile='+gridnewdg' from pfile='/tmp/pfile.txt'
把兩臺機器的has全部重新啟動,檢視spfile是否已經遷移過去
每臺機器都要執行
 # /u01/11.2.0/grid/bin/crsctl stop has
  # /u01/11.2.0/grid/bin/crsctl start has
然後關閉兩個例項
su - oracle
sqlplus / as sysdba
shutdown immediate

8.遷移控制檔案:
su - oracle
查詢正在使用的控制檔案
sql>startup nomount;
RMAN> restore controlfile to '+newdatadg' from '+DATADG/rac/controlfile/current.256.801769687';
9.更改引數檔案
 alter system set control_files='+newdatadg/rac/controlfile/current.256.802020205' scope=spfile;
10.重新啟動例項到mount狀態
 sql>startup mount
 sql>show parameters control_file
 11.遷移資料庫資料到新的dg,可以分配多個通道來增加遷移資料檔案的速度
 rman >run
 {allocate channel c1 type disk;
 allocate channel c2 type disk;
 allocate channel c3 type disk;
 backup as copy database format '+newdatadg';
 }
 11.把資料庫資料檔案指向新的儲存
 rman>switch database to copy;
 
 12.開啟資料庫
 sql>alter database open;
 把另外一個節點起來,否則另外節點的redo不能刪除。
 sql>startup

 13.把redo新增新的成員,刪除老的成員,
 檢視原來有多少組,就新增多少成員
 alter database add logfile member '+newdatadg' to group 1;
 alter database add logfile member '+newdatadg' to group 2;
 alter database add logfile member '+newdatadg' to group 3;
 alter database add logfile member '+newdatadg' to group 4;

使用如下方法刪除redo成員
 alter database drop logfile member '+DATADG/rac/onlinelog/group_3.265.801770831'
 
 14.更改資料庫的引數檔案
su - oracle
 create pfile=/tmp/pfile.txt' from spfile;
 create spfile='+newdatadg/rac/spfile' from pfile='/tmp/pfile.txt'
上邊的 在一臺主機更改,下邊的在兩臺主機都要更改
 vi $ORACLE_HOME/dbs/intrac1.ora
 spfile=+newdatadg/rac/spfile
 重新啟動庫檢視是否更改
 15 新增臨時檔案,刪除原來dg的臨時檔案
 SQL> select file_name from dba_temp_files;
 查詢臨時檔案位置
 
 alter tablespace temp add tempfile '+newdatadg' size 2000M;
 
 刪除原有dg的臨時檔案
 alter database tempfile '+DATADG/rac/tempfile/temp.262.801769711' drop;
至此,一個把資料從一個儲存遷移到另外一個儲存的試驗全部完成。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/235507/viewspace-1664896/,如需轉載,請註明出處,否則將追究法律責任。

相關文章