达梦8误删表空间数据文件恢复实操(vmware凝思磐石6.0)

news/2024/11/29 9:00:16/

目录

 

一、说明

1.1、表空间文件失效检查

1.2、表空间失效文件恢复

二、实操

2.1、环境准备

2.2、删除表空间数据文件

2.3、恢复表空间数据文件


一、说明

1.1、表空间文件失效检查

LINUX 操作系统中,被进程打开的文件仍可以在 OS 系统中被删除,因此存在 DM 数据文件可能被误删的风险。如果数据文件被删除,DM8 数据库能够及时检测出来,并立刻停止对其继续使用并通知用户。在 dm.ini 中参数 FIL_CHECK_INTERVAL 的值指定 DM8 数据库检查数据文件是否仍存在的时间间隔,将其设为 0 表示不进行检查。也可以通过系统过程 SP_FILE_SYS_CHECK() 来手动的进行检查。系统一旦检测出某个表空间内的数据文件被删除,则与该表空间所有的操作都将会失败,并报错该表空间内有数据文件被删除。

1.2、表空间失效文件恢复

达梦官方手册提供的恢复方法如下:

LINUX 系统中被删除的文件,只要其句柄没有被关闭,可以在/proc/<pid>/fd 中找到其对应的文件副本。其中<pid>指打开该文件的进程 id。利用该方法,结合 OS 命令,DM 提供失效文件的恢复方案如下:
1、 调用系统过程 SP_TABLESPACE_PREPARE_RECOVER(tablespace_name)准备进行恢复;
2、 如果使用过程中 DM 报错表空间数据文件被删除,通过操作系统的 ps 命令找到当前dmserver 的 PID:ps –ef|grep dmserver; 
3、 使用操作系统 ls 命令查看被删除文件对应的副本:ls /proc/<PID>/fd–l,会发现被删除的文件后有(deleted)字样; 
4、 使用操作系统的 cp 命令将文件复制到原位置:cp bak_fildata_file_path_dir; 
5、 复制成功后,调用系统过程 SP_TABLESPACE_RECOVER(ts_name)完成表空间失效文件的恢复。
注意,要保证数据文件正确修复,需要保证在 SP_TABLESPACE_PREPARE_RECOVER后进行数据文件的复制。

二、实操

2.1、环境准备

1.创建表空间

dmdba@dmdsc01:~/dmdbms/bin$ ./disql sysdba/SYSDBA服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 28.147(ms)
disql V8
SQL> create tablespace test datafile '/home/dmdba/dbdata/dmdata/TEST.DBF' size 32;
操作已执行
已用时间: 258.774(毫秒). 执行号:14700.
SQL> select tablespace_name, file_name, status from dba_data_files;行号     TABLESPACE_NAME FILE_NAME                                STATUS   
---------- --------------- ---------------------------------------- ---------
1          SYSTEM          /home/dmdba/dbdata/dmdata/OMS/SYSTEM.DBF AVAILABLE
2          TEST            /home/dmdba/dbdata/dmdata/TEST.DBF       AVAILABLE
3          MAIN            /home/dmdba/dbdata/dmdata/OMS/MAIN.DBF   AVAILABLE
4          TEMP            /home/dmdba/dbdata/dmdata/OMS/TEMP.DBF   AVAILABLE
5          ROLL            /home/dmdba/dbdata/dmdata/OMS/ROLL.DBF   AVAILABLE已用时间: 85.315(毫秒). 执行号:14701

2.创建用户指定表空间并授权

SQL> create user test identified by test_1234 default tablespace test;
操作已执行
已用时间: 53.491(毫秒). 执行号:14702.
SQL> grant dba to test; 
操作已执行
已用时间: 9.860(毫秒). 执行号:14703.

3.切换新用户创建表并插入数据

