达梦数据库恢复数据

达梦数据库恢复数据

从指定备份集恢复数据库

目标:将数据库恢复到备份集 DB_DAMENG_FULL_2025_02_13_01_05_18 对应时间点。

停掉当前 DM8 容器

在宿主机执行:

bash 复制代码
docker stop dm8 || true

确保数据库处于关闭(脱机)状态。

启动一次性容器进行恢复

在宿主机执行:

bash 复制代码
cd /mnt/home/dm8/dm-docker

IMAGE=$(docker inspect dm8 --format '{{.Config.Image}}')

docker run --rm -it \
  -v /mnt/home/dm8/data:/opt/dmdbms/data \
  -v /mnt/home/dm8/db_back:/opt/dmdbms/backup \
  --entrypoint /bin/bash \
  "$IMAGE"

说明:

  • --rm:容器退出后自动删除,仅用于本次恢复。
  • 通过 -v 将宿主数据/备份目录挂载到容器内,恢复操作会直接作用于宿主目录。
  • --entrypoint /bin/bash:覆盖镜像默认 entrypoint,避免自动启动数据库,只获得一个 shell。

在容器中使用 dmrman 执行还原

进入容器后:

bash 复制代码
cd /opt/dmdbms/bin
./dmrman use_ap=2

进入 dmrman 后,依次执行以下命令(每条一行):

text 复制代码
CHECK BACKUPSET '/opt/dmdbms/backup/DB_DAMENG_FULL_2025_02_13_01_05_18';

RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/backup/DB_DAMENG_FULL_2025_02_13_01_05_18';

RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/backup/DB_DAMENG_FULL_2025_02_13_01_05_18';

RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

要点:

  • use_ap=2:不依赖 DMAP 服务,更适合容器场景。
  • CHECK BACKUPSET:校验备份集合法性(推荐执行)。
  • RESTORE:从备份集还原数据文件。
  • RECOVER ... FROM BACKUPSET:从备份集恢复数据库到备份结束状态。
  • RECOVER ... UPDATE DB_MAGIC:更新 DB_MAGIC,确保启动正常。

执行完后,在 dmrman 中退出:

text 复制代码
EXIT;

回到 bash:

bash 复制代码
exit

此时一次性容器会被删除,数据已写回宿主 /mnt/home/dm8/data

启动原来的 dm8 容器

在宿主机:

bash 复制代码
docker start dm8

如果容器已被删除,可在 compose 目录重新启动:

bash 复制代码
cd /mnt/home/dm8/dm-docker
docker compose up -d

确保 docker-compose.yml 中挂载仍为:

yaml 复制代码
volumes:
  - /mnt/home/dm8/data:/opt/dmdbms/data
  - /mnt/home/dm8/db_back:/opt/dmdbms/backup

验证恢复结果

查看容器日志:

bash 复制代码
docker logs dm8 --tail 50

使用客户端连接(如 disql 或应用程序),检查关键业务表数据是否符合预期(回退到备份对应时间点)。

相关推荐
xxjj998a15 小时前
Laravel5.x全版本特性解析
数据库·mysql·adb
小碗羊肉15 小时前
【MySQL | 第九篇】SQL优化
数据库·sql·mysql
xxjj998a16 小时前
Laravel6.x核心特性全解析
数据库·mysql·adb
m0_748554811 天前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
早日退休!!!1 天前
《数据结构选型指南》笔记
数据结构·数据库·oracle
xcLeigh1 天前
KES数据库性能优化实战
数据库·sql·性能优化·sql优化·数据性能
阿正呀1 天前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
yoyo_zzm1 天前
Laravel9.x新特性全解析
数据库·mysql·nginx
2501_901200531 天前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
m0_495496411 天前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python