广告
返回顶部
首页 > 资讯 > 数据库 >达梦数据库DM7数据文件误删除恢复
  • 756
分享到

达梦数据库DM7数据文件误删除恢复

2024-04-02 19:04:59 756人浏览 安东尼
摘要

在DM7中,有两个与数据文件恢复有关的特性。 数据文件失效检查  在DM.ini中参数FIL_CHECK_INTERVAL的值指定dm7系统检查数据文件还存在的时间间隔,设为0表示不检查

在DM7中,有两个与数据文件恢复有关的特性。

数据文件失效检查 

在DM.ini中参数FIL_CHECK_INTERVAL的值指定dm7系统检查数据文件还存在的时间间隔,设为0表示不检查。

也可通过系统过程SP_FILE_SYS_CHECK()进行手工检查。

数据文件失效恢复

linux系统中被删除的文件,在没有重启的情况下,文件句柄还没有关闭,可以在/proc/ /fd 中找到其对应的文件副本。

利用此办法,结合os命令,在DM7中可以通过调用系统过程SP_TABLESPACE_PREPARE_RECOVER

和SP_TABLESPACE_RECOVER来恢复被误删除的数据文件。

1、准备测试环境

sql> create tablespace cc datafile'/dmdata/data/DM01/cc01.dbf' size 100,'/dmdata/data/DM01/cc02.dbf' size 100;

操作已执行

SQL> select tablespace_name, file_name, status from dba_data_files order by 1;

行号     TABLESPACE_NAME FILE_NAME                      STATUS   

---------- --------------- ------------------------------ ---------

1          BOOKSHOP        /dmdata/data/DM01/BOOKSHOP.DBF AVaiLABLE

2          CC              /dmdata/data/DM01/cc02.dbf     AVAILABLE

3          CC              /dmdata/data/DM01/cc01.dbf     AVAILABLE

4          DMHR            /dmdata/data/DM01/DMHR.DBF     AVAILABLE

5          MAIN            /dmdata/data/DM01/MAIN.DBF     AVAILABLE

6          ROLL            /dmdata/data/DM01/ROLL.DBF     AVAILABLE

7          SYSTEM          /dmdata/data/DM01/SYSTEM.DBF   AVAILABLE

8          TEMP            /dmdata/data/DM01/TEMP.DBF     AVAILABLE

8 rows Got

SQL> create tablespace cc datafile'/dmdata/data/DM01/cc01.dbf' size 100,'/dmdata/data/DM01/cc02.dbf' size 100;

操作已执行

已用时间: 24.231(毫秒). 执行号:6.

SQL> create user test identified by dameng123 default tablespace cc;

操作已执行

已用时间: 10.973(毫秒). 执行号:7.

SQL> grant dba,resource to test;

操作已执行

已用时间: 7.763(毫秒). 执行号:8.

SQL> conn test/dameng123

SQL> create table t1 as select * from dba_data_files;

操作已执行

已用时间: 19.126(毫秒). 执行号:9.

SQL> select count(*) from t1;

行号     COUNT(*)            

---------- --------------------

1          8

2、模拟删除文件

[dmdba@localhost ~]$ rm -rf /dmdata/data/DM01/cc01.dbf

SQL> select count(*) from t1;

行号     COUNT(*)            

---------- --------------------

1          8

已用时间: 0.553(毫秒). 执行号:12.

执行失效检查系统进程

SQL> call SP_FILE_SYS_CHECK();    

DMSQL 过程已成功完成

已用时间: 1.458(毫秒). 执行号:13.

SQL> select count(*) from t1;

select count(*) from t1;

[-3430]:表空间[CC]中文件[/dmdata/data/DM01/cc01.dbf]已被删除.

已用时间: 0.230(毫秒). 执行号:0


3、恢复数据文件

执行准备恢复过程

SQL> call sp_tablespace_prepare_recover('CC');

DMSQL 过程已成功完成

已用时间: 0.351(毫秒). 执行号:15.

查看DM7进程ID

[dmdba@localhost ~]$ ps -ef|grep dmserver

dmdba      2304      1  0 08:25 ?        00:00:02 /dm7/bin/dmserver /dmdata/data/DM01/dm.ini -noconsole

dmdba      2885   2817  0 08:35 pts/0    00:00:00 grep dmserver

