【达梦数据库】误删数据库目录问题复现&解决方式

1、环境搭建

1.1、查询数据库版本

select svr_version,build_version,ID_CODE from SYS."V$INSTANCE";

在这里插入图片描述

1.2、创建表

CREATE TABLE "SYSDBA"."TABLE_1"
(
"id" INT,
"name" VARCHAR(50),
"age" INT
);

1.3、插入数据

insert into "SYSDBA"."TABLE_1"("id", "name", "age") 
VALUES(1, 'Tom', 23);
insert into "SYSDBA"."TABLE_1"("id", "name", "age") 
VALUES(2, 'Job', 23);

1.4、查询数据

select * from TABLE_1;
idnameage
1Tom23
2Job23

2、故障重演

2.1、服务器内直接删除整个库文件

rm -rf ./DAMENG/

2.2、查询数据:数据可查

select * from TABLE_1;
idnameage
1Tom23
2Job23

2.3、查看进程:进程存在

ps -ef|grep dmserver

在这里插入图片描述

2.4、查看proc进程文件:deleted

cd /proc/数据库进程号/fd
-----------------------
ls -ltr

在这里插入图片描述

3、数据恢复

3.1、逻辑导出导入-(数据丢失,方案废弃)

3.1.1、全库导出

dexp USERID=SYSDBA/'"Hn@dameng123"'@localhost:5236 directory=/dmdata file=exptest.dmp log=exptest.log full=y tablespace=Y

在这里插入图片描述
加不加tablespace=Y,这里都会出现警告,先忽略。
在这里插入图片描述

3.1.2、重新初始化库

dminit path=/dmdata page_size=32 extent_size=32 charset=0 case_sensitive=0  log_size=2048 db_name=DAMENG instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@dameng123" 

在这里插入图片描述

3.1.3、全库导入

dimp USERID=SYSDBA/'"Hn@dameng123"'@localhost:5236 file=/dmdata/exptest.dmp full=y 

在这里插入图片描述

3.1.4、查询数据:数据丢失

select * from TABLE_1;
idnameage

3.2、DTS工具迁移-(数据丢失,方案废弃)

3.2.1、新环境搭建

初始化一套新环境,参数和原环境一致,原环境切记不要拆掉!!!

dminit path=/dmdata page_size=32 extent_size=32 charset=0 case_sensitive=0  log_size=2048 db_name=DAMENG instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@dameng123" 

3.2.1、配置迁移任务

在这里插入图片描述

3.2.2、迁移任务执行情况

在这里插入图片描述

3.2.3、查询数据:数据丢失

select * from TABLE_1;
idnameage
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值