达梦数据库数据热备份
1、数据的写入
1.1、物理存储结构
1.2、名词概念
LSN | 自动维护自动递增、全局唯一对应一个物理事务 |
---|---|
检查点 | 数据库事件、自动判断发起,手动发起,CHECKPOINT(10),日志切换 依顺序将buffer脏页、rlog buf刷入磁盘 完全、部分检查点 |
undo | 存放被修改记录的旧值old→new |
事务结束后,purge自动释放 | |
UNDO RETENTION、PURGE WAIT TIME | |
redo | 忠实记录了所有物理页的修改,包括undo的修改 操作类型、表空间号、文件号、页号、页内偏移、实际数据等 |
归档 | 循环利用磁盘空间 redo文件异步写入 |
1.3、数据写入的过程
第一步-查询
- 将需要的数据从数据文件中拷贝到buffer中
第二步-修改数据
- 加事务锁
- 将需要修改的数据页放入undo中,并修改buffer中的数据页,在redo_buf中记录数
第三步-提交
- 释放事务锁
- 返回成功信息
- 日志落盘
第四步-检查点到来缓冲区满
- 日志落盘
2、热备份流程
- 数据页刷盘
- 热备份工具:可选用disql或manger
- 热备份类型:库级备份,表空间备份,表备份,归档备份,DDL CLONE
- 库级备份、表空间备份需要打开归档
热备与数据库状态的关系
序号 | 部署架构 | 状态 | 使用限制 |
---|---|---|---|
1 | 单实例 | open | 支持所有备份类型 |
2 | mount | 支持归档备份 | |
3 | 主备 | Primary | 支持所有备份类型 |
4 | Standby | 支持库级、表空间级、归档备份、DDL CLONE | |
5 | DSC | open | 支持库备份、表空间备份、表备份 |
ALTER DATABASE <ADDIMODIFYIDELETE> ARCHIVELOG <归档配置语句>;
<归档配置语句>::='DEST= <归档目标>,TYPE=<归档类型><归档类型>::=<local方式><remote 方式>
<local 方式>.=LOCAL [,FILE SIZE≦<文件大小>][,SPACE LIMIT =<空间大小限制>]
<remote 方式>..=REMOTE [,FILE SIZE =<文件 大小>][,SPACE LIMIT =<空间大小限制>],INCOMING PATH =<归档存放路径>
配置归档
语句 | 含义 |
---|---|
ALTER DATABASE MOUNT; | 修改为mount状态 |
alter database add archivelog | |
'dest=d:\dmdbms\data DAMENG\dmarch1,type=local,file_size=1024,space limit=2048 | 添加一个本地归档 |
ALTER DATABASE ARCHIVELOG: | 打开归档 |
ALTER DATABASE OPEN: | 修改为open状态 |
3、实战-连续归档备份还原
3.1、全量备份数据库
BACKUP DATABASE FULL BACKUPSET '/home/test/dmdba3/archdata/full/1405';
3.2、备份归档日志(增量备份归档)
BACKUP ARCHIVELOG NOT BACKED UP BACKUPSET '/home/test/dmdba3/archdata/1443' COMPRESSED LEVEL 1 PARALLEL 8;
3.3、还原归档(如有多次增量归档,需顺序执行相关还原)
/dmrman CTLSTMT="RESTORE ARCHIVE LOG FROM BACKUPSET '/home/test/dmdba3/archdata/1444' TO ARCHIVEDIR '/home/test/dmdba3/archdata/DAMENG/q13' OVERWRITE 2";
3.4 、restore 全量
./dmrman CTLSTMT="RESTORE DATABASE '/home/test/dmdba3/data/DAMENG/DM/dm.ini' FROM BACKUPSET '/home/test/zyj/dmdba3/archdata/full/1437'"
3.5、RECOVER 归档还原至2024-05-16 14:43:27
./dmrman CTLSTMT="RECOVER DATABASE '/home/test/dmdba3/data/DAMENG/DM/dm.ini' WITH ARCHIVEDIR '/home/test/dmdba3/archdata/DAMENG/q13' UNTIL TIME '2024-05-16 14:43:27'";
3.6、UPDATE
./dmrman CTLSTMT="recover database '/home/test/zyj/dmdba3/data/DAMENG/DM/dm.ini' update DB_MAGIC"
4、常用命令
备份集查看:
RMAN> show backupset 'DB_DAMENG_FULL_2025_05_22_14_47_59'
批量显示备份集:
RMAN>SHOW BACKUPSETS WITH BACKUPDIR '/home/dm_bak1','/home/dm_bak2' ;
查看指定目录下,某数据的所有备份信息:
RMAN>SHOW BACKUPSETS WITH BACKUPDIR '/home/dm_bak' USE DB_MAGIC 1447060265;
查看指定备份集的元数据信息:
RMAN> show backupset 'DB_DAMENG_FULL_2025_05_22_14_47_59' info meta;
以xml 格式输出备份信息到文件:
RMAN>SHOW BACKUPSET 'DB_DAMENG_FULL_2025_05_22_14_47_59' To 'bkp info.txt' FORMAT XML;
https://eco.dameng.com 达梦社区