达梦数据库恢复数据

达梦数据库恢复数据

从指定备份集恢复数据库

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

相关推荐
龙腾AI白云3 小时前
AI检索增强生成(RAG):解决大模型幻觉的核心落地技术
数据库·人工智能·机器学习·知识图谱
一 乐3 小时前
动漫书销售商城|基于springboot + vue动漫书销售商城(源码+数据库+文档)
java·数据库·vue.js·spring boot·毕业设计
zzj_2626103 小时前
MySQL常用操作
数据库·mysql
其实防守也摸鱼4 小时前
Fastjson 反序列化漏洞(JNDI注入)
android·数据库·安全·oracle·自动化·fastjson·反序列化
haerapi4 小时前
把 PostgreSQL 复制巡检做成可审计闭环:确定性采集、阈值判定与受控模型归纳
数据库·postgresql
微学AI5 小时前
不让每一步都调用最贵模型:用蓝耘智能路由改造自主式研究 Agent
数据库·人工智能·蓝耘
yjb.gz5 小时前
Oracle19 RAC查看集群状态及磁盘空间情况(巡检)
数据库
钝挫力PROGRAMER5 小时前
开发踩坑记:MyBatis selectKey、空 SQL
数据库·sql·mybatis
JosieBook5 小时前
【数据库】MySQL 实战精通系列 · 第6篇:InnoDB 存储引擎、日志与崩溃恢复
数据库·mysql
杨云龙UP6 小时前
TDengine 3.4.2.8 Community 三节点三副本生产集群部署实战(DNode/MNode/taosAdapter/Explorer)
大数据·linux·运维·数据库·tdengine·时序库