达梦数据库恢复数据

达梦数据库恢复数据

从指定备份集恢复数据库

目标:将数据库恢复到备份集 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 或应用程序),检查关键业务表数据是否符合预期(回退到备份对应时间点)。

相关推荐
数据库小学妹15 分钟前
MySQL时区问题排查:TIMESTAMP和DATETIME的区别与跨时区对账踩坑
数据库·mysql·datetime·时区·timestamp·跨时区对账
创世虚拟世界40 分钟前
把 3D 虚拟世界拉到本地:vibe coding 的手感,是从看见自己那一行改动开始的
javascript·数据库·人工智能·3d·gitee·虚拟现实
俊昭喜喜里1 小时前
Springboot的Mybatis中的条件构造器
数据库·mybatis
倔强的石头_1 小时前
列存储到底快在哪 在金仓KES上把原理和实操跑了一遍
数据库
WikiLeake1 小时前
一个健壮且灵活的大语言模型(LLM)API 配置加载器
数据库·人工智能
瑞克-桑切斯3 小时前
企业生产环境:https部署+nginx高可用(业务不中断)
linux·服务器·数据库
Navicat中国8 小时前
Navicat 18 内置 AI 助手让数据库开发从繁琐操作迈向智能协作
大数据·人工智能·数据库开发
zyseo811 小时前
谷歌SEO 准首页词挖掘脚本:找出排在第 8-20 名的隐藏流量
大数据·数据库·人工智能
xiaogai_gai13 小时前
仅查询策略实战:从金蝶云·星空旗舰版定时拉取收料通知单
大数据·数据库·python