欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1、概述

1.1 概述

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

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、使用備份集的恢復(fù)方法

本章模擬了幾種故障場景及還原、恢復(fù)方法,不介紹備份還原理論,學(xué)習(xí)備份還原理論知識可以參考官方文檔《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ù)庫沒有關(guān)閉,應(yīng)該優(yōu)先考慮從操作系統(tǒng)找回,優(yōu)點是不需要關(guān)閉數(shù)據(jù)庫,相關(guān)方法我們在第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)恢復(fù)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恢復(fù)方法。

3、無備份集的恢復(fù)方法

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

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

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

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

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

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

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

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

故障模擬:

一、制造故障

1、查看表空間對應(yīng)的數(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

二、恢復(fù)方法

1、 表空間失效文件恢復(fù)準備

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、 修復(fù)表空間文件

SP_TABLESPACE_RECOVER('DMHR');

6、驗證

SELECT count(*) FROM DMHR.EMPLOYEE;

恢復(fù)成功!

3.2 誤刪除控制文件

控制文件恢復(fù)方法:

到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ù)庫(危險操作,可能破壞事務(wù)的原子性)。

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

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ù)庫啟動,恢復(fù)成功!

3.4 誤刪除REDO日志文件

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

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

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ù)庫文件故障的恢復(fù)方法的詳細內(nèi)容,更多關(guān)于達夢數(shù)據(jù)庫文件故障的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • openGauss數(shù)據(jù)庫共享存儲特性概述

    openGauss數(shù)據(jù)庫共享存儲特性概述

    這篇文章主要介紹了openGauss數(shù)據(jù)庫共享存儲特性簡介,本特性提供主備機共享一份存儲的能力,實現(xiàn)基于磁陣設(shè)備的主備共享存儲HA部署形態(tài),可選通過OCK RDMA提升備機實時一致性讀能力,需要的朋友可以參考下
    2023-02-02
  • 一次因表變量導(dǎo)致SQL執(zhí)行效率變慢的實戰(zhàn)記錄

    一次因表變量導(dǎo)致SQL執(zhí)行效率變慢的實戰(zhàn)記錄

    這篇文章主要給大家介紹了一次因表變量導(dǎo)致SQL執(zhí)行效率變慢的實戰(zhàn)記錄,本文通過圖文以及示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者了解sql具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-11-11
  • 從Bak文件中恢復(fù)SQL數(shù)據(jù)庫的三種方法

    從Bak文件中恢復(fù)SQL數(shù)據(jù)庫的三種方法

    在數(shù)據(jù)庫管理和維護過程中,數(shù)據(jù)的安全性和完整性至關(guān)重要,備份文件(.bak 文件)是 SQL Server 中常用的數(shù)據(jù)庫備份格式,本文將介紹從 .bak 文件恢復(fù) SQL 數(shù)據(jù)庫的基本步驟和最佳實踐,需要的朋友可以參考下
    2024-09-09
  • 數(shù)據(jù)庫基本概念面試必問

    數(shù)據(jù)庫基本概念面試必問

    這篇文章主要介紹了數(shù)據(jù)庫基本概念面試必問的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • MyISAM與InnoDB索引實現(xiàn)對比詳解

    MyISAM與InnoDB索引實現(xiàn)對比詳解

    這篇文章主要給大家介紹了關(guān)于MyISAM與InnoDB索引實現(xiàn)對比的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SQL數(shù)據(jù)庫的所有命令(函數(shù)、運算符)匯總大全

    SQL數(shù)據(jù)庫的所有命令(函數(shù)、運算符)匯總大全

    結(jié)構(gòu)化查詢語言(Structured?Query?Language)簡稱SQL,結(jié)構(gòu)化查詢語言是一種數(shù)據(jù)庫查詢和程序設(shè)計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。sql語句就是對數(shù)據(jù)庫進行操作的一種語言。
    2023-01-01
  • StarRocks數(shù)據(jù)庫詳解(什么是StarRocks)

    StarRocks數(shù)據(jù)庫詳解(什么是StarRocks)

    StarRocks是一個高性能的全場景MPP數(shù)據(jù)庫,支持多種數(shù)據(jù)導(dǎo)入導(dǎo)出方式,包括Spark、Flink、Hadoop等,它采用分布式架構(gòu),支持多副本和彈性容錯,本文介紹StarRocks詳解,感興趣的朋友一起看看吧
    2025-03-03
  • dbeaver導(dǎo)入導(dǎo)出數(shù)據(jù)庫圖文教程(sql文件形式)

    dbeaver導(dǎo)入導(dǎo)出數(shù)據(jù)庫圖文教程(sql文件形式)

    這篇文章主要介紹了如何使用DBeaver復(fù)制數(shù)據(jù)庫,在導(dǎo)出和導(dǎo)入數(shù)據(jù)庫時,需要注意編碼一致性,以避免導(dǎo)入錯誤,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • 推薦Sql server一些常見性能問題的解決方法

    推薦Sql server一些常見性能問題的解決方法

    具體的SQL語句在很多情況下需要結(jié)合實際的應(yīng)用情況來寫,這里不作敘述。
    2008-08-08
  • Navicat添加外鍵詳細操作步驟

    Navicat添加外鍵詳細操作步驟

    這篇文章主要介紹了Navicat添加外鍵詳細操作步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11

最新評論