SQL> conn test/test_1234;服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 9.534(ms)
SQL> create table test(id int, name varchar2(32)); 
操作已执行
已用时间: 21.311(毫秒). 执行号:14800.
SQL> insert into test values(1,'lilv');
影响行数 1已用时间: 1.581(毫秒). 执行号:14801.
SQL> commit;
操作已执行
已用时间: 2.377(毫秒). 执行号:14802.
SQL> select * from test;行号     ID          NAME
---------- ----------- ----
1          1           lilv已用时间: 2.065(毫秒). 执行号:14803.

2.2、删除表空间数据文件

1.删除数据文件

dmdba@dmdsc01:~/dbdata/dmdata$ ls -lrth TEST.DBF 
-rw-r--r-- 1 dmdba dinstall 32M 4月  26 00:43 TEST.DBF
dmdba@dmdsc01:~/dbdata/dmdata$ rm -rf TEST.DBF 
dmdba@dmdsc01:~/dbdata/dmdata$ ls -lrth TEST.DBF 
ls: 无法访问TEST.DBF: 没有那个文件或目录

2.验证

SQL> select * from test;行号     ID          NAME
---------- ----------- ----
1          1           lilv已用时间: 0.761(毫秒). 执行号:14804.
SQL> call SP_FILE_SYS_CHECK();
DMSQL 过程已成功完成
已用时间: 1.216(毫秒). 执行号:14805.
SQL> select * from test;
select * from test;
[-3430]:表空间[TEST]中文件[/home/dmdba/dbdata/dmdata/TEST.DBF]已被删除.
已用时间: 0.912(毫秒). 执行号:0.

2.3、恢复表空间数据文件

1.执行准备恢复过程

SQL> call sp_tablespace_prepare_recover('TEST');
DMSQL 过程已成功完成
已用时间: 1.270(毫秒). 执行号:14807.

2.查看达梦进程,根据进程好查找被删除的文件,然后还原数据文件到原始目录

dmdba@dmdsc01:~/dmdbms/bin$ ps -ef|grep dmser
dmdba      1763      1  0 4月25 ?       00:01:10 /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dbdata/dmdata/OMS/dm.ini -noconsole
dmdba     10574   4586  0 00:55 pts/1    00:00:00 grep dmser
dmdba@dmdsc01:~/dmdbms/bin$ ls /proc/17
17/   170/  1763/ 
dmdba@dmdsc01:~/dmdbms/bin$ ls /proc/1763/fd -l
总用量 0
lr-x------ 1 dmdba dinstall 64 4月  25 22:55 0 -> /dev/null
l-wx------ 1 dmdba dinstall 64 4月  25 22:55 1 -> /home/dmdba/dmdbms/log/DmServiceDMSERVER.log
lrwx------ 1 dmdba dinstall 64 4月  26 00:56 50 -> /home/dmdba/dbdata/dmdata/TEST.DBF (deleted)dmdba@dmdsc01:~/dmdbms/bin$ cp /proc/1763/fd/50 /home/dmdba/dbdata/dmdata/TEST.DBF

3.执行恢复过程并检查

SQL> call sp_tablespace_recover('TEST');
DMSQL 过程已成功完成
已用时间: 5.500(毫秒). 执行号:14808.
SQL> call SP_FILE_SYS_CHECK();
DMSQL 过程已成功完成
已用时间: 0.995(毫秒). 执行号:14809.

4.验证

SQL> select tablespace_name, file_name, status from dba_data_files;行号     TABLESPACE_NAME FILE_NAME                                STATUS   
---------- --------------- ---------------------------------------- ---------
1          SYSTEM          /home/dmdba/dbdata/dmdata/OMS/SYSTEM.DBF AVAILABLE
2          TEST            /home/dmdba/dbdata/dmdata/TEST.DBF       AVAILABLE
3          MAIN            /home/dmdba/dbdata/dmdata/OMS/MAIN.DBF   AVAILABLE
4          TEMP            /home/dmdba/dbdata/dmdata/OMS/TEMP.DBF   AVAILABLE
5          ROLL            /home/dmdba/dbdata/dmdata/OMS/ROLL.DBF   AVAILABLE已用时间: 27.772(毫秒). 执行号:14810.
SQL> select * from test;行号     ID          NAME
---------- ----------- ----
1          1           lilv已用时间: 0.951(毫秒). 执行号:14811.

 


