日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux共享文件丢失,【干货分享】linux平台下数据文件被误删后,如何及时得知并进行恢复...

發布時間:2025/6/15 linux 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux共享文件丢失,【干货分享】linux平台下数据文件被误删后,如何及时得知并进行恢复... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:【干貨分享】linux平臺下數據文件被誤刪后,如何及時得知并進行恢復

我們知道在windows平臺下,一旦文件在程序中打開,則不能被刪除,所以不存在誤刪數據文件的情況,如下圖所示。

但是在LINUX操作系統中,被進程打開的文件仍可以被刪除,因此存在DM7數據文件可能被誤刪的風險。并且,在默認情況下,若數據文件被刪除,數據庫是不會返回任何報錯信息的,這樣無形中就增大了數據丟失的風險。因此,本篇文章主要講兩個方面:

1.在表空間文件被誤刪后,如何使數據庫及時反饋出來。

2.在表空間文件被誤刪后,如何進行數據的恢復。

注:本文實驗環境的DM7數據庫版本為:

DM Database Server x64 V7.1.6.16-Build(2017.10.10-85437)ENT

一、在表空間文件被誤刪后,如何使數據庫反饋出來

1.首先建一個測試表。

create table test (id int );

insert into test values(1);

2.刪除數據文件MAIN.DBF,此時去查詢test表,發現一切正常,數據庫沒有任何報錯。

3.進行相關設置,使數據庫可以檢測出文件被刪除,有以下兩種方式:調用系統過程SP_FILE_SYS_CHECK()來手動檢查,數據庫重啟后失效; 設置參數FIL_CHECK_INTERVAL大于0即可(單位是s),若使其永久生效,則需要將參數添加進dm.ini文件中。

sp_set_para_value(1,'FIL_CHECK_INTERVAL',3);

4.設置成功后,再次查詢test表,即報錯: 表空間[MAIN]中文件[/opt/dmdbms/data/DAMENG/MAIN.DBF]已被刪除

進行以上設置后,若數據文件被刪除,我們可以及時得知,下面來講如何進行數據恢復。

二、在表空間文件被誤刪后,如何進行數據的恢復

數據恢復分兩種方法:聯機恢復和脫機恢復。

2.1 聯機恢復,此方法只適用于被刪除的是用戶數據文件(以MAIN.DBF為例):

1.首先調用以下系統過程進行恢復的準備工作:

call SP_TABLESPACE_PREPARE_RECOVER('MAIN');

2.在服務器終端執行ps -ef |grepdms,獲取數據庫服務的pid為12130

3.接下來,就用ls命令查看被刪除文件對應的副本:ls /proc/12130/fd-l,如下圖,在MAIN.DBF文件 后,有個delete,表示已被刪除掉。

4.將上述MAIN.DBF文件復制到原數據文件路徑下即可:

cp /proc/12130/fd/11 /opt/dmdbms/data/DAMENG/MAIN.DBF

5.復制成功后,執行以下語句完成表空間失效文件的恢復。

call SP_TABLESPACE_RECOVER('MAIN');

6.再次查詢test表,可正常執行,并得到正確數據。

為什么聯機恢復只適用于恢復被刪除的用戶數據文件呢,因為當被刪除的是ROLL.DBF、TEMP.DBF 或SYSTEM.DBF文件時,數據庫一旦檢測到它們其中任何一個文件不在了,就會直接掛掉,所以根本沒有機會進行聯機恢復的操作。此時,只能利用備份文件和歸檔文件進行還原,并因為數據庫屬于異常退出,有部分redo日志還沒來得及寫進歸檔中,導致歸檔不全,無法恢復到數據庫異常退出前的狀態。因此,在進行還原前,需進行歸檔修復(歸檔修復會掃描聯機日志文件,將那些已經寫入聯機日志文件、但還沒有寫入到歸檔日志文件的REDO日志,重新寫入到歸檔日志文件,詳見手冊DM7_Backup_And_Recovery.pdf)。

2.2 脫機恢復,即備份還原機制

在利用備份進行還原時,根據被刪除文件類型,也分為以下兩種情況:

2.2.1若被刪除的是ROLL.DBF或TEMP.DBF,通過以下過程,即可完整恢復數據庫。

1.歸檔修復:

repair archivelog database '/opt/dmdbms/data/DAMENG/dm.ini';

2.利用備份加歸檔,進行還原:

./dmrestoreini_path=/opt/dmdbms/data/TEST/dm.inifile=/opt/dmdbms/data/TEST/bak/test.bakarchive_dir=/opt/dmdbms/data/TEST/arch/

2.2.2 若被刪除的是SYSTEM.DBF文件,則無法完整恢復數據庫。

1.SYSTEM.DBF被刪除后,無法修復歸檔,所以會導致部分數據丟失。

2.SYSTEM.DBF被刪除后,無法在原庫上直接進行還原,必須新初始化一個庫才可以。

總結:在留有備份和完整歸檔文件情況下,只有SYSTEM.DBF被刪除后,無法完整恢復數據庫,其余數據文件被刪除,均可通過不同方式進行數據恢復。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的linux共享文件丢失,【干货分享】linux平台下数据文件被误删后,如何及时得知并进行恢复...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。