达梦数据库redo日志重建


前言

在使用达梦数据库时,redo日志有时会损坏,被删除等各种问题,导致数据库异常,无法启动,本文讲解的是达梦数据库中redo日志重建方法


一、redo日志是什么?

达梦数据库REDO日志文件即重做日志文件,是数据在运行过程中正在使用的日志文件,所以又称为联机日志文件。它存储数据库的事务日志,以便系统在出现系统故障和介质故障时能够进行故障恢复。
删除REDO日志文件,则实例无法正常启动。

二、恢复redo日志方法

1.方法一:还原恢复

有备份文件和归档日志的情况下,使用“备份+归档”进行恢复,这是一种比较保险的恢复方式,可以达到完全恢复的效果,即数据能恢复到发生故障之前的那一刻。

2.方法二:替换REDO日志

没有备份和归档的情况下,可以选择替换REDO日志启动数据库,但是这种方案是不完全恢复,可能会丢失部分数据。
思路:

1、根据原故障库的信息重建一个实例
2、修改新实例redo日志的db_magic,pemnt_magic值
3、将修改redo复制回原故障库,重新启动

1、新键实例

1、查看原故障库的信息(在数据文件目录下可以看到,以dminit开头的log文件)

[dmdba@local92 DAMENG]$ more dminit20220306222659.log 
start init database: V8, 2022-03-06 22:26:59
init params:
	db path: /dm/dmdata/DAMENG
	db name: DAMENG
	auto overwrite: 0
	page size: 32768
	extent size: 32
	time zone: +08:00
	string case sensitive: 1
	charset: 0
	length in char: 0
	page check mode: 0
	page check algorithm id: 0
	priv flag: 0
	rlog enc flag: 0
	use new hash: 1
	blank pad mode: 0
	sec priv mode: 0
	huge with delta: 1
	rlog gen for huge: 0
	pseg_mgr_flag: 0
	char_fix_storage: 0
	sql_log_forbid: 0
	secur_flag: 1

2、在新环境中初始化新实例
注意:新实例的信息一定要和原故障库一致

[dmdba@local92 DAMENG]$ dminit path=/dm db_name=DAMENG page_size=32 extent_size=32 case_sensitive=1 
initdb V8
db version: 0x7000c
License will expire on 2022-09-25
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
 log file path: /dm/DAMENG/DAMENG01.log
 log file path: /dm/DAMENG/DAMENG02.log
write to dir [/dm/DAMENG].
create dm database success. 2022-03-16 16:36:24

2、修改db_magic值和pemnt_magic值

说明:db_magic:数据库魔数 pemnt_magic:数据库永久魔数
1、查看原故障库的db_magic值和pemnt_magic值
注意:用dm自带的工具dmmdf查看,更多使用方法加help查看

[dmdba@local92 DAMENG]$ dmmdf TYPE=1 FILE=/dm/dmdata/DAMENG/SYSTEM.DBF
dmmdf V8
**********************************************************
1 db_magic=1261011608
2 next_trxid=6878674
3 pemnt_magic=1437717675
**********************************************************
Please input which parameter you want to change(1-3), q to quit: 

得到
db_magic=1261011608
pemnt_magic=1437717675

2、修改新实例的db_magic值和pemnt_magic值

[dmdba@local92 DAMENG]$ dmmdf TYPE=2 FILE=/dm/DAMENG/DAMENG01.log

先修改db_magic值
在这里插入图片描述
在这里插入图片描述
再修改pemnt_magic值
在这里插入图片描述
在这里插入图片描述

3、恢复数据库

将修改后的REDO拷贝到负债库,并按照故障库的REDO日志命名,尝试启动数据库
用新的redo日志启动数据库

dmserver /dm/dmdata/DAMENG/dm.ini

在这里插入图片描述
数据库已经启动起来了。

总结

更多信息可前往达梦官网社区
https://eco.dameng.com/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值