RAC 10g下從裸裝置遷移到ASM

hooca發表於2016-02-05
OS:OL4.8 64bit
DB:Oracle 10.2.0.5

1. 遷移控制檔案

點選(此處)摺疊或開啟

  1. SQL> alter system set control_files='+DATA' scope=spfile;
啟動到nomount模式

點選(此處)摺疊或開啟

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb -o nomount
還原控制檔案

點選(此處)摺疊或開啟

  1. ///dev/raw/raw13是原控制檔案路徑
  2. RMAN> restore controlfile from '/dev/raw/raw13';
啟動到mount模式

點選(此處)摺疊或開啟

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb -o mount

2. 遷移資料檔案

點選(此處)摺疊或開啟

  1. rman target /
  2. RMAN> backup as copy database format='+DATA';
  3. RMAN> switch database to copy; //切換資料檔案
啟動資料庫

點選(此處)摺疊或開啟

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb
3. 遷移日誌檔案

點選(此處)摺疊或開啟

  1. alter database add logfile member '+DATA' to group 1;
  2. alter database add logfile member '+DATA' to group 2;
  3. alter database add logfile member '+DATA' to group 3;
  4. alter database add logfile member '+DATA' to group 4;

  5. //交替使用以下兩條命令,刪除舊的redo log
  6. alter system switch logfile;
  7. alter database drop logfile member '/dev/raw/raw16'

4. 遷移臨時表空間

點選(此處)摺疊或開啟

  1. #新建臨時表空間替換舊的
  2. create temporary tablespace temp2 tempfile '+DATA' size 200M;
  3. alter database default temporary tablespace temp2;
  4. drop tablespace temp;
5. 歸檔日誌遷移

建議指定FRA(db_recovery_file_dest)

6. 遷移spfile

難度頗大,我做的時候發現僅僅遷移spfile後再更改init<SID>.ora中的spfile指向,無法奏效。具體表現為,
當單例項使用常規方式啟動,spfile確實使用了新位置的spfile,但使用srvctl啟動database,仍然使用原來的
spfile。原因是在建立database資源時,就已指定了spfile引數的路徑。如下所示,


點選(此處)摺疊或開啟

  1. $ srvctl config database -d racdb -a
  2. node1 racdb1 /u01/app/oracle/product/10.2.0/db_1
  3. node2 racdb2 /u01/app/oracle/product/10.2.0/db_1
  4. DB_UNIQUE_NAME: racdb
  5. DB_NAME: racdb
  6. ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
  7. SPFILE: /dev/raw/raw3
  8. DOMAIN: null
  9. DB_ROLE: null
  10. START_OPTIONS: null
  11. POLICY: AUTOMATIC
  12. ENABLE FLAG: DB ENABLED
正確做法參考這篇文章(感謝作者):http://blog.csdn.net/evils798/article/details/18014645

在open狀態下,建立新的spfile

點選(此處)摺疊或開啟

  1. #建立新的spfile
  2. create pfile='/home/oracle/initracdb.ora' from spfile;
  3. create spfile='+DATA' from pfile='/home/oracle/initracdb.ora';
定位到新的spfile

點選(此處)摺疊或開啟

  1. 找到新的spfile
  2. export ORACLE_SID=+ASM2
  3. asmcmd

  4. ASMCMD> pwd
  5. +DATA/RACDB/PARAMETERFILE
  6. ASMCMD> ls
  7. spfile.271.902999477
可以在asmcmd中建立spfile的連結

點選(此處)摺疊或開啟

  1. mkalias +DATA/RACDB/PARAMETERFILE/spfile.271.902999477 +DATA/RACDB/spfileracdb.ora
修改RAC資源中的spfile引數

點選(此處)摺疊或開啟

  1. $ srvctl modify database -d racdb -p +DATA/RACDB/spfileracdb.ora

  2. $ srvctl config database -d racdb -a
  3. node1 racdb1 /u01/app/oracle/product/10.2.0/db_1
  4. node2 racdb2 /u01/app/oracle/product/10.2.0/db_1
  5. DB_UNIQUE_NAME: racdb
  6. DB_NAME: racdb
  7. ORACLE_HOME: /u01/app/oracle/product/10.2.0/db_1
  8. SPFILE: +DATA/RACDB/spfileracdb.ora
  9. DOMAIN: null
  10. DB_ROLE: null
  11. START_OPTIONS: null
  12. POLICY: AUTOMATIC
  13. ENABLE FLAG: DB ENABLED
分別在兩節點上修改spfile路徑


點選(此處)摺疊或開啟

  1. vi $ORACLE_HOME/dbs/initracdb[n].ora

  2. SPFILE='+DATA/RACDB/spfileracdb.ora'

重啟資料庫

點選(此處)摺疊或開啟

  1. srvctl stop database -d racdb -o immediate
  2. srvctl start database -d racdb
確認spfile路徑


點選(此處)摺疊或開啟

  1. SQL> show parameter spfile;

  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. spfile string +DATA/racdb/spfileracdb.ora

完成!

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

相關文章