非歸檔模式下,資料檔案誤刪除解決

2021-05-23 00:34:49 字數 2370 閱讀 4043

1. 資料檔案無需恢復的情況:

下午在運算元據庫時,一不小心將乙個看著不順眼的檔案刪除了,按下回車按鈕後才想起這是oracle資料庫的乙個資料檔案。還好這個資料庫是測試用的,資料檔案丟了關係不大,不過還是驚出一身冷汗,使用rm -rf前一定要三思啊!

下面參照網路上的文章將誤刪除的資料檔案從資料庫中去除,使其不會影響資料庫的正常啟動。

被刪除的資料檔案:/u02/oracle/oradata/sm_space

屬於表空間:sm_space

屬於使用者:sm

注:如何檢視當前的資料檔名:sql > select name from v$datafile;

1.1 將資料檔案剝離:

如果資料庫未啟動,將其啟動到mount狀態:

sql> startup mount;

如果資料庫正在執行中,則直接進行下面的操作:

sql> alter database datafile '/u02/oracle/oradata/sm_space' offline drop;

datafile offline drop 與 datafile offline 區別:

歸檔模式下是沒有區別的,非歸檔模式必須用offline drop。

開啟資料庫:

sql> alter database open;

1.2 刪除表空間

檢視表空間:

方法一:

sql> select tablespace_name,status from dba_tablespaces;

tablespace_name                status

system                         online

undotbs1                       online

sysaux                         online

padding-right: 0cm; border-top: medium none; padding-left: 0cm; padding-bottom: 0cm; margin: 0cm 0cm 0pt; border-left: medium none; padding-top: 0cm; border-bottom: medium none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 1.0pt 1.0pt 1.0pt 1.0pt">temp                           online

users                          online

pa_data                        online

pa_index                       online

sm_space                       online

方法二:

select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size

from dba_tablespaces t, dba_data_files d

where t.tablespace_name = d.tablespace_name

group by t.tablespace_name;

tablespace_name                   ts_size

sysaux                                360

undotbs1                              145

sm_space

mingya2                              7000

users        &nb

sp;                        479

system                                630

pa_data                                50

pa_index                               50

刪除表空間:

sql> drop tablespace sm_space  including contents;

2、如果資料檔案需要恢復

2.1 如果有冷備份的話:

進入mount狀態,然後將備份的資料檔案拷到目的目錄中,然後使用命令,

sql > alter database open.

如果有熱備份的話:

進入mount狀態,再使資料檔案離線,然後將備份的資料檔案拷到目的目錄中,然後使用命令,

sql > recover datafile  '檔名'

mysql誤刪除InnoDB資料檔案恢復

錯誤重現 使用rm f ib 刪除資料檔案和重做日誌檔案。這時mysql 程序還存在,mysql 還能正常使用。檔案恢復 1 查詢 mysqld 的程序號。netstat ntpl grep mysqld tcp 0 0 0.0.0.0 3306 0.0.0.0 listen 12147 mysql...

mysql誤刪除InnoDB資料檔案恢復

錯誤重現 使用rm f ib 刪除資料檔案和重做日誌檔案。這時mysql 程序還存在,mysql 還能正常使用。檔案恢復 1 查詢 mysqld 的程序號。12 netstat ntpl grep mysqld tcp 0 0 0.0.0.0 3306 0.0.0.0 listen 12147 my...

Oracle日誌檔案被誤刪除解決

oracle日誌檔案被誤刪除解決 目錄 www.2cto.com 1 問題出現.2 1.1 誤刪除日誌檔案.2 1.2 oracle無法連線.2 2 大概解決思路.2 2.1 sys登入資料庫.2 2.2 關閉資料庫normal.2 www.2cto.com 2.3 啟動oracle例程.2 2.4...