DM数据库一次redo日志损坏修复的经历

2024-04-19 16:12

本文主要是介绍DM数据库一次redo日志损坏修复的经历,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 缘由

   服务器意外断电了,重新上电后发现DM数据库不能连接,提示网络通信异常,数据库拒绝连接。通过服务查看器发现数据库服务停止,并且手动启动失败,code=exited,status=1/failure。

2 问题排查

    网上查资料说code=1,status=1可能是需要用dmdba用户启动,用root用户启动时会出现这个故障,同时建议通过/opt/dmdbms/bin/dmserver  dm.ini的方式手动启动服务。

    经过尝试,dmdba用户启动服务同样失败,使用命令行手动启动时,提示redo日志有invalid记录,启动失败,errocde=-723。至此查明故障原因是断电导致的redo日志损坏,从而引起的数据库服务启动失败。

3 故障修复

   redo日志损坏无法自动修复,需要重建一个同样的实例,老替换redo日志文件。具体操作如下:

 1)根据原服务的dminitxx.log中的记录生成一个新的实例:

#/opt/dmdbms/bin/dminit  path=/home/dmdba/data charset=1 
case_sensitive=0 port_num=5237

  port_num=5237是需要和已有的端口错开。

2)启动新实例并退出。

     启动新实例:

#/opt/dmdbms/bin/dmserver  /home/dmdba/data/DAMENG/dm.ini

    等输出system is ready时输入exit退出。

3)查看原库的db_magic

 $./dmmdf type=1 file=/home/dmdba/data/DAMENG/SYSTEM.DBF

4)修改新库的db_magic值

 $./dmmdf type=2 file=/home/dmdba/data/DAMENG/DAMENG01.log$./dmmdf type=2 file=/home/dmdba/data/DAMENG/DAMENG02.log

5)将原库的redo日志改名备份,拷贝新库的redo日志

6)修改原库(5237) dm.ini 文件 PSEG_RECV=0

     该文件内容较多,可以vim的使用:/PSEG搜索

7)将原库服务启动正常关闭后,再次将 PSEG_RECV改回 3

8)正常启动原库,修复完成

4 重启服务器,OK,数据库服务正常了。

这篇关于DM数据库一次redo日志损坏修复的经历的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918026

相关文章

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

Java 日志中 Marker 的使用示例详解

《Java日志中Marker的使用示例详解》Marker是SLF4J(以及Logback、Log4j2)提供的一个接口,它本质上是一个命名对象,你可以把它想象成一个可以附加到日志语句上的标签或戳... 目录什么是Marker?为什么使用Markejavascriptr?1. 精细化的过滤2. 触发特定操作3

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

MySQL批量替换数据库字符集的实用方法(附详细代码)

《MySQL批量替换数据库字符集的实用方法(附详细代码)》当需要修改数据库编码和字符集时,通常需要对其下属的所有表及表中所有字段进行修改,下面:本文主要介绍MySQL批量替换数据库字符集的实用方法... 目录前言为什么要批量修改字符集?整体脚本脚本逻辑解析1. 设置目标参数2. 生成修改表默认字符集的语句3

linux查找java项目日志查找报错信息方式

《linux查找java项目日志查找报错信息方式》日志查找定位步骤:进入项目,用tail-f实时跟踪日志,tail-n1000查看末尾1000行,grep搜索关键词或时间,vim内精准查找并高亮定位,... 目录日志查找定位在当前文件里找到报错消息总结日志查找定位1.cd 进入项目2.正常日志 和错误日

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

SpringBoot日志级别与日志分组详解

《SpringBoot日志级别与日志分组详解》文章介绍了日志级别(ALL至OFF)及其作用,说明SpringBoot默认日志级别为INFO,可通过application.properties调整全局或... 目录日志级别1、级别内容2、调整日志级别调整默认日志级别调整指定类的日志级别项目开发过程中,利用日志