ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

达梦数据库-归档不完整问题浅谈

2022-02-06 11:31:49  阅读:340  来源: 互联网

标签:浅谈 lsn 备份 LSN 归档 日志 达梦


前言

最近在使用DM8做数据库联机全库备份时报错,-718 归档日志不完整,现在来分析一下这个产生的原因并找到对应的解决办法

注:我使用dm8.1.2.18

达梦8 全库备份相关概念

查看达梦官方的备份与还原手册,达梦的数据库物理备份是把数据文件中的有效数据页备份下来。物理备份包含数据备份和日志备份:

  • 数据备份也就是拷贝有效的数据页内容
  • 日志备份是拷贝备份过程中产生的redo日志,这部分日志实际上就是达梦的归档日志文件,这也就是为什么达梦的联机备份必须要开归档的原因了吧
  • 通过备份数据备份和日志备份,就可以将数据库恢复到执行备份这个时间点了

达梦数据库物理备份内容lsn 阐述
下面看一下 ckpt_lsn,file_lsn,begin_lsn,end_lsn究竟是什么意思,达梦是这样对lsn做的解释 ,也就是可以将lsn 简单的理解为数据库的操作量的标度,在这个标度上可以简单的衡量数据库的变化

LSN(Log Sequence Number)是由系统自动维护的 Bigint 类型数值,具有自动递增、全局唯一特性,每一个 LSN 值代表着 DM 系统内部产生的一个物理事务。物理事务(Physical Transaction,简称 ptx)是数据库内部一系列修改物理数据页操作的集合,与数据库管理系统中事务(Transaction)概念相对应,具有原子性、有序性、无法撤销等特性.
DM 数 据 库 中 与 LSN 相 关 的 信 息 , 可 以 通 过 查 询 v$RLOG 和 v$RAPPLY_PARALLEL_INFO 表来获取。 DM 主要包括以下几种类型的 LSN:

  • CUR_LSN 是系统已经分配的最大 LSN 值。物理事务提交时,系统会为其分配一个唯一的 LSN 值,大小等于 CUR_LSN +
    1,然后再修改 CUR_LSN=CUR_LSN+1。
  • FLUSH_LSN 是已经发起日志刷盘请求,但还没有真正写入联机 Redo 日志文件的最大 LSN 值。
  • FILE_LSN 是已经写入联机 Redo 日志文件的最大 LSN 值。每次将 Redo 日志包 RLOG_PKG 写入联机 Redo 日志文件后,都要修改 FILE_LSN 值。
  • CKPT_LSN 是检查点 LSN,所有 LSN <= CKPT_LSN 的物理事务修改的数据页,都已经从 Buffer 缓冲区写入磁盘, CKPT_LSN 由检查点线程负责调整。
  • begin_lsn、end_lsn:备份开始和结束的lsn值
  • ckpt_lsn:检查点lsn,也就是物理备份有效数据页也的内容
  • file_lsn:联机日志lsn,操作写入归档日志但是没有刷盘的数据

联机备份

达梦数据库的备份命令是这样的,其中有一个参数“without log”,这个参数就是指定备份过程中是否要进行日志备份,显然默认情况下都不会加这个参数,也就是默认情况下进行备份日志,那如果不做日志备份 还原的时候还要指定归档目录 想必会更加麻烦,还是老老实实备份日志吧。

在这里插入图片描述

在这里插入图片描述
那么执行联机备份过程中必然要备份日志,在file_lsn与ckpt_lsn中间的归档日志是一定保留在本地不能被刷掉的。如果被刷掉了,很抱歉要重来一次备份

在这里插入图片描述
达梦文档中给出提示,如果备份过程中报错归档不完成,执行生成检查点操作后就可以正常备份了

结论

那么为了避免产生这样的问题,也就是file_lsn与ckpt_lsn的差值要尽量的小,这样这些归档日志就可以保留在本地不被刷掉,就不会有-718的报错了

  1. 增大归档上限,避免在业务高峰期进行备份,增加file_lsn与ckpt_lsn的差值上限
  2. 提高备份的并行参数和线程数 加快备份速度,缩短备份时间,降低file_lsn与ckpt_lsn的差值下限
  3. 备份前执行生成检查点的操作,也就是将ckpt_lsn值刷到file_lsn附近,减少日志备份量

以上就是我的个人理解了,那么如果有不同理解的欢迎评论区留言。

更多资讯请上达梦技术社区了解: https://eco.dameng.com

标签:浅谈,lsn,备份,LSN,归档,日志,达梦
来源: https://blog.csdn.net/qq_33965675/article/details/122796188

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有