久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux下數據庫文件被誤刪后怎么找回

133次閱讀
沒有評論

共計 2014 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章主要講解了“Linux 下數據庫文件被誤刪后怎么找回”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著丸趣 TV 小編的思路慢慢深入,一起來研究和學習“Linux 下數據庫文件被誤刪后怎么找回”吧!

Linux 平臺下數據庫文件被誤刪后如何及時得知并找回

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

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

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

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

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

1.1 首先建一個測試表。

create table test (id int);

insert into test values(1);

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

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

sp_set_para_value(1, FIL_CHECK_INTERVAL ,3);

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

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

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

聯機恢復:

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

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

call SP_TABLESPACE_PREPARE_RECOVER(MAIN

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

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

 

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

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

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

call SP_TABLESPACE_RECOVER(MAIN

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

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

脫機恢復:

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

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

1.  歸檔修復:repair archivelog database /opt/dmdbms/data/DAMENG/dm.ini

 

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

./dmrestore ini_path=/opt/dmdbms/data/TEST/dm.ini file=/opt/dmdbms/data/TEST/bak/test.bak archive_dir=/opt/dmdbms/data/TEST/arch/

 

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

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

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

感謝各位的閱讀,以上就是“Linux 下數據庫文件被誤刪后怎么找回”的內容了,經過本文的學習后,相信大家對 Linux 下數據庫文件被誤刪后怎么找回這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是丸趣 TV,丸趣 TV 小編將為大家推送更多相關知識點的文章,歡迎關注!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-01發表,共計2014字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 芜湖市| 交城县| 隆德县| 岱山县| 澄迈县| 化德县| 乌拉特后旗| 游戏| 泽库县| 水城县| 沈阳市| 临湘市| 五河县| 平邑县| 宁陵县| 香河县| 资阳市| 龙胜| 来安县| 博爱县| 巴塘县| 依兰县| 瑞昌市| 义马市| 建瓯市| 常宁市| 潮安县| 犍为县| 宜州市| 青川县| 电白县| 虞城县| 司法| 瑞丽市| 建始县| 凤台县| 黄陵县| 枣阳市| 屏东县| 武宁县| 余庆县|