您好,登錄后才能下訂單哦!
本篇內容介紹了“RAC中誤將數據文件創建在本地盤時的修正方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
測試目的:驗證RAC中誤將數據文件創建在本地盤時的修復辦法
環境說明:
兩節點RAC,數據庫名為kdedi 版本11.2.0.4
使用了ASM作為共享存儲解決方案。
一 環境準備
1)節點一上創建表空間test1,數據文件不放到ASM,而是放到本地盤,能查看到表空間,能在上面創建表:
19:26:00 sys@XXX>create tablespace test1 datafile '/home/oracle/test1.dbf' size 10m;
Tablespace created.
19:28:25 sys@XXX> select name,status from v$datafile;
NAME
---------------------------------------------------------------------------------------------------------------------------------------
STATUS
…………
/home/oracle/test1.dbf
ONLINE
30 rows selected.
19:28:32 sys@XXX> create table test1 (id int) tablespace test1;
Table created.
19:29:01 sys@XXX> create table test2 tablespace test1 as select * from dba_tables;
Table created.
19:29:09 sys@XXX>
2) 節點二上 能查到表空間test1,但創建表報錯:
19:24:33 sys@XXX>select name ,status from v$datafile;
NAME
---------------------------------------------------------------------------------------------------------------------------------------
STATUS
-------
/home/oracle/test1.dbf
ONLINE
30 rows selected.
19:29:24 sys@XXX> create table test1 (id int) tablespace test1;
create table test1 (id int) tablespace test1*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 30 - see DBWR trace file
ORA-01110: data file 30: '/home/oracle/test1.dbf'
3)但是數據庫還是照樣能夠重啟
[grid@qs-oradb1 ~]$ srvctl stop database -d kdedi
[grid@qs-oradb1 ~]$ srvctl start database -d kdedi
[grid@qs-oradb1 ~]$
2 處理過程
20:56:25 sys@XXX> alter tablespace test1 offline;
Tablespace altered.
20:56:59 sys@XXX>exec dbms_file_transfer.copy_file('TEST1','test1.dbf','TEST2','test1.dbf');
PL/SQL procedure successfully completed.
20:57:09 sys@XXX> alter database rename file '/home/oracle/test1.dbf' to '+XXX_DATA/XXX/datafile/test1.dbf';
Database altered.
20:57:39 sys@XXX> alter tablespace test1 online;
Tablespace altered.
3、備注
以上遷移數據文件時是采用 dbms_file_transfer.copy_file遷移數據文件的方法,也可以使用RMAN來做:
SQL>select tablespace_name,file_name,status,online_status from
dba_data_files;
需要對表空間進行OFFLINE
登錄RMAN,
RMAN> sql "alter tablespace test1 offline";
RMAN> copy datafile '/home/oracle/test1.dbf' to
'+DG/rac10g/datafile/test1.dbf';
SQL> alter database rename file '/home/oracle/test1.dbf' to
'+DG/rac10g/datafile/test1.dbf';
SQL> alter tablespace test1 online;
附:刪除數據文件的別名:
[grid@qs-oradb1 ~]$ asmcmd
ASMCMD> ls -l
State Type Rebal Name
MOUNTED EXTERN N ARCH/
MOUNTED EXTERN N DG_GRID/
MOUNTED EXTERN N FBFJ_DATA/
MOUNTED EXTERN N KDEDI_DATA/
切到對應的目錄下:
ASMCMD> cd +KDEDI_DATA/kdedi/datafile
ASMCMD> rm test1.dbf
“RAC中誤將數據文件創建在本地盤時的修正方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。