达梦数据库数据文件损坏排查与处理方法

达梦数据库运行日志解析:从WARNING到FATAL的故障排查指南 本文详细解析达梦数据库运行日志中的WARNING、ERROR和FATAL级别报错信息,提供从动态库缺失到磁盘IO超时的全链路故障排查指南。通过实战案例和参数调优技巧,帮助运维人员快速定位并解决数据库运行中的各类问题,提升系统稳定性。 阅读详情

故障排查:

数据库无法启动,或者启动一段之间自动停止

具体现象要具体分析

1.判断系统因素

首先要确定内存空间和存储空间是否满了导致无法启动

查看内存命令:free  -m

查看存储命令:df  -h

 

如果查询结果都是未满的,要具体分析日志考虑是否为数据文件损坏。

  1. 对数据文件完整性进行校验

先停掉数据库外部连接,复制一份当前的数据文件到其他路径下留作备份,注意其他路径下空间大小是否充足。

cp  /opt/dmdbms/data/DAMENG  /home/DAMENG_OLD_BAK1

修改/opt/dmdbms/data/DAMENG/dm.ini中port_num(端口号)为5237(不和其他数据库端口冲突)

保证不会有外部因素影响。

前台启动数据库

cd  /opt/dmdbms/bin/

./dmserver  /opt/dmdbms/data/DAMENG/dm.ini

终端打印出system  is  ready后输入exit停止数据库

在相同路径下执行

./dmdbchk  PATH=/opt/dmdbms/data/DAMENG/dm.ini

检查文件是否有报错

如果损坏,先将当前数据文件文件夹复制一份到其他位置保存,以便有一个最原始的存档。

有备份的情况下,可以基于备份还原。

无备份的情况下,可以尝试通过以下几种方式恢复。

记得将之前修改/opt/dmdbms/data/DAMENG/dm.ini中port_num(端口号)为5237改回5236。

恢复数据库方法:

数据库宕机后,此时服务停止,需要做以下操作尝试启动数据库服务

注意不要有任何应用连接数据库,以下方法均基于最初损坏时环境来进行操作,请不要直接将方法一和方法二连续使用,防止操作导致复制出的文件夹过多使人记忆混乱,操作失误

方法一:

1。确认服务状态 ,停服务

关于文件夹的操作,请注意是哪个路径下的文件夹

2。先复制一份当前的数据文件到其他路径下留作备份

cp  /opt/dmdbms/data/DAMENG  /home/DAMENG_OLD_BAK1

复制请注意其他路径下空间大小是否充足。

3。将当前(旧)数据库文件目录重命名

mv  /opt/dmdbms/data/DAMENG  /opt/dmdbms/data/DAMENG_OLD_BAK

(当前路径/opt/dmdbms/data/下应该只有DAMENG_OLD_BAK文件夹)

4。查看初始化参数

/opt/dmdbms/data/DAMENG_OLD_BAK文件夹中dminit+时间.log

5。打开终端,初始化一个新库,所有参数与之前库相同

cd  /opt/dmdbms/bin/

./dminit path=/opt/dmdbms/data/ UNICODE_FLAG=1 CASE_SENSITIVE=0 EXTENT_SIZE=16 PAGE_SIZE=8 (后接参数视现场情况而定)

此时生成的DAMENG文件夹为新库的文件夹

(当前路径/opt/dmdbms/data/下应该有DAMENG(新库).DAMENG_OLD_BAK(旧库)两个文件夹)

6。初始化库完成后,启动新库服务一次:

./dmserver  /opt/dmdbms/data/DAMENG/dm.ini

终端打印出system  is  ready后输入exit或按ctrl+c停止服务

 

7。拷贝出新库的ROLL.DBF文件,移走所有新库数据文件

cp  -r  opt/dmdbms/data/DAMENG/ROLL.DBF  /opt/dmdbms/data/

mv  /opt/dmdbms/data/DAMENG  /opt/dmdbms/data/DAMENG_NEW_BAK