查看被删除文件,以下可知对应的文件号是14

[dmdba@localhost ~]$ ls /proc/2304/fd -l

总用量 0

lr-x------ 1 dmdba dinstall 64 11月 16 08:36 0 -> /dev/null

l-wx------ 1 dmdba dinstall 64 11月 16 08:36 1 -> /dm7/log/S98DmServiceTEST01.log

lrwx------ 1 dmdba dinstall 64 11月 16 08:36 10 -> /dmdata/data/DM01/BOOKSHOP.DBF

lrwx------ 1 dmdba dinstall 64 11月 16 08:36 11 -> /dmdata/data/DM01/DMHR.DBF

lrwx------ 1 dmdba dinstall 64 11月 16 08:36 12 -> /dmdata/data/DM01/ROLL.DBF

lrwx------ 1 dmdba dinstall 64 11月 16 08:36 13 -> /dmdata/data/DM01/MAIN.DBF

lrwx------ 1 dmdba dinstall 64 11月 16 08:36 14 -> /dmdata/data/DM01/cc01.dbf (deleted)

lrwx------ 1 dmdba dinstall 64 11月 16 08:36 15 -> /dmdata/arch/ARCHive_LOCAL1_20191116082533913_0.log

........以下省略

复制文件到原来的位置

[dmdba@localhost ~]$ cp /proc/2304/fd/14 /dmdata/data/DM01/cc01.dbf

执行恢复过程

SQL> call sp_tablespace_recover('CC');

DMSQL 过程已成功完成

已用时间: 9.973(毫秒). 执行号:16.

再次执行失效检查系统进程,验证恢复,无报错

SQL> call SP_FILE_SYS_CHECK();

DMSQL 过程已成功完成

已用时间: 0.182(毫秒). 执行号:19.

SQL> select count(*) from t1;

行号     COUNT(*)            

---------- --------------------

1          8

已用时间: 0.150(毫秒). 执行号:17.

SQL> select tablespace_name, file_name, status from dba_data_files order by 1;

行号     TABLESPACE_NAME FILE_NAME                      STATUS   

---------- --------------- ------------------------------ ---------

1          BOOKSHOP        /dmdata/data/DM01/BOOKSHOP.DBF AVAILABLE

2          CC              /dmdata/data/DM01/cc02.dbf     AVAILABLE

3          CC              /dmdata/data/DM01/cc01.dbf     AVAILABLE

4          DMHR            /dmdata/data/DM01/DMHR.DBF     AVAILABLE

5          MAIN            /dmdata/data/DM01/MAIN.DBF     AVAILABLE

6          ROLL            /dmdata/data/DM01/ROLL.DBF     AVAILABLE

7          SYSTEM          /dmdata/data/DM01/SYSTEM.DBF   AVAILABLE

8          TEMP            /dmdata/data/DM01/TEMP.DBF     AVAILABLE

8 rows got

已用时间: 47.629(毫秒). 执行号:18.

误删除数据文件恢复完成。

您可能感兴趣的文档:

--结束END--

本文标题: 达梦数据库DM7数据文件误删除恢复

