12c pdb線上移動資料檔案或者重新命名資料檔案

abin1703發表於2018-05-30
1   PDB資料檔案的線上移動和重新命名                                                                                                                                                                                                                                                                                                                            
在Oracle 12C之前版本中,資料檔案的線上重新命名與位置的變動,都需要在資料檔案處在offline狀態下進行(system表空間除外),
在資料檔案移動過程中會產生額外的歸檔日誌用於在資料檔案移動後恢復。而從Oracle 12C開始,資料檔案均可線上進行移動和重新命名,
包括system資料檔案,這大大降低了在資料檔案移動過程中的風險,同時提高了正對較大資料檔案移動中造成額外的歸檔壓力。


1、移動內容
將全部放在SASDG2磁碟組上的資料檔案分開放在sasdg1磁碟組上。


將'+SASDG2/crmzcdb/datafile/sjjh_data.799.976178647'    遷移到  '+SASDG1/GSDX002/6C687FF43E4184E0E053040C9487671E/DATAFILE/sjjh_data.799.dbf' 上




2、遷移過程
SQL> alter database move datafile '+SASDG2/crmzcdb/datafile/sjjh_data.799.976178647' to '+SASDG1/GSDX002/6C687FF43E4184E0E053040C9487671E/DATAFILE/sjjh_data.799.976178647';


ERROR at line 1:                                                                                                                      
                                                                                                                                                                                                                                                                                                                                                                                                            
ORA-01276: Cannot add file +SASDG1/crmzcdb/datafile/sjjh_data.799.976178647.  File has an Oracle Managed Files file name.


SQL> host oerr ora 1276                                                         
                                                                                   
01276, 00000, "Cannot add file %s.  File has an Oracle Managed Files file name."
                                                                                
// *Cause: An attempt was made to add to the database a datafile, log file,     
                                                                                
//         control file, snapshot control file, backup control file,            
                                                                                
//         datafile copy, control file copy or backuppiece with an Oracle       
                                                                                
//         Managed Files file name.                                             
                                                                                
// *Action: Retry the operation with a new file name.   




說明在OMF管理方式下資料檔案的移動不能用同樣的檔名。  








SQL> alter database move datafile '+SASDG2/crmzcdb/datafile/sjjh_data.799.976178647' to '+SASDG1/GSDX002/6C687FF43E4184E0E053040C9487671E/DATAFILE/sjjh_data.799.dbf';                      
                                                                                                                                                                                                     
                                                                                                                                                                                               
*                                                                                                                                                                                              
                                                                                                                                                                                               
ERROR at line 1:                                                                                                                                                                               
                                                                                                                                                                                               
ORA-01135: file 8 accessed for DML/query is offline                                                                                                                                            
                                                                                                                                                                                               
ORA-01110: data file 8: '+SASDG1/GSDX002/6C687FF43E4184E0E053040C9487671E/DATAFILE/sjjh_data.799.976178647'


說明:在PDB中移動資料檔案需要PDB處於OPEN狀態,否則移動出現錯誤。                                                                  
                                                                       
SQL> conn /as sysdba                                                   
                                                                       
Connected.                                                             
                                                                       
SQL> select name,open_mode from v$pdbs;                                
                                                                       
                                                                       
                                                                       
NAME                    OPEN_MODE                                      
                                                                       
---------------------------------------- ------------------------------
                                                                       
PDB$SEED                READ ONLY                                      
                                                                       
ITAMPDB               MOUNTED          






SQL> alter pluggable database itampdb open;                                
                                           
                                           
                                           
Pluggable database altered.                
                                           
                                           
                                           
SQL> alter session set container=itampdb;  




SQL> alter database move datafile '+SASDG2/crmzcdb/datafile/sjjh_data.799.976178647' to '+SASDG1/GSDX002/6C687FF43E4184E0E053040C9487671E/DATAFILE/sjjh_data.dbf';                      
     
     
SQL> select file_name from dba_data_files;
fil_name
-------------
+SASDG1/GSDX002/6C687FF43E4184E0E053040C9487671E/DATAFILE/sjjh_data.799.dbf  




結論:


1、在OMF管理方式下資料檔案的移動不能用同樣的檔名。


2、在PDB中移動資料檔案需要PDB處於OPEN狀態,否則移動出現錯誤。


3、即使在ASM磁碟下移動資料檔案,如果檔案路徑不存在,同樣也會報錯。


4、在確保前面三項條件正確的情況下,資料檔案的移動完全可以線上完成,包括system表空間的資料檔案。

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

相關文章