前言
达梦数据库有很多文件日志,数据日志,运行日志,重做日志,归档日志等,其中,重做日志和归档日志是特别重要的两种日志,在备份还原中,误删数据文件,可以选择rman工具直接利用备份集还原,但是误删重做日志,在用rman备份还原时,在restore备份集LSN码时,会报错,不能通过rman工具还原,现在小编介绍下误删重做日志时,还原数据库的方法。
1.重做日志
重做日志,又叫 REDO 日志,忠实记录了所有物理页的修改,基本信息包括操作类型、表空间号、文件号、页号、页内偏移、实际数据等。数据库中 INSERT、DELETE、UPDATE等 DML 操作以及 CREATE TABLE 等 DDL 操作最终都会转化为对某些数据文件、某些数据页的修改。因此,在系统故障重启时,通过重做 REDO 日志,可以将数据库恢复到故障时的状态。
DM 数据库默认包含两个扩展名为 log 的日志文件,用来保存 REDO 日志,称为联机重做日志文件。这两个文件循环使用。任何数据页从内存缓冲区写入磁盘之前,必须保证其对应的 REDO 日志已经写入到联机日志文件。
Redo 日志包(RLOG_PKG)是 DM 数据库保存 Redo 日志的数据单元,一个日志包内可保存一个或多个 PTX 产生的 Redo 日志。日志包具有自描述的特性,日志包大小不固定,采用固定包头和可变包头结合的方式,包头记录日志的控制信息,包括类型、长度、包序号、LSN 信息、产生日志的节点号、加密压缩信息、日志并行数等内容。
日志包生成时按照序号连续递增,相邻日志包的 LSN 顺序是总体递增的,但是在 DMDSC集群环境下不一定连续。如果未开启并行日志,RLOG_PKG 包内日志的 LSN 是递增的。如果开启并行日志,一个 RLOG_PKG 包内包含多路并行产生的日志,每一路并行日志的 LSN是递增的,但是各路之间的 LSN 并不能保证 LSN 有序,因此并行日志包内 LSN 具有局部有序ÿ