某個表空間的資料檔案損壞的修復思路
如果索引表空間的資料檔案損壞,可以考慮離線資料檔案,開啟資料庫後直接刪除索引表空間及資料檔案再重建相應的索引表空間及資料檔案。
1.新建一個索引表空間
SQL> conn bys/bys
已連線。
SQL> show user
USER 為 "BYS"
SQL> select * from user_role_privs;
USERNAME GRANTED_ROLE ADM DEF OS_
------------------------------------------------------------ --- --- ---
BYS DBA NO YES NO
SQL> create tablespace bys_indx datafile 'e:\useroradata\bys_indx.dbf' size 10m;
表空間已建立。
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ -----------
EMPBYS TABLE
SYS_TEMP_FBT TABLE
TEST TABLE
TEST2 TABLE
TEST3 TABLE
SQL> create index empbys_empno onempbys(empno) tablespace bys_indx nologging;
索引已建立。
SQL> col index_name for a15
SQL> col table_name for a15
SQL> selectindex_name,table_name,tablespace_name,status from user_indexes;
INDEX_NAME TABLE_NAME TABLESPACE_NAME STATUS
--------------- ----------------------------------- --------
EMPBYS_EMPNO EMPBYS BYS_INDX VALID
SQL> conn / as sysdba
已連線。
SQL> shutdown immediate;
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
2.刪除BYS_INDX.DBF並重啟資料庫,此時在OPEN階段會報錯找不到資料檔案
SQL> startup;
ORACLE 例程已經啟動。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 331351184 bytes
Database Buffers 92274688 bytes
Redo Buffers 6037504 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 6 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 6: 'E:\USERORADATA\BYS_INDX.DBF'
3.OFFLINE丟失資料檔案 的索引表空間
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> alter database datafile 6 offline;
--檔案號根據上一步的報錯得出,也可以直接使用檔案直接路徑:如 datafile 'USERORADATA\BYS_INDX.DBF' offline;
資料庫已更改。
如使用以上語句出現:ORA-01145錯誤:ORA-01145 除非啟用了介質恢復,否則不允許立即離線 。出現此錯誤可以使用DROP關鍵字,即:alter database datafile 6 offlinedrop;
SQL> alter database open;
資料庫已更改。
SQL> selectfile_id,file_name,tablespace_name,bytes/1024/1024 MB from dba_data_files;
FILE_ID FILE_NAME TABLESPACE_NAME MB
---------- -------------------------------------------------- ----------
5 E:\USERORADATA\BYS_UNDO.DBF BYS_UNDO 30
6 E:\USERORADATA\BYS_INDX.DBF BYS_INDX
4 E:\SYSORADATA\USERS01.DBF USERS 5
3 E:\SYSORADATA\UNDOTBS01.DBF UNDOTBS1 90
2 E:\SYSORADATA\SYSAUX01.DBF SYSAUX 570
1 E:\SYSORADATA\SYSTEM01.DBF SYSTEM 690
SQL> select file#,status fromv$datafile;
FILE# STATUS
---------- -------
1 SYSTEM
2 ONLINE
3 ONLINE
4 ONLINE
5 ONLINE
6 OFFLINE
SQL> select file_id,tablespace_name from dba_data_files;
FILE_ID TABLESPACE_NAME
---------- --------------------
5 BYS_UNDO
6 BYS_INDX
4 USERS
3 UNDOTBS1
2 SYSAUX
1 SYSTEM
SQL> conn bys/bys
已連線。
SQL> select index_name,table_name,tablespace_name,statusfrom user_indexes;
未選定行
4.刪除並重建索引表空間
SQL> drop tablespace bys_indx including contents;
表空間已刪除。
也可以用 drop tablespace bys_indx including contents and datafiles; 連帶資料檔案一起刪除。SQL> create tablespace bys_indx datafile'e:\useroradata\bys_indx.dbf' size 10m;
create tablespace bys_indx datafile'e:\useroradata\bys_indx.dbf' size 10m
*
第 1 行出現錯誤:
ORA-01119: 建立資料庫檔案 'e:\useroradata\bys_indx.dbf' 時出錯
ORA-27038: 所建立的檔案已存在
OSD-04010: 指定了 <create> 選項, 但檔案已經存在
SQL> create tablespace bys_indx datafile'e:\useroradata\bys_indx.dbf' size 10m;
表空間已建立。
SQL> selecttablespace_name,status,contents,extent_management from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN
-------------------- --------- -------------------
SYSTEM ONLINE PERMANENT LOCAL
SYSAUX ONLINE PERMANENT LOCAL
UNDOTBS1 ONLINE UNDO LOCAL
TEMP ONLINE TEMPORARY LOCAL
USERS ONLINE PERMANENT LOCAL
BYS_UNDO ONLINE UNDO LOCAL
BYS_INDX ONLINE PERMANENT LOCAL
相關文章
- UNDO 表空間檔案損壞的恢復
- system表空間檔案損壞----完全恢復
- 某個資料檔案損壞完全恢復(三)
- 臨時表空間資料檔案損壞的解決
- INDEX表空間檔案丟失或者損壞的恢復Index
- 某個控制檔案損壞的恢復案例
- InterBase資料庫檔案損壞的修復方法資料庫
- system資料檔案頭損壞修復
- TEMP表空間的檔案丟失或損壞後的恢復
- SQL Anywhere db檔案損壞修復 DB檔案修復 DB資料庫修復SQL資料庫
- 修復受損的SYSAUX表空間UX
- sysaux表空間檔案損壞的處理(zt)UX
- 修復損壞的資料塊
- 回滾段表空間資料檔案損壞解決方法
- pg 檔案塊損壞的修復措施。
- MySQL資料庫表損壞後的修復方法MySql資料庫
- MYSQL資料表損壞的原因分析和修復方法MySql
- MySQL 磁碟空間滿導致表空間相關資料檔案損壞故障處理MySql
- 資料檔案丟失損壞的恢復--
- oracle 普通表空間資料檔案壞塊Oracle
- Oracle單個資料檔案損壞,在Rman命令裡設定表空間、資料檔案offline方式來恢復最方便Oracle
- 單個控制檔案損壞的恢復
- UNDO表空間損壞的處理
- MongoDB 資料檔案損壞修復救命repair與致命危險MongoDBAI
- ORACLE 10g中使用BBED修復損壞資料檔案Oracle 10g
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- rman恢復資料檔案 恢復表空間
- 撤消表空間資料檔案丟失的恢復.
- SQL Server 資料頁損壞修復SQLServer
- ORACLE中修復資料塊損壞Oracle
- 利用RMAN修復資料檔案中的壞塊
- linux檔案系統損壞如何修復Linux
- 電腦硬碟分割槽表損壞怎麼修復?電腦硬碟分割槽表損壞的修復方法硬碟
- Oracle 11g 資料庫恢復:場景9-系統預設undo表空間資料檔案損壞Oracle資料庫
- 織夢資料庫配置檔案資料庫損壞:嘗試修復資料庫資料庫
- 修復損壞的gzip壓縮檔案之原理篇
- 妙用安裝盤修復損壞的系統檔案(轉)
- 備份與恢復--重建控制檔案後資料檔案損壞的恢復