本文链接: https://www.lsjlt.com/news/45229.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 达梦数据库DM7数据文件误删除恢复
    在DM7中,有两个与数据文件恢复有关的特性。 数据文件失效检查  在DM.ini中参数FIL_CHECK_INTERVAL的值指定dm7系统检查数据文件还存在的时间间隔,设为0表示不检查...
    99+
    2022-10-18
  • Linux平台达梦数据库V7之误删除数据文件的恢复
    一 前言 LINUX操作系统中,被进程打开的文件仍可以在 OS系统中被删除,因此存在 DM7数据文件可能被误删的风险。如果数据文件被删除,DM7系统能够及时检测出来,并立刻停止对其继续使用并通知用户。 二 数据文件失效说明 2.1...
    99+
    2016-07-05
    Linux平台达梦数据库V7之误删除数据文件的恢复
  • Oracle11g数据库参数文件误删除恢复
    本文测试了误删除spfile,pfile,init.ora等文件后的恢复方法,考虑多种场景,在不同场景下进行参数文件恢复。   第一步:连上数据库,查看spfile文件所在路径 ...
    99+
    2022-10-18
  • 数据库数据误删除怎么恢复
    小编给大家分享一下数据库数据误删除怎么恢复,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!恢复数据库数据误删除的方法:首先运行Recovery for SQL Server,并在recover中...
    99+
    2022-10-18
  • linux怎么恢复rm误删除的数据库文件
    这篇文章主要介绍“linux怎么恢复rm误删除的数据库文件”,在日常操作中,相信很多人在linux怎么恢复rm误删除的数据库文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux怎么恢复rm误删除的数据...
    99+
    2023-06-13
  • 达梦数据库备份恢复
    1 备份恢复概述   DM7 数据库中的数据存储在数据库的物理数据文件中,数据文件按照页、簇和段的方式进行管理,数据页是最小的数据存储单元。任何一个对 DM7 数据库的操作,归根结底都是对某个数据文件页...
    99+
    2022-10-18
  • MySQL数据库中怎么恢复误删除数据
    本篇文章为大家展示了MySQL数据库中怎么恢复误删除数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 找到binlog恢复数据的前提是必须开启Mysql的bi...
    99+
    2022-10-18
  • Mysql误删除数据库怎么恢复
    这篇文章主要讲解了“Mysql误删除数据库怎么恢复”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql误删除数据库怎么恢复”吧! ...
    99+
    2022-10-18
  • MySQL数据库误删除后如何恢复
    这篇文章将为大家详细讲解有关MySQL数据库误删除后如何恢复,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先,要确保mysql开启了binlog日志功能。...
    99+
    2022-10-18
  • MySQL数据库误删恢复
    前言        经常听说删库跑路这真的不只是一句玩笑话,若不小心删除了数据库,事情很严重。你一个不小心可能会给公司删没。建议研发不要直连生成环境,一般的话都会分配账号权限,生产环境的账号尽量是只读,以防你一个不经意给库或表删除。一定...
    99+
    2023-09-02
    数据库 sql
  • linux下怎么恢复误删除oracle的数据文件
    本篇内容介绍了“linux下怎么恢复误删除oracle的数据文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2022-10-18
  • 如何恢复Oracle数据库误删除数据的语句
    这篇文章主要介绍如何恢复Oracle数据库误删除数据的语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种数据恢复方法是利用oracle提供的闪回方法进行数据恢复,适用于dele...
    99+
    2022-10-18
  • mysql数据误删除如何恢复
    如果MySQL数据误删除,可以尝试以下方法恢复:1. 使用备份:如果你有定期备份数据库,可以通过将备份文件还原到误删除之前的状态来恢...
    99+
    2023-10-09
    mysql
  • navicat误删除数据怎么恢复
    如果你在 Navicat 中误删除了数据,你可以尝试通过以下方法恢复数据: 使用 Navicat 的“撤销”功能:在误删除数据后...
    99+
    2023-10-27
    navicat
  • mysql误删除数据怎么恢复
    这篇文章主要介绍“mysql误删除数据怎么恢复”,在日常操作中,相信很多人在mysql误删除数据怎么恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql误删除数据怎么...
    99+
    2022-10-18
  • mysql数据库数据删除如何恢复
    这篇文章将为大家详细讲解有关mysql数据库数据删除如何恢复,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在mysql有时执行了错误的update或者delete时导致大...
    99+
    2022-10-18
  • sql数据库删除数据怎么恢复
    小编给大家分享一下sql数据库删除数据怎么恢复,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前...
    99+
    2022-10-18
  • 北亚案例:oracle数据库误删除数据的恢复方法
    学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失。当我在工作中真正遇到这些问题时,我开始寻找答案。今天主要以oracle数据库为例,介...
    99+
    2022-10-18
  • 使用lsof回恢复被误删的mysql数据库文件
    下文主要给大家带来使用lsof回恢复被误删的mysql数据库文件,希望这些内容能够带给大家实际用处,这也是我编辑使用lsof回恢复被误删的mysql数据库文件这篇文章的主要目的。好了,废话不多说,大家直接看...
    99+
    2022-10-18
  • Oracle数据文件物理删除后的恢复
    做系统管理的都是这样,难免会误删文件,某天要是把某个Oracle数据文件删除,那该如何恢复呢?(这里数据库是OPEN的,并且未关闭)建立测试表空间创建测试用户插入测试数据删除数据文件恢复数据库文件建立测试表...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作