【RAC】RAC本地資料檔案遷移至ASM的方法(1)

xysoul_雲龍發表於2015-06-11

RAC本地資料檔案遷移至ASM的方法(1

一、         概述
   目前在各個行業業務中存在大量的Oracle RAC環境,尤其對於中小型企業及一些管理不規範的環境中,對資料庫的操作也就顯得雜亂無章了,它不是核心系統,但有問題也夠運維人員喝一壺的。下面說一個常見的問題,就是在RAC環境中,往往會遇到本地資料檔案,也就是隻能在一個節點訪問,出現這樣的狀況,主要有兩個原因,命名不規範,造成Oracle自動建立到DBS目錄下,再個對RAC系統不瞭解,按照之前方式建立。那麼在出現這個問題時怎麼解決呢,下面我們簡單學習一下。

二、操作過程
    
本次操作物件為非系統表空間,環境rhel6.3_x64+Oracle RAC11g
1
RAC為歸檔模式,不停庫,透過Oracle11g asmcmd cp命令,操作。
   
首先模擬環境:

SQL> create tablespace firsoul datafile 'firsoul01.dbf' size 10m;

 

Tablespace created.

 

SQL> select file_name from dba_data_files;

 

FILE_NAME

--------------------------------------------------------------------------------

+DATA/racdb/datafile/system.293.859438573

………………………………
/oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf

 

節點1,檢視資料檔案狀態、資訊

SQL> set lines 150                                                                      

SQL> col file_name for a55                                                              

SQL> select file_name,file_id,ONLINE_STATUStablespace_name from dba_data_files;       

                                                                                        

FILE_NAME                                              FILE_ID ONLINE_ TABLESPACE_NAME  

-------------------------------------------------------------- ------- ---------------- 

+DATA/racdb/datafile/system.293.859438573                    1 SYSTEM  SYSTEM           

+DATA/racdb/datafile/sysaux.288.859438589                    2 ONLINE  SYSAUX           

+DATA/racdb/datafile/undotbs1.287.859438601                  3 ONLINE  UNDOTBS1         

+DATA/racdb/datafile/undotbs2.285.859438615                  4 ONLINE  UNDOTBS2         

+DATA/racdb/datafile/users.278.859438619                     5 ONLINE  USERS            

+DATA/racdb/datafile/test1.261.859451689                     6 ONLINE  TEST1            

/oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf         11 ONLINE  FIRSOUL          


節點2,檢視資料檔案狀態,資訊

SQL> set lines 200

SQL> col file_name for a50

SQL> col tablespace_name for a10

SQL> select file_name,file_id,ONLINE_STATUS,tablespace_name from dba_data_files;

ERROR:

ORA-01157: cannot identify/lock data file 11 - see DBWR trace file

ORA-01110: data file 11: '/oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf '


將本地資料檔案OFFLINE,或可以將整個表空間OFFLINE

SQL> alter database datafile 11 offline;

Database altered.


透過ASMCMD CP命令複製資料檔案

ASMCMD> cp /oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf .

copying /oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf -> +data/racdb/datafile/firsoul01.dbf

ASMCMD> ls -lrt

WARNING:option 'r' is deprecated for 'ls'

please use 'reverse'

 

Type      Redund  Striped  Time             Sys  Name

                                            N    firsoul01.dbf => +DATA/ASM/DATAFILE/firsoul01.dbf.260.882071123

DATAFILE  UNPROT  COARSE   JUN 11 09:00:00  Y    SYSAUX.288.859438589

DATAFILE  UNPROT  COARSE   JUN 11 09:00:00  Y    SYSTEM.293.859438573

DATAFILE  UNPROT  COARSE   JUN 11 09:00:00  Y    TEST1.261.859451689

DATAFILE  UNPROT  COARSE   JUN 11 09:00:00  Y    UNDOTBS1.287.859438601

DATAFILE  UNPROT  COARSE   JUN 11 09:00:00  Y    UNDOTBS2.285.859438615

DATAFILE  UNPROT  COARSE   JUN 11 09:00:00  Y    USERS.278.859438619


rename資料檔案,並檢視資訊

SQL> alter database rename file '/oracle/app/oracle/product/11.2.0/dbs/firsoul01.dbf' to '+data/racdb/datafile/firsoul01.dbf';

 

Database altered.
SQL> select file_name,file_id,ONLINE_STATUS
tablespace_name from dba_data_files

  2  ;

 

FILE_NAME                                                  FILE_ID ONLINE_ TABLESPACE_NAME

------------------------------------------------------- ---------- ------- ------------------------------

+DATA/racdb/datafile/system.293.859438573                        1 SYSTEM  SYSTEM

+DATA/racdb/datafile/sysaux.288.859438589                        2 ONLINE  SYSAUX

……………………

+DATA/racdb/datafile/firsoul01.dbf                              11 RECOVER FIRSOUL

 

我們可以看到,資料檔案已移植到ASM中,但需要recover

SQL> alter database datafile 11 online;

alter database datafile 11 online

*

ERROR at line 1:

ORA-01113: file 11 needs media recovery

ORA-01110: data file 11: '+DATA/racdb/datafile/firsoul01.dbf'


recover資料檔案,再次將資料檔案online

SQL> recover datafile  11;

Media recovery complete.

SQL> alter database datafile 11 online;

 

Database altered.

 

SQL> set lines 150

SQL> col file_name for a55

SQL> select file_name,file_id,ONLINE_STATUStablespace_name from dba_data_files;

 

FILE_NAME                                                  FILE_ID ONLINE_ TABLESPACE_NAME

------------------------------------------------------- ---------- ------- ------------------------------

+DATA/racdb/datafile/system.293.859438573                        1 SYSTEM  SYSTEM

+DATA/racdb/datafile/sysaux.288.859438589                        2 ONLINE  SYSAUX

…………
+DATA/racdb/datafile/firsoul01.dbf                              11 ONLINE  FIRSOUL


兩個節點檢視,都正常。

三、         總結
  
Oracle RAC操作過程中,我們更需要嚴謹,對於非系統表空間可以不用啟停資料庫,不過需要檢視資料庫系統是是否歸檔模式,資料庫版本,選擇更合理的遷移方式。

 

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

相關文章