最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

達夢數(shù)據(jù)庫文件故障的恢復方法

 更新時間:2024年12月03日 11:40:07   作者:欲速不達8820  
本文介紹了達夢數(shù)據(jù)庫文件損壞或誤刪除后的恢復方法,這里的數(shù)據(jù)庫文件包括,表空間數(shù)據(jù)文件、重做日志文件、UNDO文件、TEMP文件、控制文件等,介紹了兩種恢復場景,感興趣的小伙伴跟著小編一起來看看吧

1、概述

1.1 概述

本文介紹了達夢數(shù)據(jù)庫文件損壞或誤刪除后的恢復方法。這里的數(shù)據(jù)庫文件包括,表空間數(shù)據(jù)文件、重做日志文件、UNDO文件、TEMP文件、控制文件等。介紹了兩種恢復場景,第一種場景是使用備份集恢復,第二種場景是在沒有備份集的情況下嘗試恢復。

1.2 環(huán)境介紹

數(shù)據(jù)庫版本:DM Database 64 V8 03134284094-20231108-207962-20067

操作系統(tǒng)版本:Linux version 4.19.90-24.4.v2101.ky10.x86_64

2、使用備份集的恢復方法

本章模擬了幾種故障場景及還原、恢復方法,不介紹備份還原理論,學習備份還原理論知識可以參考官方文檔《DM8備份與還原》。

2.1 實驗準備

聯(lián)機備份

SQL> backup database backupset '/dm8/backup/fullbak_20241126_002' compressed level 1;

2.2 誤刪除“用戶表空間數(shù)據(jù)文件”

1) 制造故障

表空間數(shù)據(jù)文件損壞:

rm /dm8/data/DAMENG/MAIN.DBF

2)還原方法

數(shù)據(jù)文件誤刪除,如果數(shù)據(jù)庫沒有關閉,應該優(yōu)先考慮從操作系統(tǒng)找回,優(yōu)點是不需要關閉數(shù)據(jù)庫,相關方法我們在第3章介紹。這里介紹的是用備份集還原的方法。

dmrman
RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/dm8/backup/fullbak_20241126_002';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' TABLESPACE MAIN;
 

2.3 誤刪除SYSTEM.DBF

系統(tǒng)表空間數(shù)據(jù)文件故障,不能使用2.2節(jié)還原表空間的方法,需要全庫還原。

全庫還原有兩種方法,方法1是重新初始化一個新庫,在這個新庫上做還原;方法2是將備份集還原到指定目錄。

1)制造故障,刪除SYSTEM.DBF

rm /dm8/data/DAMENG/SYSTEM.DBF

2)恢復SYSTEM.DBF

如果磁盤空間充足,可以考慮將數(shù)據(jù)庫目錄備份出來

mv /dm8/data/DAMENG /dm8/data/DAMENG_BAK

方法1:重新初始化一個新庫,在這個新庫上做還原

dminit path=/dm8/data/
RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET   '/dm8/backup/fullbak_20241126_002';  
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET   '/dm8/backup/fullbak_20241126_002';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini'  UPDATE DB_MAGIC;
 

方法2:數(shù)據(jù)庫還原到指定目錄

RESTORE DATABASE TO '/dm8/data/DAMENG/' OVERWRITE FROM BACKUPSET   '/dm8/backup/fullbak_20241126_002';  
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET   '/dm8/backup/fullbak_20241126_002';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini'  UPDATE DB_MAGIC;

2.4 誤刪除ROLL.DBF

1)制造故障,刪除ROLL.DBF

rm /dm8/data/DAMENG/ROLL.DBF

2)使用備份集還原

dmrman
RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' TABLESPACE ROLL FROM BACKUPSET '/dm8/backup/fullbak_20241126_002';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' TABLESPACE ROLL;

2.5 誤刪除REDO日志文件

REDO文件損壞,需要使用備份集全庫還原,可以參考2.3節(jié)SYSTEM.DBF恢復方法。

3、無備份集的恢復方法

3.1 誤刪除“表空間數(shù)據(jù)文件”

LINUX 系統(tǒng)中被刪除的文件,只要其句柄沒有被關閉,可以在/proc/<pid>/fd 中找到其對應的文件副本。其中<pid>指打開該文件的進程 id。

利用該方法,結(jié)合 OS 命令,DM 提供失效文件的恢復方案如下:

1、 調(diào)用系統(tǒng)過程 SP_TABLESPACE_PREPARE_RECOVER(表空間名稱)準備進行恢復;

2、 如果使用過程中 DM 報錯表空間數(shù)據(jù)文件被刪除,通過操作系統(tǒng)的 ps 命令找到當前 dmserver 的 PID:ps -ef|grep dmserver;

3、 使用操作系統(tǒng) ll 命令查看被刪除文件對應的副本:ll /proc/<PID>/fd,會發(fā)現(xiàn)被刪除的文件后有(deleted)字樣;

