原标题:【干货分享】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平台下数据文件被误删后,如何及时得知并进行恢复...相关推荐

  1. 上海腾科教育达梦数据库培训干货分享linux平台下数据文件被误删后,如何及时得知并进行恢复

    我们知道在windows平台下,一旦文件在程序中打开,则不能被删除,所以不存在误删数据文件的情况,如下图所示. 但是在LINUX操作系统中,被进程打开的文件仍可以被删除,因此存在DM7数据文件可能被误 ...

  2. linux文件恢复dbf,linux平台下数据文件被误删后,如何及时得知并进行恢复-dbf文件怎么打开...

    我们知道在windows平台下,一旦文件在程序中打开,则不能被删除,所以不存在误删数据文件的情况,如下图所示. 但是在LINUX操作系统中,被进程打开的文件仍可以被删除,因此存在DM7数据文件可能被误 ...

  3. linux误删表空间文件,UNDO表空间下的数据文件被误删除后的处理方法

    UNDO表空间下的数据文件被误删除后的处理方法: 操作前备份数据库,以避免更大的损失. 思路: 1.把误删除的数据文件offline 2.正常打开数据库后创建新的UNDO表空间及数据文件 3.修改相应 ...

  4. Recuva 是一个免费的 Windows 平台下的文件恢复工具

    是不是有时会遇到文件误删除,大家的第一反应肯定是在回收站里还原文件.但如果文件在U盘或硬盘里被不小心格式化后那又如何找回呢? 今天给大家带来了一款数据恢复软件Recuva,Recuva 是一个免费的 ...

  5. ubuntu下rar文件解压后文件名乱码的解决方案

    在linux解压rar文件,通常使用的命令是 rar e a.rar 但是由于编码的缘故,在windows下打包的的中文文件,解压后时候乱码,提示为无效的编码格式,由于windows是gbk的编码格式 ...

  6. 基于Windows Server 2003 ntbackup下数据文件的完整备份与差异备份

    前面有说到一些关于Windows Server 2012 R2的数据备份与恢复,但毕竟现在用Windows Server 2003的公司不在少数,所以这里简单说一下关于Windows Server 2 ...

  7. 干货分享——Linux常用命令总结

    目录 前言 一.Linux权限的概念 二.Linux下基本命令 三.Linux系统根目录下各个目录的作用 前言 关于linux的一些常用命令总结... 一.Linux权限的概念 Linux下有两种用户 ...

  8. centos7 访问php页面显示源码_运维干货分享:centos7下源码编译安装php-7.1.5(脚本)...

    PHP简介: PHP是一种创建动态交互性站点的强有力的服务器端脚本语言.PHP是目前动态网页开发中使用最为广泛的语言之一.PHP能运行在包括Windows.Linux等在内的绝大多数操作系统环境中. ...

  9. 7.1 pdo 宝塔面板php_运维干货分享:centos7下源码编译安装php-7.1.5(脚本)

    PHP简介: PHP是一种创建动态交互性站点的强有力的服务器端脚本语言.PHP是目前动态网页开发中使用最为广泛的语言之一.PHP能运行在包括Windows.Linux等在内的绝大多数操作系统环境中. ...

最新文章

  1. ADAS关键技术剖析、应用现状以及发展趋势
  2. R语言实战应用-基于R语言的对应分析
  3. Qt UDP 广播简单示例
  4. Setting composer minimum stability for your application
  5. 为什么使用 Redis及其产品定位
  6. KafkaConsumer分析
  7. Mutation Testing(变异测试)
  8. htc one m7刷Linux,htc one m7刷coloros系统教程
  9. Wallys/QCA9531,MIMO,2.4G,30dBm
  10. 计算机保研面试题-数据结构
  11. 机器学习个人资料整理
  12. 2012年腾讯实习生笔试附加题
  13. 手把手教你用Arcgis绘制地图【热力图】
  14. qt creator在高分辨率笔记本上控件运行显示不全的问题解决方法
  15. apollo如何添加第三方库,以pylon为例
  16. Vulkan【1】介绍
  17. 邻居好说话——冒泡排序
  18. 如何处理文字中的emoji?
  19. 量子计算机 基因工程,2020 ASC世界大学生超级计算机竞赛聚焦量子计算和语言智能...
  20. 第二证券|卡塔尔给体育烧的钱,不止世界杯

热门文章

  1. 设计模式复习-代理模式
  2. 【数字信号处理】序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 cosωn 的傅里叶变换 | 复变函数欧拉公式 )
  3. 【数字信号处理】周期序列 ( 正弦序列特性 | 单个模拟周期采集 m 个数字样本 | Q 个模拟周期采集 P 个数字样本 | 非周期序列的情况 | 数字信号周期 )
  4. 【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
  5. 【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 写出或更新配置文件 | 读取配置文件 )
  6. 【Android 插件化】Hook 插件化框架 ( 加载插件包资源 )
  7. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 三 )
  8. 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)
  9. 【Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析
  10. PIE_SDK.NET功能表