达梦表空间失效文件恢复


一、表空间失效文件恢复

1.模拟故障

LINUX 系统中被删除的文件,只要其句柄没有被关闭,就可以通过句柄来恢复,这里我们模拟下表空间的删除,我选择移动表空间到别的目录

[root@czk dmdbms]# ll
总用量 262184
drwxr-xr-x. 10 dmdba dmgroup      8192 47 10:09 bin
drwxr-xr-x.  2 dmdba dmgroup        30 329 12:16 bin2
-rw-r--r--.  1 dmdba dmgroup 134217728 41 13:35 BOOKS.DBF
drwxr-xr-x.  3 dmdba dmgroup        20 47 13:35 czkdata
-rw-r--r--.  1 dmdba dmgroup 134217728 47 14:35 dameng3.log
drwxr-xr-x.  3 dmdba dmgroup        20 329 12:31 data
drwxr-xr-x.  3 dmdba dmgroup        19 329 12:16 desktop
drwxr-xr-x.  2 dmdba dmgroup      4096 329 12:17 doc
drwxr-xr-x. 12 dmdba dmgroup       131 329 12:17 drivers
drwxr-xr-x.  2 dmdba dmgroup        47 47 13:32 full2022
drwxr-xr-x.  2 dmdba dmgroup      4096 329 12:16 include
drwxr-xr-x.  2 dmdba dmgroup        94 329 12:16 jar
drwxr-xr-x.  7 dmdba dmgroup        68 329 12:16 jdk
-rwxr-xr-x.  1 dmdba dmgroup      1071 329 12:16 license_en.txt
-rwxr-xr-x.  1 dmdba dmgroup      1146 329 12:16 license_zh.txt
drwxr-xr-x.  2 dmdba dmgroup      4096 47 14:36 log
drwxr-xr-x.  5 dmdba dmgroup        74 329 12:16 samples
drwxr-xr-x.  3 dmdba dmgroup        37 329 12:16 script
drwxr-xr-x.  9 dmdba dmgroup      4096 329 12:17 tool
drwxr-xr-x.  3 dmdba dmgroup        97 329 12:17 uninstall
-rwxr-xr-x.  1 dmdba dmgroup      2146 329 12:17 uninstall.sh
drwxr-xr-x.  2 dmdba dmgroup        92 329 12:17 web
[root@czk dmdbms]# mv BOOKS.DBF /home/

2.查看服务进程,找到文件所在路径

[dmdba@czk DAMENG]$ ps -ef | grep dmserver
dmdba     26785      1  0 14:35 ?        00:00:01 /opt/dmdbms/bin/dmserver path=/opt/dmdbms/data/DAMENG/dm.ini -noconsole
dmdba     28677  19240  0 15:07 pts/0    00:00:00 grep --color=auto dmserver