4、 使用操作系統(tǒng)的 cp 命令將文件復制到原位置:cp 源路徑 目的路徑;

5、 復制成功后,調(diào)用系統(tǒng)過程 SP_TABLESPACE_RECOVER(表空間名稱)完成表空間失效文件的恢復。注意,要保證數(shù)據(jù)文件正確修復,需要保證在 SP_TABLESPACE_PREPARE_RECOVER后進行數(shù)據(jù)文件的復制。

故障模擬:

一、制造故障

1、查看表空間對應的數(shù)據(jù)文件

select t.name,d.path from SYS.V$TABLESPACE t
	left join SYS.V$DATAFILE d on(d.GROUP_ID=T.ID);

2、模擬誤刪除數(shù)據(jù)文件

rm /dm8/data/DAMENG/DMHR.DBF

二、恢復方法

1、 表空間失效文件恢復準備

SP_TABLESPACE_PREPARE_RECOVER('DMHR');

2、 查找dmserver 進程號

ps -ef|grep dmserver
 
dmdba       1798       1  0 09:14 ?        00:00:05 /dm8/dmdbms/bin/dmserver path=/dm8/data/DAMENG/dm.ini -noconsole

3、 查看進程目錄下的文件

ll /proc/1798/fd

4、 還原文件

cp -p /proc/1798/fd/17 /dm8/data/DAMENG/DMHR.DBF

5、 修復表空間文件

SP_TABLESPACE_RECOVER('DMHR');

6、驗證

SELECT count(*) FROM DMHR.EMPLOYEE;

恢復成功!

3.2 誤刪除控制文件

控制文件恢復方法:

到ctl_bak目錄,找到時間最近的備份,名稱改為dm.ctl即可。

3.3 誤刪除ROLL.DBF

1)制造故障,刪除ROLL.DBF

rm /dm8/data/DAMENG/ROLL.DBF

2)使用其他數(shù)據(jù)庫的ROLL文件冒充誤刪除的文件

使用其他數(shù)據(jù)庫的ROLL文件冒充誤刪除的文件。

修改 dm.ini 參數(shù) PSEG_RECV 為 0,可以選擇跳過 ROLL.DBF 啟動數(shù)據(jù)庫臨時啟動數(shù)據(jù)庫(危險操作,可能破壞事務的原子性)。

PSEG_RECV 參數(shù)釋意: 系統(tǒng)故障重啟時,對活動事務和已提交事務的處理方式。 0:跳過回滾活動事務和 PURGE 已經(jīng)提交事務的步驟。 1:回滾活動事務并 PURGE 已經(jīng)提交事務; 2:延遲 PURGE 已提交事務,延遲回滾活動事務; 3:回滾活動事務,延遲 PURGE 已提交事務。

vi dm.ini
 
PSEG_RECV =0

拷貝其他數(shù)據(jù)庫ROLL.DBF冒充誤刪除的文件

cp /dm8/data/PROD/ROLL.DBF /dm8/data/DAMENG/ #拷貝其他庫的ROLL.DBF

啟動數(shù)據(jù)庫

dmserver ./dm.ini

數(shù)據(jù)庫啟動,恢復成功!

3.4 誤刪除REDO日志文件

重做日志文件損壞,推薦使用備份集恢復。

在沒有備份的情況下,可以嘗試使用沒損壞的redo文件或使用新建相同配置數(shù)據(jù)庫的redo文件冒充損壞的redo文件。通常要用dmmdf工具修改db_magic、pemnt_magic。不過這么做是有問題的,首先如果成功了,存在數(shù)據(jù)不一致的風險;其次,不一定能成功,至少在本文涉及的版本上,博主沒有恢復成功。

3.5 誤刪除TEMP.DBF

1)制造故障,刪除TEMP.DBF

rm /dm8/data/DAMENG/TEMP.DBF

2)臨時表空間數(shù)據(jù)文件誤刪除后不用還原,重啟數(shù)據(jù)庫后會重新生成TEMP.DBF文件

數(shù)據(jù)庫啟動后重新創(chuàng)建了TEMP.DBF。

以上就是達夢數(shù)據(jù)庫文件故障的恢復方法的詳細內(nèi)容,更多關于達夢數(shù)據(jù)庫文件故障的資料請關注腳本之家其它相關文章!

相關文章

最新評論

岳阳市| 应城市| 呼玛县| 竹溪县| 湘乡市| 祁东县| 高密市| 临颍县| 诸城市| 垣曲县| 鄯善县| 定边县| 通江县| 托里县| 马山县| 绥滨县| 达拉特旗| 巴东县| 沛县| 清原| 安乡县| 临猗县| 贡嘎县| 曲靖市| 义乌市| 华池县| 许昌市| 兴海县| 丰都县| 尤溪县| 江口县| 东宁县| 呈贡县| 洪泽县| 新化县| 蓝田县| 万荣县| 亳州市| 洪湖市| 丹棱县| 读书|