达梦数据库-备份还原

数据页是最小的存储单元
因此备份的本质就是拷贝有效的数据页到备份集中

系统将REDO日志写入联机日志文件后,再根据归档配置,将REDO日志写入本地归档日志文件

检查点

检查点,checkpoint,是一个数据库事件
按照数据页的修改顺序,将buffer的脏页刷盘,调整CKPT_LSN值,释放日志空间

达梦的检查点分两种:
完全检查点
所有脏页刷盘,调整CKPT_LSN
数据库正常退出会生成一个完全检查点
部分检查点
刷部分脏页,根据dm.ini中的CKPT_FLUSH_RATE 和 CKPT_FLUSH_PAGES参数,确定刷脏页数
执行过程中,DDL/DML操作可正常执行
大多数时候触发的检查点是部分检查点

联机备份与脱机备份

联机备份,就是数据库还在运行,正常提供服务的情况下进行的备份
脱机备份,就是数据库关闭了,进行的备份

脱机备份使用DMRMAN工具

数据备份和归档日志备份

  • 数据备份,针对数据内容,包括:
    库备份
    表空间备份
    表备份
    不指定WITHOUT LOG参数的库备份和表空间备份,包含了REDO日志备份

库备份,又名库级备份,就是备份整个数据库的数据。会拷贝所有数据文件的有效数据页
表空间备份,就是备份某个表空间,又名表空间级备份
表备份,拷贝指定表的所有数据页

  • 归档日志备份,只针对归档日志文件,不涉及数据文件
    既可以联机,也可以脱机

一致性备份和非一致性备份

按备份集中的数据是否满足一致性划分
不指定WITHOUT LOG选项的备份集是一致性备份
包含完整的数据文件和redo日志
可利用一致性备份集恢复到备份时的状态
指定WITHOUT LOG选项的备份集,是非一致备份集
只包含数据文件相关内容,无REDO日志
恢复的数据库无法直接启动,需借助归档日志恢复
有一种情况除外:
脱机备份一个正常的数据库,既可从备份集恢复,也可从归档日志恢复
数据库正常关闭时,会生成完全检查点,备份集不包含REDO日志
表空间备份生成非一致备份集

完全备份和增量备份

按照备份数据的完整性,备份分为:
完全备份
包含全部有效数据页
增量备份
在某个备份集基础上,只收集新修改的数据页
这个备份集称为基备份

根据对基备份的要求,达梦的增量备份分为:
差异增量备份
基备份可以是增量备份,只要最终是一个完全备份即可
累计增量备份
基备份只能是完全备份

还原

联机备份不能保证所有数据也处于一致性状态,因为可能某些事务正在执行
脱机备份也不能保证,因为数据页不一定正常关闭
因此还原后目标库可能处于非一致状态,不能提供数据库服务,需要经过数据库恢复

联机还原和脱机还原

联机还原
数据库处于运行状态,通过SQL语句执行还原
脱机还原
数据库关闭
通过DMRMAN工具

数据还原和归档日志还原

数据还原
库还原
必须脱机
表空间还原
必须脱机
表还原
从表备份集读取数据,恢复表数据,重建索引、约束
必须联机

归档日志还原,将归档日志备份集中的归档日志重新生成到指定目录

完全还原和增量还原

完全还原
用完全备份及还原
增量还原
用增量备份集还原
不过事实上增量还原页过程中包含了完全还原

备份还原过程

不同的备份对象,备份还原过程不同
库备份与还原
备份——还原——恢复(恢复分为恢复一致性、更新DB_MAGIC)
表空间备份与还原
备份——还原——恢复(只有恢复一致性)
表备份与还原
备份——还原
归档备份与还原
备份——还原
![[Pasted image 20240802154157.png|522]]

归档修复

数据库实例正常退出时,会将所有redo log写入本地归档日志文件
但异常关闭时,可能会有部分redo log未写入本地归档日志文件
这样归档日志文件就少了一部分,需要从联机日志文件拷贝过去补齐
本地归档修复,会扫描联机日志文件,补齐,流程如下:
1.收集本地归档日志文件
2.扫描归档文件,得到最后的一个有效RLOG_PKG的偏移
3.删掉偏移之后的多余内容,调整日志文件头信息,再创建一个新的空的归档日志文件
4.扫描联机日志文件,拷贝缺失的redo日志

归档备份还原

归档日志文件保存了所有数据库操作产生的redo日志
所以在一个基准备份集的基础上,加一个完整的归档日志,就可以将数据库恢复到任意时间点

归档备份

归档备份的意思是备份归档日志文件
与联机备份中的将redo日志写入备份集不同

归档还原

归档还原,就是将归档备份集中的归档日志文件,重新拷贝到归档目录

过程:
1. 根据过滤条件,从归档备份集收集需要还原的归档日志文件
2. 在指定目录创建归档文件
3. 从备份集拷贝redo日志,写入

归档日志还原的过程包括:

数据备份还原

一份完整的物理备份集包括数据备份和redo日志备份两部分

备份附加选项

redo log备份

日志备份就是在联机备份的过程中,产生的redo log拷贝到备份集中,因为备份过程中也可能修改数据,并产生redo log。
这样数据库在还原后才能恢复到一致性状态

增量备份和完全备份的redo log备份流程相同
备份开始时,记录一个BEGIN_LSN,备份结束后,记录一个END_LSN
[BEGIN_LSN,END_LSN] 之间的 REDO 日志,就对应备份过程中用户对数据的修改。
其中 BEGIN_LSN=CKPT_LSN,作为日志备份的起点,END_LSN = 数据备份结束时的 FILE_LSN,作为日志备份的终点。

联机库备份默认开启日志备份,可通过WITHOUT LOG取消

还原

还原是备份的逆过程,具体包括数据还原和数据恢复两步。
数据还原的主要目的是将目标数据库还原到备份结束时刻的状态,数据还原的主要动作是将数据页从备份集中拷贝回数据库文件相应位置。
数据恢复则是重做 REDO 日志将数据库恢复到一致性状态。

数据还原

库还原

步骤:

  1. 清理目标库环境
  2. 重建数据库文件
  3. 拷贝数据页
  4. 重建联机日志文件
  5. 修改配置参数等。
[[逻辑结构#表空间|表空间]]还原

用库备份集或表空间备份集,重建表空间数据文件并拷贝数据页,不涉及日志

表还原

包括:
1.表结构还原
2.数据还原
3.重建索引和约束

只在联机状态下执行,不用重做redo log

参考:
备份还原简介 | 达梦技术文档 (dameng.com)
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台 (dameng.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值