(当前路径/opt/dmdbms/data/下应该有DAMENG_NEW_BAK(新库)和DAMENG_OLD_BAK(旧库)两个文件夹)

8。复制一份旧库数据文件,命名为之前的名称

cp  -r  /opt/dmdbms/data/DAMENG_OLD_BAK  /opt/dmdbms/data/DAMENG

将刚刚新库拿出来的ROLL.DBF替换到旧库复制出来的文件夹中

mv  /opt/dmdbms/data/DAMENG/ROLL.DBF  /opt/dmdbms/data/DAMENG/ROLL_BAK.DBF

cp  /opt/dmdbms/data/ROLL.DBF  /opt/dmdbms/data/DAMENG/ROLL.DBF

(当前路径下应该有DAMENG_NEW_BAK(新库).DAMENG_OLD_BAK(旧库)DAMENG(旧库复制过来的) 三个文件夹)

9。尝试启动已宕机的数据库:打开终端,cd进入/opt/dmdbms/bin目录下,执行以下命令启动宕机数据库:./dmserver /opt/dmdbms/data/DAMENG/dm.ini

如服务启动成功,应用访问正常,则数据库恢复成功。

此方法如果无法恢复数据库正常提供服务,请使用以下方法尝试

方法二:

1。确认服务状态 ,停服务

关于文件夹的操作,请注意是哪个路径下的文件夹

2。先复制一份当前的数据文件到其他路径下留作备份

cp  /opt/dmdbms/data/DAMENG  /home/DAMENG_OLD_BAK1

复制请注意其他路径下空间大小是否充足。

3.。查看初始化参数

/opt/dmdbms/data/DAMENG文件夹中dminit+时间.log

(当前路径/opt/dmdbms/data/下应该只有DAMENG文件夹)

4。打开终端,初始化一个新库,所有参数与之前库相同

cd  /opt/dmdbms/bin/

./dminit path=/opt/dmdbms/data/ DB_NAME=DAMENG2 PORT_NUM=5237 UNICODE_FLAG=1 CASE_SENSITIVE=0 EXTENT_SIZE=16 PAGE_SIZE=8 (后接参数视现场情况而定)

此时生成的DAMENG1文件夹为新库的文件夹

(当前路径/opt/dmdbms/data/下应该有DAMENG1(新库),DAMENG(旧库)两个文件夹)

5。首先前台启动旧数据库

cd  /opt/dmdbms/bin/

./dmserver  /opt/dmdbms/data/DAMENG/dm.ini(此窗口不要关闭,关闭数据库也会停止)

6。新打开窗口,前台启动新数据库

cd  /opt/dmdbms/bin/

./dmserver  /opt/dmdbms/data/DAMENG1/dm.ini(此窗口不要关闭,关闭数据库也会停止)

以上两个窗口不要关闭

7。打开达梦迁移工具(dts)

新打开一个窗口

cd  /opt/dmdbms/tool/

./dts

此时会启动达梦迁移工具

使用迁移工具将旧数据库数据迁移到新数据库中,期间会遇到数据文件损坏的表,然后会导致旧数据库再次宕机,此时需要记录是哪张表导致的,然后重新打开旧数据库,再次迁移,此次将上次导致迁移失败的表取消勾选,然后迁移,尽可能将表都迁过去,如有报错,依次跳过报错表,最后总结报错表,将表结构,数据导出为SQL语句。在新库中通过sql语句创建,尝试修复。