http://www.ppmy.cn/news/179941.html

相关文章

阿里Q1财报解读:核心业务稳如磐石,多引擎驱动增长

北京时间8月20日&#xff0c;刚被纳入恒生指数的阿里巴巴对外公布了其2021财年Q1财报。在后疫情时代整体经济环境仍受影响的大背景下&#xff0c;阿里巴巴新财年的首份财报也颇受市场关注。 先来看下财报的基本面&#xff1a; 在截至2020年6月30日的三个月内&#xff0c;阿里巴…

智慧磐石综合多业务光端机产品介绍

单模/单纤千兆/FC&#xff1b;支持1路五防一体化系统数据信号&#xff1b;支持1路双向智能报警控制终端信号&#xff1b;支持2路五防一体化系统电话机信号&#xff1b;支持2路双向模拟视频信号&#xff1b;支持4路双向开关量信号&#xff1b; 标准机架。型号&#xff1a;HY-2V(…

sis新地址_坚若磐石不掉速,老平台升级新选择,入手昱联Asint 500G SSD

我是文章的原作者&#xff0c; 文章首发于&#xff1a;什么值得买 爱折腾的老狐狸​zhiyou.smzdm.com 首发文章链接&#xff1a; 坚若磐石不掉速&#xff0c;老平台升级新选择&#xff0c;入手昱联Asint 500G SSD _值客原创_什么值得买​post.smzdm.com 虽然说&#xff0c;现在…

《磐石计划:Web安全漏洞与渗透测试》笔记

课程&#xff1a;磐石计划&#xff1a;Web安全漏洞与渗透测试 主讲老师&#xff1a;陈殷 课程详情&#xff1a;https://www.cnblogs.com/xuanhun/p/12849767.html 本文内容&#xff1a;磐石计划课堂笔记 引用&#xff1a;课程讲义&#xff08;作者&#xff1a;陈殷&#xff09;…

为君作磐石——人人都能搭建大规模推荐系统

前言 什么是个性化推荐&#xff1f;简单说&#xff0c;就是给用户推荐他喜欢的物品。近 10 年&#xff0c;移动互联网高速发展&#xff0c;个性化推荐扮演了很重要的角色。以运营一款内容类产品为例&#xff1a;用户增长团队通过广告投放等手段为产品拉新&#xff0c;提升 DAU&…

常见的23种设计模式和七大设计模式原则,一篇文章就搞定了!

在软件开发中&#xff0c;设计模式是一种经过验证的解决方案&#xff0c;它可以帮助开发人员更好地组织和编写代码。设计模式不仅可以提高代码的可读性和可维护性&#xff0c;还可以加速软件开发的进程。 本文将介绍常见的23种设计模式和七大设计模式原则&#xff0c;并对每个…

线程的创建(Runnable,Future,CompletionService,CompletableFuture的辨析)

直接使用Thread 直接让某个类继承Thread类&#xff0c;复写run方法&#xff0c;外部调用的时候直接调用start方法。 因为java的单继承模式&#xff0c;但是我们一般不直接使用这种方法。 使用Runnable Slf4j public class MyTask implements Runnable {Overridepublic void …

史上最贵的国产手机华为 Mate20 系列发布,价格最高超过 15000

对于华为来说&#xff0c;今年 Mate 20 系列的意义不可谓不重大。作为华为公司乃至整个国产手机阵营内的扛鼎之作&#xff0c;Mate 系列注定要承载外界的更多期待&#xff1b;而 Mate10 到 Mate20 的跨越式命名&#xff0c;又将这种期待无端放大了不少。在这种情况下&#xff0…