内容简介:本文档风哥主要介绍DM达梦数据库的备份与恢复基础,涵盖备份类型、恢复类型、备份策略、备份方法、恢复方法等内容,风哥教程参考DM官方文档《DM8备份与恢复手册》、《DM8系统管理员手册》等官方资料。本文档为DM数据库学习系列的第十二篇,重点介绍备份与恢复的基础概念和实战操作。
Part01-基础概念与理论知识
1.1 备份与恢复概述
备份与恢复是数据库管理的重要组成部分,它确保了数据库在发生故障时能够快速恢复,保障业务的连续性。
1.1.1 备份的定义
备份是指将数据库的数据和结构复制到其他存储介质的过程,以便在数据库发生故障时能够恢复数据。
1.1.2 恢复的定义
恢复是指在数据库发生故障时,使用备份的数据将数据库恢复到正常状态的过程。
1.1.3 备份与恢复的重要性
- 数据保护:防止数据丢失
- 业务连续性:确保业务的持续运行
- 灾难恢复:在灾难发生时能够快速恢复
- 合规要求:满足行业法规和审计要求
1.2 备份类型介绍
DM数据库支持多种备份类型,不同的备份类型适用于不同的场景。
1.2.1 按备份方式分类
- 物理备份:直接复制数据库文件,包括数据文件、控制文件、日志文件等
- 逻辑备份:导出数据库对象和数据,如表、视图、存储过程等
1.2.2 按备份范围分类
- 完全备份:备份整个数据库
- 增量备份:备份自上次备份以来变化的数据
- 差异备份:备份自上次完全备份以来变化的数据
1.2.3 按备份状态分类
- 热备份:数据库在线时进行备份
- 冷备份:数据库离线时进行备份
1.3 恢复类型介绍
DM数据库支持多种恢复类型,不同的恢复类型适用于不同的故障场景。
1.3.1 按恢复方式分类
- 物理恢复:使用物理备份恢复数据库
- 逻辑恢复:使用逻辑备份恢复数据库
1.3.2 按恢复范围分类
- 完全恢复:恢复到数据库的最新状态
- 不完全恢复:恢复到数据库的某个特定时间点
1.3.3 按恢复场景分类
风哥提示:
- 实例恢复:数据库实例崩溃后的恢复
- 介质恢复:存储介质损坏后的恢复
- 时间点恢复:恢复到指定时间点
1.4 备份策略设计
合理的备份策略设计是确保数据库安全的关键。
1.4.1 备份策略的要素
- 备份频率:多长时间进行一次备份
- 备份类型:使用哪种备份类型
- 备份存储:备份存储的位置和介质
- 备份保留:备份的保留时间
- 备份验证:如何验证备份的有效性
1.4.2 常见备份策略
- 每日完全备份:每天进行一次完全备份
- 每周完全备份+每日增量备份:每周进行一次完全备份,每天进行一次增量备份
- 每月完全备份+每周差异备份+每日增量备份:每月进行一次完全备份,每周进行一次差异备份,每天进行一次增量备份
Part02-生产环境规划与建议
2.1 备份规划
在生产环境中,合理的备份规划可以确保数据库的安全和可恢复性。
2.1.1 备份目标
- 数据保护:防止数据丢失
- 快速恢复:在故障发生时能够快速恢复
- 最小停机时间:减少恢复过程中的停机时间
- 合规要求:满足行业法规和审计要求
学习交流加群风哥微信: itpux-com
2.1.2 备份频率规划
– 完全备份:每周一次(周日)
– 差异备份:每天一次(周一至周六)
– 增量备份:每小时一次
– 日志备份:每15分钟一次
2.2 恢复规划
合理的恢复规划可以确保在故障发生时能够快速有效地恢复数据库。
2.2.1 恢复目标
- RTO(恢复时间目标):从故障发生到数据库恢复正常运行的时间
- RPO(恢复点目标):故障发生后,数据可能丢失的最大时间量
2.2.2 恢复策略
- 完全恢复:恢复到数据库的最新状态
- 时间点恢复:恢复到指定的时间点
- 表级恢复:仅恢复特定的表
2.3 存储规划
合理的存储规划可以确保备份数据的安全和可访问性。
2.3.1 存储介质选择
- 本地磁盘:速度快,适合频繁备份
- 网络存储:容量大,适合长期存储
- 磁带:容量大,成本低,适合归档备份
- 云存储:灵活,可扩展性强,适合异地备份
2.3.2 存储配置
– 备份目录:/dm/backup
– 归档目录:/dm/arch
– 备份存储:使用独立的磁盘或存储设备
– 备份保留:保留30天的备份数据
– 异地备份:定期将备份数据复制到异地存储
学习交流加群风哥QQ113257174
2.4 监控规划
合理的监控规划可以确保备份和恢复操作的正常执行。
2.4.1 监控内容
- 备份状态:监控备份是否成功完成
- 备份大小:监控备份文件的大小
- 备份时间:监控备份的执行时间
- 存储使用:监控备份存储的使用情况
- 恢复演练:定期进行恢复演练
2.4.2 监控工具
- 系统监控:使用系统自带的监控工具
- 数据库监控:使用DM数据库的监控工具
- 第三方监控:使用第三方监控工具
Part03-生产环境项目实施方案
3.1 备份方法
详细介绍DM数据库的备份方法。
3.1.1 使用DM管理工具进行备份
1. 启动DM管理工具
2. 连接数据库
3. 选择”备份还原” → “备份” → “新建备份”
4. 选择备份类型:完全备份、增量备份或差异备份
5. 选择备份目标:本地或远程
6. 设置备份文件名和路径
7. 点击”开始”执行备份
8. 查看备份结果
3.1.2 使用SQL语句进行备份
# 完全备份
SQL> backup database full to backup_file1 backupset ‘/dm/backup/full_backup_20230409’;
# 增量备份
SQL> backup database increment to backup_file2 backupset ‘/dm/backup/increment_backup_20230409’;
# 差异备份
SQL> backup database differential to backup_file3 backupset ‘/dm/backup/differential_backup_20230409’; 更多视频教程www.fgedu.net.cn
# 表空间备份
SQL> backup tablespace fgedutbs to backup_file4 backupset ‘/dm/backup/tablespace_backup_20230409’;
# 归档日志备份
SQL> backup archive log all to backup_file5 backupset ‘/dm/backup/archive_backup_20230409’;
3.1.3 使用dmrman工具进行备份
$ dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/full_backup_20230409’;
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ increment backupset ‘/dm/backup/increment_backup_20230409’;
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ differential backupset ‘/dm/backup/differential_backup_20230409’;
RMAN> backup tablespace ‘FGEDUTBS’ database ‘/dm/fgdata/fgedudb/dm.ini’ backupset ‘/dm/backup/tablespace_backup_20230409’;
RMAN> backup archive log all database ‘/dm/fgdata/fgedudb/dm.ini’ backupset ‘/dm/backup/archive_backup_20230409’;
3.2 恢复方法
详细介绍DM数据库的恢复方法。
3.2.1 使用DM管理工具进行恢复
1. 启动DM管理工具
2. 连接数据库
3. 选择”备份还原” → “还原” → “新建还原”
4. 选择还原类型:完全还原、增量还原或差异还原
5. 选择备份文件
6. 设置还原目标
7. 点击”开始”执行还原
8. 查看还原结果
9. 执行恢复操作
10. 查看恢复结果
3.2.2 使用SQL语句进行恢复
# 完全恢复
SQL> restore database from ‘/dm/backup/full_backup_20230409’;
SQL> recover database from ‘/dm/backup/full_backup_20230409’;
SQL> alter database open;
# 时间点恢复
SQL> restore database from ‘/dm/backup/full_backup_20230409’; 更多学习教程公众号风哥教程itpux_com
SQL> recover database until time ‘2023-04-09 12:00:00’;
SQL> alter database open resetlogs;
3.2.3 使用dmrman工具进行恢复
$ dmrman
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230409’;
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230409’;
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ with archivelog ‘/dm/arch’;
RMAN> alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
3.3 备份监控与管理
详细介绍DM数据库的备份监控与管理方法。
3.3.1 备份监控
# 查看备份历史
SQL> select * from v$backup_history;
# 查看备份集信息
SQL> select * from v$backupset;
# 查看备份文件信息
SQL> select * from v$backupfile;
# 查看备份状态
SQL> select * from v$backup;
3.3.2 备份管理
- 备份验证:定期验证备份的有效性
- 备份清理:定期清理过期的备份
- 备份复制:定期将备份复制到异地存储
- 备份测试:定期测试备份的可恢复性
from DB视频:www.itpux.com
3.4 恢复演练
恢复演练是确保备份有效性的重要手段。
3.4.1 恢复演练的重要性
- 验证备份的有效性
- 熟悉恢复流程
- 测试恢复时间
- 发现潜在问题
3.4.2 恢复演练的步骤
- 准备环境:搭建测试环境
- 执行恢复:使用备份恢复数据库
- 验证数据:验证恢复后的数据完整性
- 记录结果:记录恢复演练的结果
- 分析改进:分析演练中发现的问题,改进备份策略
Part04-生产案例与实战讲解
4.1 备份实战演示
通过实际操作演示DM数据库的备份过程。
4.1.1 使用SQL语句进行完全备份
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> backup database full to backup_file1 backupset ‘/dm/backup/full_backup_20230409’;
# 输出信息
操作已执行
已生成备份集: /dm/backup/full_backup_20230409
4.1.2 使用dmrman工具进行增量备份
[dmdba@fgedu ~]$ dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ increment backupset ‘/dm/backup/increment_backup_20230409’;
# 输出信息
backup database ‘/dm/fgdata/fgedudb/dm.ini’ increment backupset ‘/dm/backup/increment_backup_20230409’;
[main] INFO 2023-04-09 10:00:00: 正在执行备份…
[main] INFO 2023-04-09 10:00:05: 备份成功完成。
备份集路径: /dm/backup/increment_backup_20230409
4.1.3 验证备份
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select * from v$backup_history where backup_type = ‘FULL’;
BACKUP_ID BACKUP_TYPE BACKUP_TIME BACKUP_PATH
————- ————— ————————- ——————————
1 FULL 2023-04-09 10:00:00 /dm/backup/full_backup_20230409
SQL> select * from v$backupset where backup_id = 1;
BACKUP_ID BACKUP_TYPE BACKUP_TIME BACKUP_PATH STATUS
————- ————— ————————- —————————— ——–
1 FULL 2023-04-09 10:00:00 /dm/backup/full_backup_20230409 VALID
4.2 恢复实战演示
演示DM数据库的恢复过程。
4.2.1 使用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_20230409’;
# 输出信息
操作已执行
SQL> recover database from ‘/dm/backup/full_backup_20230409’;
# 输出信息
操作已执行
SQL> alter database open;
# 输出信息
操作已执行
# 4. 验证恢复
SQL> select status from v$instance;
STATUS
—————————————
OPEN
SQL> select name, open_mode from v$database;
NAME OPEN_MODE
—————————— ——————–
FGEDUDB READ WRITE
4.2.2 使用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_20230409’;
# 输出信息
restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230409’;
[main] INFO 2023-04-09 11:00:00: 正在执行还原…
[main] INFO 2023-04-09 11:00:05: 还原成功完成。
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230409’;
# 输出信息
recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230409’;
[main] INFO 2023-04-09 11:00:10: 正在执行恢复…
[main] INFO 2023-04-09 11:00:15: 恢复成功完成。
RMAN> alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
# 输出信息
alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
[main] INFO 2023-04-09 11:00:20: 数据库已打开。
4.3 备份监控实战演示
演示DM数据库的备份监控操作。
4.3.1 查看备份历史
[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-09 10:00:00 /dm/backup/full_backup_20230409
2 INCREMENT 2023-04-09 11:00:00 /dm/backup/increment_backup_20230409
3 DIFFERENTIAL 2023-04-09 12:00:00 /dm/backup/differential_backup_20230409
4.3.2 查看备份集信息
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
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-09 10:00:00 /dm/backup/full_backup_20230409 VALID
2 INCREMENT 2023-04-09 11:00:00 /dm/backup/increment_backup_20230409 VALID
3 DIFFERENTIAL 2023-04-09 12:00:00 /dm/backup/differential_backup_20230409 VALID
4.3.3 监控备份存储使用情况
[root@fgedu ~]# df -h /dm/backup
文件系统 容量 已用 可用 已用% 挂载点
/dev/sdb1 100G 20G 80G 20% /dm/backup
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技术提高存储的可靠性
- 定期备份到异地存储,防止本地灾难
- 监控存储使用情况,确保有足够的空间
- 使用压缩和 deduplication 减少存储空间
5.3.4 监控最佳实践
- 监控备份的执行状态和结果
- 监控备份存储的使用情况
- 监控备份的执行时间
- 设置备份失败告警
- 定期生成备份报告
5.3.5 灾难恢复最佳实践
- 制定详细的灾难恢复计划
- 定期进行灾难恢复演练
- 确保备份数据的安全性和可访问性
- 建立灾难恢复团队,明确责任分工
- 定期更新灾难恢复计划
本文档风哥教程参考DM官方文档《DM8备份与恢复手册》、《DM8系统管理员手册》等资料编写,。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
