文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

在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.

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