通过查看进程号找到路径后,可以看到我所移动的BOOKS表空间已经显示被移除或者删除(BOOKS.DBF (deleted)[dmdba@czk DAMENG]$ ll /proc/26785/fd/
总用量 0
lr-x------. 1 dmdba dmgroup 64 47 15:07 0 -> /dev/null
l-wx------. 1 dmdba dmgroup 64 47 15:07 1 -> /opt/dmdbms/log/DmServiceczk.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 10 -> /opt/dmdbms/data/DAMENG/ROLL.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 11 -> /opt/dmdbms/data/DAMENG/MAIN.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 12 -> /opt/dmdbms/data/DAMENG/czk
lrwx------. 1 dmdba dmgroup 64 47 15:07 13 -> /opt/dmdbms/BOOKS.DBF (deleted)
lrwx------. 1 dmdba dmgroup 64 47 15:07 14 -> /opt/dmdbms/data/DAMENG/BOOK1S.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 15 -> /opt/dmdbms/data/DAMENG/test1.DBF
lr-x------. 1 dmdba dmgroup 64 47 15:07 16 -> pipe:[211064]
l-wx------. 1 dmdba dmgroup 64 47 15:07 17 -> pipe:[211064]
lr-x------. 1 dmdba dmgroup 64 47 15:07 18 -> pipe:[211065]
l-wx------. 1 dmdba dmgroup 64 47 15:07 19 -> pipe:[211065]
l-wx------. 1 dmdba dmgroup 64 47 15:07 2 -> /opt/dmdbms/log/DmServiceczk.log
lr-x------. 1 dmdba dmgroup 64 47 15:07 20 -> pipe:[211066]
l-wx------. 1 dmdba dmgroup 64 47 15:07 21 -> pipe:[211066]
lr-x------. 1 dmdba dmgroup 64 47 15:07 22 -> pipe:[211067]
l-wx------. 1 dmdba dmgroup 64 47 15:07 23 -> pipe:[211067]
lr-x------. 1 dmdba dmgroup 64 47 15:07 24 -> pipe:[211068]
l-wx------. 1 dmdba dmgroup 64 47 15:07 25 -> pipe:[211068]
lr-x------. 1 dmdba dmgroup 64 47 15:07 26 -> pipe:[211069]
l-wx------. 1 dmdba dmgroup 64 47 15:07 27 -> pipe:[211069]
lr-x------. 1 dmdba dmgroup 64 47 15:07 28 -> pipe:[211070]
l-wx------. 1 dmdba dmgroup 64 47 15:07 29 -> pipe:[211070]
lrwx------. 1 dmdba dmgroup 64 47 15:07 3 -> socket:[209575]
lr-x------. 1 dmdba dmgroup 64 47 15:07 30 -> pipe:[211071]
l-wx------. 1 dmdba dmgroup 64 47 15:07 31 -> pipe:[211071]
lr-x------. 1 dmdba dmgroup 64 47 15:07 32 -> pipe:[211072]
l-wx------. 1 dmdba dmgroup 64 47 15:07 33 -> pipe:[211072]
lr-x------. 1 dmdba dmgroup 64 47 15:07 34 -> pipe:[211073]
l-wx------. 1 dmdba dmgroup 64 47 15:07 35 -> pipe:[211073]
lr-x------. 1 dmdba dmgroup 64 47 15:07 36 -> pipe:[211074]
l-wx------. 1 dmdba dmgroup 64 47 15:07 37 -> pipe:[211074]
lr-x------. 1 dmdba dmgroup 64 47 15:07 38 -> pipe:[211075]
l-wx------. 1 dmdba dmgroup 64 47 15:07 39 -> pipe:[211075]
lrwx------. 1 dmdba dmgroup 64 47 15:07 4 -> socket:[209576]
lr-x------. 1 dmdba dmgroup 64 47 15:07 40 -> pipe:[211076]
l-wx------. 1 dmdba dmgroup 64 47 15:07 41 -> pipe:[211076]
lr-x------. 1 dmdba dmgroup 64 47 15:07 42 -> pipe:[211077]
l-wx------. 1 dmdba dmgroup 64 47 15:07 43 -> pipe:[211077]
lr-x------. 1 dmdba dmgroup 64 47 15:07 44 -> pipe:[211078]
l-wx------. 1 dmdba dmgroup 64 47 15:07 45 -> pipe:[211078]
lr-x------. 1 dmdba dmgroup 64 47 15:07 46 -> pipe:[211079]
l-wx------. 1 dmdba dmgroup 64 47 15:07 47 -> pipe:[211079]
lrwx------. 1 dmdba dmgroup 64 47 15:07 48 -> /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3377424D[0]_2022-04-07_14-35-18.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 49 -> socket:[209596]
lrwx------. 1 dmdba dmgroup 64 47 15:07 5 -> /opt/dmdbms/data/DAMENG/SYSTEM.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 50 -> socket:[213374]
lrwx------. 1 dmdba dmgroup 64 47 15:07 51 -> socket:[213375]
lrwx------. 1 dmdba dmgroup 64 47 15:07 6 -> /opt/dmdbms/data/DAMENG/TEMP.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 7 -> /opt/dmdbms/data/DAMENG/DAMENG01.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 8 -> /opt/dmdbms/data/DAMENG/DAMENG02.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 9 -> /opt/dmdbms/dameng3.log

3.准备恢复

登入disql,进行恢复前的检查操作

SQL> call sp_file_sys_check();
DMSQL 过程已成功完成
已用时间: 0.953(毫秒). 执行号:406.

执行完检查操作后,在执行恢复准备工作(注意,一定要先执行检查命令在执行恢复准备命令,否则会报错)

SQL> CALL SP_TABLESPACE_PREPARE_RECOVER('BOOKS');
DMSQL 过程已成功完成

4.表空间恢复

执行完恢复准备命令后,我们需要将原来有的备份移动到目前所在的路径里,这里我将表空间移动回来,来模拟备份的数据

[root@czk dmdbms]# cp /home/BOOKS.DBF /opt/dmdbms/data/DAMENG/

在调用系统过程来进行表空间恢复操作

SQL> call sp_tablespace_recover('BOOKS');
DMSQL 过程已成功完成
已用时间: 10.829(毫秒). 执行号:408.

5.查看恢复情况

此时在回到proc下查看dmserver下的文件情况,可以看到当前BOOKS表空间已经恢复正常

[dmdba@czk DAMENG]$ ll /proc/26785/fd/
总用量 0
lr-x------. 1 dmdba dmgroup 64 47 15:07 0 -> /dev/null
l-wx------. 1 dmdba dmgroup 64 47 15:07 1 -> /opt/dmdbms/log/DmServiceczk.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 10 -> /opt/dmdbms/data/DAMENG/ROLL.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 11 -> /opt/dmdbms/data/DAMENG/MAIN.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 12 -> /opt/dmdbms/data/DAMENG/czk
lrwx------. 1 dmdba dmgroup 64 47 15:07 13 -> /opt/dmdbms/BOOKS.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 14 -> /opt/dmdbms/data/DAMENG/BOOK1S.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 15 -> /opt/dmdbms/data/DAMENG/test1.DBF
lr-x------. 1 dmdba dmgroup 64 47 15:07 16 -> pipe:[211064]
l-wx------. 1 dmdba dmgroup 64 47 15:07 17 -> pipe:[211064]
lr-x------. 1 dmdba dmgroup 64 47 15:07 18 -> pipe:[211065]
l-wx------. 1 dmdba dmgroup 64 47 15:07 19 -> pipe:[211065]
l-wx------. 1 dmdba dmgroup 64 47 15:07 2 -> /opt/dmdbms/log/DmServiceczk.log
lr-x------. 1 dmdba dmgroup 64 47 15:07 20 -> pipe:[211066]
l-wx------. 1 dmdba dmgroup 64 47 15:07 21 -> pipe:[211066]
lr-x------. 1 dmdba dmgroup 64 47 15:07 22 -> pipe:[211067]
l-wx------. 1 dmdba dmgroup 64 47 15:07 23 -> pipe:[211067]
lr-x------. 1 dmdba dmgroup 64 47 15:07 24 -> pipe:[211068]
l-wx------. 1 dmdba dmgroup 64 47 15:07 25 -> pipe:[211068]
lr-x------. 1 dmdba dmgroup 64 47 15:07 26 -> pipe:[211069]
l-wx------. 1 dmdba dmgroup 64 47 15:07 27 -> pipe:[211069]
lr-x------. 1 dmdba dmgroup 64 47 15:07 28 -> pipe:[211070]
l-wx------. 1 dmdba dmgroup 64 47 15:07 29 -> pipe:[211070]
lrwx------. 1 dmdba dmgroup 64 47 15:07 3 -> socket:[209575]
lr-x------. 1 dmdba dmgroup 64 47 15:07 30 -> pipe:[211071]
l-wx------. 1 dmdba dmgroup 64 47 15:07 31 -> pipe:[211071]
lr-x------. 1 dmdba dmgroup 64 47 15:07 32 -> pipe:[211072]
l-wx------. 1 dmdba dmgroup 64 47 15:07 33 -> pipe:[211072]
lr-x------. 1 dmdba dmgroup 64 47 15:07 34 -> pipe:[211073]
l-wx------. 1 dmdba dmgroup 64 47 15:07 35 -> pipe:[211073]
lr-x------. 1 dmdba dmgroup 64 47 15:07 36 -> pipe:[211074]
l-wx------. 1 dmdba dmgroup 64 47 15:07 37 -> pipe:[211074]
lr-x------. 1 dmdba dmgroup 64 47 15:07 38 -> pipe:[211075]
l-wx------. 1 dmdba dmgroup 64 47 15:07 39 -> pipe:[211075]
lrwx------. 1 dmdba dmgroup 64 47 15:07 4 -> socket:[209576]
lr-x------. 1 dmdba dmgroup 64 47 15:07 40 -> pipe:[211076]
l-wx------. 1 dmdba dmgroup 64 47 15:07 41 -> pipe:[211076]
lr-x------. 1 dmdba dmgroup 64 47 15:07 42 -> pipe:[211077]
l-wx------. 1 dmdba dmgroup 64 47 15:07 43 -> pipe:[211077]
lr-x------. 1 dmdba dmgroup 64 47 15:07 44 -> pipe:[211078]
l-wx------. 1 dmdba dmgroup 64 47 15:07 45 -> pipe:[211078]
lr-x------. 1 dmdba dmgroup 64 47 15:07 46 -> pipe:[211079]
l-wx------. 1 dmdba dmgroup 64 47 15:07 47 -> pipe:[211079]
lrwx------. 1 dmdba dmgroup 64 47 15:07 48 -> /opt/dmdbms/data/DAMENG/arch/ARCHIVE_LOCAL1_0x3377424D[0]_2022-04-07_14-35-18.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 49 -> socket:[209596]
lrwx------. 1 dmdba dmgroup 64 47 15:07 5 -> /opt/dmdbms/data/DAMENG/SYSTEM.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 50 -> socket:[213374]
lrwx------. 1 dmdba dmgroup 64 47 15:07 51 -> socket:[213375]
lrwx------. 1 dmdba dmgroup 64 47 15:07 6 -> /opt/dmdbms/data/DAMENG/TEMP.DBF
lrwx------. 1 dmdba dmgroup 64 47 15:07 7 -> /opt/dmdbms/data/DAMENG/DAMENG01.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 8 -> /opt/dmdbms/data/DAMENG/DAMENG02.log
lrwx------. 1 dmdba dmgroup 64 47 15:07 9 -> /opt/dmdbms/dameng3.log

总结

表空间恢复操作非常的简单,但是还是需要注意平时在使用过程中的规范
如果还有其他问题,欢迎到达梦社区来提问~
社区地址:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值