内容简介:本文档风哥主要介绍DM达梦数据库的增量备份与恢复,涵盖增量备份的概念、过程、方法,以及增量恢复的概念、过程、方法等内容,风哥教程参考DM官方文档《DM8备份与恢复手册》、《DM8系统管理员手册》等官方资料。本文档为DM数据库学习系列的第十四篇,重点介绍增量备份与恢复的详细步骤和实战操作。
Part01-基础概念与理论知识
1.1 增量备份概述
增量备份是一种高效的备份方式,它只备份自上次备份以来变化的数据,减少了备份时间和存储空间。
1.1.1 增量备份的定义
增量备份是指备份自上次备份(完全备份或增量备份)以来变化的数据,是一种累积式的备份方式。
1.1.2 增量备份的特点
- 高效性:只备份变化的数据,备份时间短
- 节省空间:备份文件小,节省存储空间
- 依赖性:依赖于前面的备份,不能独立恢复
- 恢复时间长:恢复时需要多个备份文件,时间较长
1.2 增量恢复概述
增量恢复是指使用完全备份和增量备份恢复数据库到最新状态,是一种完整的恢复方式。
1.2.1 增量恢复的定义
增量恢复是指先使用完全备份恢复数据库,然后依次应用增量备份,将数据库恢复到最新状态。
1.2.2 增量恢复的特点
- 完整性:恢复到数据库的最新状态
- 依赖性:依赖于完全备份和增量备份
- 恢复时间长:需要应用多个备份文件,时间较长
- 数据一致性:恢复后的数据与最新状态一致
1.3 增量备份过程
增量备份的过程包括准备、执行和验证三个阶段。
1.3.1 备份准备
- 确认数据库状态
- 检查备份存储空间
- 确认上次备份情况
- 设置备份参数
1.3.2 备份执行
- 启动备份操作
- 识别变化的数据
- 备份变化的数据
- 生成备份集
1.3.3 备份验证
- 检查备份是否成功
- 验证备份集的完整性
- 记录备份信息
- 备份备份集
风哥提示:
1.4 增量恢复过程
增量恢复的过程包括准备、还原、恢复和验证四个阶段。
1.4.1 恢复准备
- 确认故障类型
- 准备备份文件(完全备份和增量备份)
- 停止数据库服务
- 准备恢复环境
1.4.2 还原操作
- 还原完全备份
- 依次还原增量备份
1.4.3 恢复操作
- 应用归档日志
- 应用重做日志
- 打开数据库
1.4.4 恢复验证
- 检查数据库状态
- 验证数据完整性
- 测试数据库功能
- 记录恢复信息
Part02-生产环境规划与建议
2.1 增量备份规划
学习交流加群风哥微信: itpux-com
在生产环境中,合理的增量备份规划可以确保数据库的安全和可恢复性。
2.1.1 备份策略
– 完全备份:每周一次(周日)
– 增量备份:每天一次(周一至周六)
– 日志备份:每15分钟一次
2.1.2 备份时间
- 选择业务低峰期进行备份
- 避免在系统维护窗口进行备份
- 预留足够的备份时间
2.2 增量恢复规划
合理的增量恢复规划可以确保在故障发生时能够快速有效地恢复数据库。
2.2.1 恢复目标
- RTO(恢复时间目标):根据数据库大小和增量备份数量设置
- RPO(恢复点目标):根据增量备份频率设置
2.2.2 恢复策略
- 制定详细的恢复计划
- 明确恢复步骤和责任
- 定期进行恢复演练
- 准备恢复所需的资源
2.3 存储规划
合理的存储规划可以确保备份数据的安全和可访问性。
2.3.1 备份存储
- 本地存储:速度快,适合频繁备份
- 网络存储:容量大,适合长期存储
- 磁带存储:容量大,成本低,适合归档备份
- 云存储:灵活,可扩展性强,适合异地备份
2.3.2 存储配置
– 备份目录:/dm/backup
– 归档目录:/dm/arch
– 备份存储:使用独立的磁盘或存储设备
– 备份保留:保留30天的备份数据
– 异地备份:定期将备份数据复制到异地存储
2.4 性能考虑
增量备份和恢复的性能是生产环境中需要考虑的重要因素。
2.4.1 备份性能优化
- 使用并行备份
- 使用压缩备份
- 选择合适的备份时间
- 优化备份存储性能
2.4.2 恢复性能优化
- 使用并行恢复
- 优化恢复存储性能
- 使用快速恢复技术
- 准备足够的恢复资源
Part03-生产环境项目实施方案
3.1 增量备份方法
详细介绍DM数据库的增量备份方法。
3.1.1 使用DM管理工具进行增量备份
1. 启动DM管理工具
2. 连接数据库
3. 选择”备份还原” → “备份” → “新建备份”
4. 选择备份类型:增量备份
5. 选择备份目标:本地或远程
6. 设置备份文件名和路径
7. 点击”开始”执行备份
8. 查看备份结果
3.1.2 使用SQL语句进行增量备份
# 在线增量备份
SQL> backup database increment to backup_file1 backupset ‘/dm/backup/increment_backup_20230409’;
# 压缩增量备份
SQL> backup database increment to backup_file2 backupset ‘/dm/backup/compressed_increment_backup_20230409’ compress level 5;
# 并行增量备份
SQL> backup database increment to backup_file3 backupset ‘/dm/backup/parallel_increment_backup_20230409’ parallel 4;
3.1.3 使用dmrman工具进行增量备份
$ dmrman
# 在线增量备份
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ increment backupset ‘/dm/backup/increment_backup_20230409’;
# 压缩增量备份
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ increment backupset ‘/dm/backup/compressed_increment_backup_20230409’ compress level 5;
# 并行增量备份
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ increment backupset ‘/dm/backup/parallel_increment_backup_20230409’ parallel 4;
3.2 增量恢复方法
详细介绍DM数据库的增量恢复方法。
3.2.1 使用DM管理工具进行增量恢复
1. 启动DM管理工具
2. 连接数据库
3. 选择”备份还原” → “还原” → “新建还原”
4. 选择还原类型:完全还原
5. 选择完全备份文件
6. 设置还原目标
7. 点击”开始”执行还原
8. 查看还原结果
9. 选择”备份还原” → “还原” → “新建还原”
10. 选择还原类型:增量还原
11. 选择增量备份文件
12. 点击”开始”执行还原
13. 查看还原结果
14. 执行恢复操作
15. 查看恢复结果
3.2.2 使用SQL语句进行增量恢复
更多学习教程公众号风哥教程itpux_com
# 1. 关闭数据库
SQL> shutdown immediate;
# 2. 启动数据库到mount状态
SQL> startup mount;
# 3. 执行完全备份还原
SQL> restore database from ‘/dm/backup/full_backup_20230408’;
# 4. 执行增量备份还原
SQL> restore database increment from ‘/dm/backup/increment_backup_20230409’;
# 5. 执行恢复
SQL> recover database from ‘/dm/backup/full_backup_20230408’;
SQL> recover database with archivelog ‘/dm/arch’;
# 6. 打开数据库
SQL> alter database open;
3.2.3 使用dmrman工具进行增量恢复
# 1. 关闭数据库
[root@fgedu ~]# systemctl stop DmServiceFGEDUDB
# 2. 执行完全备份还原
$ dmrman
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230408’;
# 3. 执行增量备份还原
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ increment from backupset ‘/dm/backup/increment_backup_20230409’;
# 4. 执行恢复
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230408’;
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ with archivelog ‘/dm/arch’;
# 5. 打开数据库 from DB视频:www.itpux.com
RMAN> alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
3.3 备份验证
备份验证是确保备份有效性的重要步骤。
3.3.1 备份验证方法
# 使用SQL语句验证备份
SQL> select * from v$backup_history where backup_type = ‘INCREMENT’;
# 使用dmrman工具验证备份
$ dmrman
RMAN> check backupset ‘/dm/backup/increment_backup_20230409’;
# 手动验证备份文件
[root@fgedu ~]# ls -la /dm/backup/increment_backup_20230409
3.3.2 备份验证内容
- 备份文件是否存在
- 备份文件大小是否合理
- 备份文件是否完整
- 备份是否成功完成
- 备份时间是否正确
3.4 恢复验证
恢复验证是确保恢复成功的重要步骤。
3.4.1 恢复验证方法
# 检查数据库状态
SQL> select status from v$instance;
# 检查数据库打开模式
SQL> select name, open_mode from v$database;
# 验证数据完整性
SQL> select count(*) from fgedu_test;
# 验证数据库功能
SQL> create table test_recovery (id int, name varchar(100));
SQL> insert into test_recovery values (1, ‘test’);
SQL> commit;
SQL> select * from test_recovery;
3.4.2 恢复验证内容
- 数据库是否成功打开
- 数据是否完整
- 数据库功能是否正常
- 应用是否能正常连接
- 性能是否正常
Part04-生产案例与实战讲解
4.1 增量备份实战演示
通过实际操作演示DM数据库的增量备份过程。
4.1.1 创建测试数据
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> create table fgedu_test (id int, name varchar(100));
# 输出信息
操作已执行
SQL> insert into fgedu_test values (1, ‘fgedu1’);
# 输出信息
操作已执行
SQL> commit;
# 输出信息
操作已执行
SQL> select * from fgedu_test;
ID NAME
———– ——————————
1 fgedu1
4.1.2 执行完全备份
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> backup database full to backup_file1 backupset ‘/dm/backup/full_backup_20230408’;
# 输出信息
操作已执行
已生成备份集: /dm/backup/full_backup_20230408
4.1.3 插入新数据
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> insert into fgedu_test values (2, ‘fgedu2’);
# 输出信息
操作已执行
SQL> commit;
# 输出信息
操作已执行
SQL> select * from fgedu_test;
ID NAME
———– ——————————
1 fgedu1
2 fgedu2
4.1.4 执行增量备份
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> backup database increment to backup_file2 backupset ‘/dm/backup/increment_backup_20230409’;
# 输出信息
操作已执行
已生成备份集: /dm/backup/increment_backup_20230409
4.1.5 验证备份
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select backup_id, backup_type, backup_time, backup_path from v$backup_history;
BACKUP_ID BACKUP_TYPE BACKUP_TIME BACKUP_PATH
————- ————— ————————- ——————————
1 FULL 2023-04-08 10:00:00 /dm/backup/full_backup_20230408
2 INCREMENT 2023-04-09 10:00:00 /dm/backup/increment_backup_20230409
SQL> select backup_id, backup_type, backup_time, backup_path, status from v$backupset;
BACKUP_ID BACKUP_TYPE BACKUP_TIME BACKUP_PATH STATUS
————- ————— ————————- —————————— ——–
1 FULL 2023-04-08 10:00:00 /dm/backup/full_backup_20230408 VALID
2 INCREMENT 2023-04-09 10:00:00 /dm/backup/increment_backup_20230409 VALID
4.2 增量恢复实战演示
演示DM数据库的增量恢复过程。
4.2.1 删除测试数据
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> delete from fgedu_test;
# 输出信息
操作已执行
SQL> commit;
# 输出信息
操作已执行
SQL> select * from fgedu_test;
# 输出信息
未选定行
4.2.2 使用SQL语句进行增量恢复
# 1. 关闭数据库
[root@fgedu ~]# systemctl stop DmServiceFGEDUDB
# 2. 启动数据库到mount状态
[root@fgedu ~]# dmserver /dm/fgdata/fgedudb/dm.ini mount
# 3. 执行恢复
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> restore database from ‘/dm/backup/full_backup_20230408’;
# 输出信息
操作已执行
SQL> restore database increment from ‘/dm/backup/increment_backup_20230409’;
# 输出信息
操作已执行
SQL> recover database from ‘/dm/backup/full_backup_20230408’;
# 输出信息
操作已执行
SQL> alter database open;
# 输出信息
操作已执行
# 4. 验证恢复
SQL> select * from fgedu_test;
ID NAME
———– ——————————
1 fgedu1
2 fgedu2
4.2.3 使用dmrman工具进行增量恢复
# 1. 关闭数据库
[root@fgedu ~]# systemctl stop DmServiceFGEDUDB
# 2. 执行恢复
[dmdba@fgedu ~]$ dmrman
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230408’;
# 输出信息
restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230408’;
[main] INFO 2023-04-09 11:00:00: 正在执行还原…
[main] INFO 2023-04-09 11:05:00: 还原成功完成。
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ increment from backupset ‘/dm/backup/increment_backup_20230409’;
# 输出信息
restore database ‘/dm/fgdata/fgedudb/dm.ini’ increment from backupset ‘/dm/backup/increment_backup_20230409’;
[main] INFO 2023-04-09 11:05:30: 正在执行增量还原…
[main] INFO 2023-04-09 11:05:45: 增量还原成功完成。
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230408’;
# 输出信息
recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230408’;
[main] INFO 2023-04-09 11:06:00: 正在执行恢复…
[main] INFO 2023-04-09 11:06:15: 恢复成功完成。
RMAN> alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
# 输出信息
alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
[main] INFO 2023-04-09 11:06:30: 数据库已打开。
4.3 备份验证实战演示
演示DM数据库的备份验证操作。
4.3.1 使用dmrman工具验证备份
[dmdba@fgedu ~]$ dmrman
RMAN> check backupset ‘/dm/backup/increment_backup_20230409’;
# 输出信息
check backupset ‘/dm/backup/increment_backup_20230409’;
[main] INFO 2023-04-09 12:00:00: 正在检查备份集…
[main] INFO 2023-04-09 12:00:30: 备份集检查成功。
备份集路径: /dm/backup/increment_backup_20230409
状态: VALID
4.3.2 手动验证备份文件
[root@fgedu ~]# ls -la /dm/backup/increment_backup_20230409
总用量 102400
drwxr-xr-x 2 dmdba dinstall 4096 4月 9 10:00 .
drwxr-xr-x 3 dmdba dinstall 4096 4月 8 09:00 ..
-rw-r–r– 1 dmdba dinstall 10485760 4月 9 10:00 backup_file2.bak
[root@fgedu ~]# du -sh /dm/backup/increment_backup_20230409
100M /dm/backup/increment_backup_20230409
4.3.3 恢复验证
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select status from v$instance;
STATUS
—————————————
OPEN
SQL> select name, open_mode from v$database;
NAME OPEN_MODE
—————————— ——————–
FGEDUDB READ WRITE
SQL> select * from fgedu_test;
ID NAME
———– ——————————
1 fgedu1
2 fgedu2
SQL> create table test_recovery (id int, name varchar(100));
# 输出信息
操作已执行
SQL> insert into test_recovery values (1, ‘test’);
# 输出信息
操作已执行
SQL> commit;
# 输出信息
操作已执行
SQL> select * from test_recovery;
ID NAME
———– ——————————
1 test
Part05-风哥经验总结与分享
5.1 增量备份技巧与注意事项
基于实际经验,分享一些增量备份的技巧和注意事项。
5.1.1 增量备份技巧
- 选择合适的备份时间,避免业务高峰期
- 使用压缩备份减少存储空间
- 使用并行备份提高备份速度
- 定期验证备份的有效性
- 将备份存储在不同的位置
- 定期清理过期的备份
5.1.2 增量备份注意事项
- 确保备份存储有足够的空间
- 确保备份过程不影响业务运行
- 确保备份数据的安全性
- 定期测试备份的可恢复性
- 记录备份操作的详细信息
5.2 增量恢复技巧与注意事项
基于实际经验,分享一些增量恢复的技巧和注意事项。
5.2.1 增量恢复技巧
- 选择合适的恢复方法
- 确保恢复环境与备份环境一致
- 按照正确的顺序执行恢复操作
- 验证恢复后的数据完整性
- 记录恢复操作的详细信息
5.2.2 增量恢复注意事项
- 确保恢复过程有足够的空间
- 确保恢复过程不影响其他系统
- 确保恢复后的数据一致性
- 定期进行恢复演练
- 制定详细的恢复计划
5.3 最佳实践建议
基于实际经验,提供DM数据库增量备份与恢复的最佳实践。
5.3.1 增量备份最佳实践
5.3.2 增量恢复最佳实践
- 恢复准备:确保恢复环境与备份环境一致
- 恢复顺序:按照完全备份 → 增量备份 → 归档日志的顺序进行恢复
- 恢复验证:恢复后验证数据的完整性和一致性
- 恢复演练:定期进行恢复演练,熟悉恢复流程
- 恢复计划:制定详细的恢复计划,包括恢复步骤、责任人和时间要求
5.3.3 存储最佳实践
- 使用独立的存储设备存储备份数据
- 使用RAID技术提高存储的可靠性
- 定期备份到异地存储,防止本地灾难
- 监控存储使用情况,确保有足够的空间
- 使用压缩减少存储空间
5.3.4 监控最佳实践
- 监控备份的执行状态和结果
- 监控备份存储的使用情况
- 监控备份的执行时间
- 设置备份失败告警
- 定期生成备份报告
5.3.5 灾难恢复最佳实践
- 制定详细的灾难恢复计划
- 定期进行灾难恢复演练
- 确保备份数据的安全性和可访问性
- 建立灾难恢复团队,明确责任分工
- 定期更新灾难恢复计划
本文档风哥教程参考DM官方文档《DM8备份与恢复手册》、《DM8系统管理员手册》等资料编写,。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
