1. 首页 > 国产数据库教程 > 达梦DM教程 > 正文

DM教程FG013-达梦数据库完全备份与恢复实战

内容简介:本文档风哥主要介绍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 恢复验证

  • 检查数据库状态
  • 验证数据完整性
  • 测试数据库功能
  • 记录恢复信息
  • 学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 完全备份规划

在生产环境中,合理的完全备份规划可以确保数据库的安全和可恢复性。

2.1.1 备份频率

# 完全备份频率
– 小型数据库(<100GB):每天一次
– 中型数据库(100GB-1TB):每周一次
– 大型数据库(>1TB):每两周或每月一次

2.1.2 备份时间

  • 选择业务低峰期进行备份
  • 避免在系统维护窗口进行备份
  • 预留足够的备份时间

2.2 完全恢复规划

合理的完全恢复规划可以确保在故障发生时能够快速有效地恢复数据库。

2.2.1 恢复目标

  • RTO(恢复时间目标):根据数据库大小和重要性设置
  • RPO(恢复点目标):根据备份频率设置

2.2.2 恢复策略

  • 制定详细的恢复计划
  • 明确恢复步骤和责任
  • 定期进行恢复演练
  • 准备恢复所需的资源

2.3 存储规划

合理的存储规划可以确保备份数据的安全和可访问性。

2.3.1 备份存储

  • 本地存储:速度快,适合频繁备份
  • 网络存储:容量大,适合长期存储
  • 磁带存储:容量大,成本低,适合归档备份
  • 云存储:灵活,可扩展性强,适合异地备份

学习交流加群风哥QQ113257174

2.3.2 存储配置

# 存储配置
– 备份目录:/dm/backup
– 归档目录:/dm/arch
– 备份存储:使用独立的磁盘或存储设备
– 备份保留:保留30天的备份数据
– 异地备份:定期将备份数据复制到异地存储

2.4 性能考虑

完全备份和恢复的性能是生产环境中需要考虑的重要因素。

2.4.1 备份性能优化

  • 使用并行备份
  • 使用压缩备份
  • 选择合适的备份时间
  • 优化备份存储性能

2.4.2 恢复性能优化

  • 使用并行恢复
  • 优化恢复存储性能
  • 使用快速恢复技术
  • 准备足够的恢复资源

Part03-生产环境项目实施方案

3.1 完全备份方法

详细介绍DM数据库的完全备份方法。

3.1.1 使用DM管理工具进行完全备份

# 使用DM管理工具进行完全备份
1. 启动DM管理工具
2. 连接数据库
3. 选择”备份还原” → “备份” → “新建备份”
4. 选择备份类型:完全备份
5. 选择备份目标:本地或远程
6. 设置备份文件名和路径
7. 点击”开始”执行备份
8. 查看备份结果

更多视频教程www.fgedu.net.cn

3.1.2 使用SQL语句进行完全备份

# 使用SQL语句进行完全备份
# 在线完全备份
SQL> backup database full to backup_file1 backupset ‘/dm/backup/full_backup_20230409’;
# 离线完全备份
SQL> backup database full to backup_file2 backupset ‘/dm/backup/offline_full_backup_20230409’ offline;
# 压缩备份
SQL> backup database full to backup_file3 backupset ‘/dm/backup/compressed_full_backup_20230409’ compress level 5;
# 并行备份
SQL> backup database full to backup_file4 backupset ‘/dm/backup/parallel_full_backup_20230409’ parallel 4;

3.1.3 使用dmrman工具进行完全备份

# 使用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’ full backupset ‘/dm/backup/offline_full_backup_20230409’ offline;
# 压缩备份
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/compressed_full_backup_20230409’ compress level 5;
# 并行备份
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/parallel_full_backup_20230409’ parallel 4;

3.2 完全恢复方法

详细介绍DM数据库的完全恢复方法。

3.2.1 使用DM管理工具进行完全恢复

# 使用DM管理工具进行完全恢复
1. 启动DM管理工具
2. 连接数据库
3. 选择”备份还原” → “还原” → “新建还原”
4. 选择还原类型:完全还原
5. 选择备份文件
6. 设置还原目标
7. 点击”开始”执行还原
8. 查看还原结果
9. 执行恢复操作
10. 查看恢复结果 更多学习教程公众号风哥教程itpux_com

3.2.2 使用SQL语句进行完全恢复

# 使用SQL语句进行完全恢复
# 1. 关闭数据库
SQL> shutdown immediate;
# 2. 启动数据库到mount状态
SQL> startup mount;
# 3. 执行还原
SQL> restore database from ‘/dm/backup/full_backup_20230409’;
# 4. 执行恢复
SQL> recover database from ‘/dm/backup/full_backup_20230409’;
# 5. 打开数据库
SQL> alter database open;

3.2.3 使用dmrman工具进行完全恢复

# 使用dmrman工具进行完全恢复
# 1. 关闭数据库
[root@fgedu ~]# systemctl stop DmServiceFGEDUDB
# 2. 执行还原
$ dmrman
RMAN> restore database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230409’;
# 3. 执行恢复
RMAN> recover database ‘/dm/fgdata/fgedudb/dm.ini’ from backupset ‘/dm/backup/full_backup_20230409’;
# 4. 打开数据库
RMAN> alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;