达梦数据库出现故障无法启动解决方法-通过归档日志修复数据库 通过归档日志修复数据库(有备份、有归档) 当我们的数据库在发生故障后,这个时候无法启动数据库。只要我们的数据库有备份、有归档。这个时候我们就可以让数据库恢复到发生故障前的一刻。 我们可以通过达梦的DMRMAN工具和达梦的DM控制台工具就可以让数据库恢复到任意的一个时间点或者时数据库的一个最新状态。 首先,确保数据库的归档是打开的。必须要有归档日志(确保归档日志是完整的)。 以下图为例: 下面我们来模拟一下数据库发生故障无法启动的一个过程以及对数据库恢复的一个过程。 首先我们必须要打开归档。 [dmdb 阅读详情

相关推荐

Silverlight Bing Maps遗留系统维护迁移实战指南

Silverlight和Bing Maps作为早期Web地理信息开发的核心技术栈,虽已停止官方支持,但仍在大量政企关键业务系统中稳定运行。其技术原理基于插件化富客户端架构、WCF RIA Services数据绑定及V7 SDK离线地图渲染机制,具备强稳定性低运维侵入性。在现代Windows环境(Win10/11 IE模式)下,通过.NET Framework版本控制、CDN资源离线化、DOM容器劫持等工程手段可实现可靠复现。技术价值在于支撑百万级点位热力图、自定义空间索引查询混合架构平滑演进,广泛应用于

ciyinzhi8788的博客 309

解决达梦数据库服务启动失败,错误 2: 系统找不到指定的文件

当在我们在Window环境下使用达梦数据库的过程中,可能会遇到这种错误,重启电脑后达梦数据库突然连接不上了,无法访问,但是我们打开任务管理器查看服务时,会发现DmServiceDMSERVER仍然存在,但是已停止的状态。不是删除数据库实例!此时,如果我们点击bin目录下的dmserver.exe文件,也无法启动达梦数据库,启动时会闪退,我们打开DM数据库配置工具,点击重新注册服务,也会注册失败。6.执行成功不会有提示 ,但此时我们再去看任务管理器中,DmServiceDMSERVER服务已经被删除了。

十三月的博客 6342

达梦数据库日志异常解析:从WARNING到FATAL的实战排查指南

本文提供了一份达梦数据库日志异常排查的实战指南。文章将实例日志比作数据库的“健康体检报告”,详细解读了从WARNING、ERROR到FATAL各级别告警信息的含义重要性,并结合真实案例分享了针对动态库加载、网络通信、授权到期、存储错误、内存分配、连接数超限等典型问题的排查步骤解决方案,帮助DBA快速定位并解决数据库故障。

pink的博客 565

达梦数据库DM8数据文件损坏无备份恢复

通过日志挖掘在没有数据库备份的情况下,恢复丢失的数据

liuyanwei1024的博客 2236

达梦数据库-物理文件损坏或者误删恢复

达梦数据库-物理文件损坏或者误删恢复

wswxs1的博客 1749

启动和停止达梦实例

第一种:在/dm/dmdbms/tool目录下调用dmservice.sh应用(需要图形化支持) 第二种:通过系统服务,也是我们之前说的注册服务的好处(如果没有注册,只能每次手动执行dmserver,比较麻烦) 第三种:有一个弊端,前两种都可以在后台运行(启动窗口是可以关闭的),而命令行模式是不能够关闭的,关了以后实例也就结束了,一般只有在做运维的时候在没有注册服务时,临时的一个方法 第一种方法:启动服务查看器 重启DAVE的服务,如果出现如下报错,说明krb5缺失,K...

CoIin的博客 3868

达梦数据库宕机问题分析及处理

ts_id(1) file_id(0) page_no(34748) page_type(0) index_id(0),又提供了丰富的信息。达梦数据库宕机往往会产生core文件,解读core文件是分析宕机原因的主要手段,类似oracle的diag.trc或system dump转储文件,记录数据库线程状态、sql语句等。的确发生致命错误,解读一下P0000598124 代表数据库进程号是598124,意义不大,但后面的T0000000000001077554代表线程1077554号,很重要。

whn1977的博客 1945

【记录备用】达梦数据库相关故障及解决方法

本章节主要介绍达梦数据库故障处理常见问题,为用户提供故障处理常见问题的分析和解决思路。除此之外,用户还可前往达参更多问题讨论。

一名资深全栈开发工程师的博客 2151

达梦数据库备份还原

文章达梦数据库(DM)的备份还原是确保数据安全的重要手段。

2301_81247953的博客 2259

达梦数据库——常见运行日志报错信息记录

达梦数据库运行日志报错信息汇总

weixin_46458436的博客 2774

达梦数据库 Redo 文件损坏修复:替换联机日志,临时抢救数据

Redo 文件损坏修复最容易误解的地方,是把“启动成功”当成“数据库修好了”。Redo 完整时,数据库可以进行正常实例恢复;Redo 丢失或损坏时,优先选择备份加归档恢复;没有正规恢复条件时,替换 Redo 只是临时抢救数据;新 Redo 不能恢复原 Redo 中已经丢失的历史记录;db_magic匹配只是第一层检查通过,不代表 Redo 包一定能解析;不是修复 Redo,而是高风险跳过事务恢复步骤;本次起到了继续启动的作用,是否需要处理则取决于版本和dmmdf输出,本次没有修改;

2503_92351106的博客 380

达梦数据库处理用户过期密码方式

1.windows环境下 1.1开启数据库服务 1.1.1在windows环境下,直接在服务里面找到DmServiceDMSERVER打开即可 1.1.2命令行方式:dmserver.exeh:\dmdbms\data\DAMENG\dm.ini 1.2因用户密码过期,故使用SYSDBA系统管理员用户登入数据库 1.2.1推荐直接使用管理工具,双击即可 1.2.2命令行方式:disqlSYSDBA/SYSDBA@localhost 1.3对密码已经过期的用户进行密码重设,以下为例子 --在管

Robo's Blog【海阔凭鱼跃,天高任鸟飞】 1万+

达梦数据库表数据或者物理文件误删除或者损坏恢复方法

一.数据库表数据误删除 情况一:之前没有做备份或者忘记做备份了,这种情况下不能恢复误删除的数据 情况二:做了备份并且也配置了归档,这种情况下可以通过备份文件恢复+还原归档日志的方式恢复到指定时间点 模拟测试: 1.查询归档是否开启,若没开启需要开启一下 或者 2.构造数据 3.手动备份,为了方便使用联机备份方式 4.插入数据,记录时间点 5.删除数据,记录时间点 6.恢复备份文件 注意:联机恢复仅支持表级的恢复,全库恢复必须脱机还原 ...

January01的博客 3799

达梦8数据守护之读写分离集群部署

读写分离集群高可用架构,同实时主备架构,配置大同小异,主要区别在于归档模式的设置。读写分离集群是主库对外提供服务,备库对外提供只读服务。

weixin_48195231的博客 463

达梦数据库License到期更换

达梦数据库在使用过程中,需要达梦提供License,也就是dm.key,这个key有临时和永久两种,而使用临时key需要注意隔段时间需要更换License,不然到期以后数据库就会出现问题,即便服务没有退出,调用数据库的时候也会出现报错。一如上图(本地测试库)所示,IP地址前面有一个带圈的感叹号,也就说明目前数据库存在一些问题,可以通过鼠标移至IP地址上查看问题所在,上图的问题就是License即将到期,所以DEM出现了提示,这个时候就需要及时进行更换。(1)停机更新(即重启更新)4° 重启数据库服务。

weixin_43824515的博客 1万+

配置达梦主备

配置实时主备 1.1环境说明 2.1数据库初始化(按照主库的初始化参数进行配置) 备库: ./dminit PATH=’/opt/dmdbms/data/ ’ 注册服务: [root@~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /opt/dmdbms/data/DAMENG/dm.ini 2.2联机备份、脱机还原方式 1.对主库进行联机备份操作 SQL>BACKUP DATAB

yzydba913390358的博客 532
上一篇: DM7定时创建备份文件和定时删除备份文件
下一篇: 达梦企业管理器DEM的安装部署
ooolm
博客等级 码龄6年 1粉丝 · 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值