3.3 备份验证

备份验证是确保备份有效性的重要步骤。

from DB视频:www.itpux.com

3.3.1 备份验证方法

# 备份验证方法
# 使用SQL语句验证备份
SQL> select * from v$backup_history where backup_type = ‘FULL’;
# 使用dmrman工具验证备份
$ dmrman
RMAN> check backupset ‘/dm/backup/full_backup_20230409’;
# 手动验证备份文件
[root@fgedu ~]# ls -la /dm/backup/full_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 使用SQL语句进行在线完全备份

# 使用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工具进行压缩完全备份

# 使用dmrman工具进行压缩完全备份
[dmdba@fgedu ~]$ dmrman
RMAN> backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/compressed_full_backup_20230409’ compress level 5;
# 输出信息
backup database ‘/dm/fgdata/fgedudb/dm.ini’ full backupset ‘/dm/backup/compressed_full_backup_20230409’ compress level 5;
[main] INFO 2023-04-09 10:00:00: 正在执行备份…
[main] INFO 2023-04-09 10:05:00: 备份成功完成。
备份集路径: /dm/backup/compressed_full_backup_20230409

4.1.3 验证备份

# 验证备份
[dmdba@fgedu ~]$ disql SYSDBA/SYSDBA
SQL> select backup_id, backup_type, backup_time, backup_path 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
2 FULL 2023-04-09 10:05:00 /dm/backup/compressed_full_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-09 10:00:00 /dm/backup/full_backup_20230409 VALID
2 FULL 2023-04-09 10:05:00 /dm/backup/compressed_full_backup_20230409 VALID

4.2 完全恢复实战演示

演示DM数据库的完全恢复过程。

4.2.1 使用SQL语句进行完全恢复

# 使用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
SQL> select count(*) from fgedu_test;
COUNT(*)
———–
1000

4.2.2 使用dmrman工具进行完全恢复

# 使用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:05:00: 还原成功完成。
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:05:30: 正在执行恢复…
[main] INFO 2023-04-09 11:05:45: 恢复成功完成。
RMAN> alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
# 输出信息
alter database ‘/dm/fgdata/fgedudb/dm.ini’ open;
[main] INFO 2023-04-09 11:06:00: 数据库已打开。

4.3 备份验证实战演示

演示DM数据库的备份验证操作。

4.3.1 使用dmrman工具验证备份

# 使用dmrman工具验证备份
[dmdba@fgedu ~]$ dmrman
RMAN> check backupset ‘/dm/backup/full_backup_20230409’;
# 输出信息
check backupset ‘/dm/backup/full_backup_20230409’;
[main] INFO 2023-04-09 12:00:00: 正在检查备份集…
[main] INFO 2023-04-09 12:00:30: 备份集检查成功。
备份集路径: /dm/backup/full_backup_20230409
状态: VALID

4.3.2 手动验证备份文件

# 手动验证备份文件
[root@fgedu ~]# ls -la /dm/backup/full_backup_20230409
总用量 1024000
drwxr-xr-x 2 dmdba dinstall 4096 4月 9 10:00 .
drwxr-xr-x 3 dmdba dinstall 4096 4月 9 09:00 ..
-rw-r–r– 1 dmdba dinstall 1048576000 4月 9 10:00 backup_file1.bak
[root@fgedu ~]# du -sh /dm/backup/full_backup_20230409
1000M /dm/backup/full_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> 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 完全备份最佳实践

风哥提示:在进行DM数据库完全备份时,一定要选择合适的备份时间和方法,并确保备份数据的安全性和可恢复性。特别是生产环境,要制定详细的备份策略,并定期进行备份验证和恢复演练。

5.3.2 完全恢复最佳实践

  • 恢复准备:确保恢复环境与备份环境一致
  • 恢复顺序:按照还原 → 恢复 → 打开数据库的顺序进行
  • 恢复验证:恢复后验证数据的完整性和一致性
  • 恢复演练:定期进行恢复演练,熟悉恢复流程
  • 恢复计划:制定详细的恢复计划,包括恢复步骤、责任人和时间要求

5.3.3 存储最佳实践

  • 使用独立的存储设备存储备份数据
  • 使用RAID技术提高存储的可靠性
  • 定期备份到异地存储,防止本地灾难
  • 监控存储使用情况,确保有足够的空间
  • 使用压缩减少存储空间

5.3.4 监控最佳实践

监控最佳实践:

  • 监控备份的执行状态和结果
  • 监控备份存储的使用情况
  • 监控备份的执行时间
  • 设置备份失败告警
  • 定期生成备份报告

5.3.5 灾难恢复最佳实践

  • 制定详细的灾难恢复计划
  • 定期进行灾难恢复演练
  • 确保备份数据的安全性和可访问性
  • 建立灾难恢复团队,明确责任分工
  • 定期更新灾难恢复计划

本文档风哥教程参考DM官方文档《DM8备份与恢复手册》、《DM8系统管理员手册》等资料编写,。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息