本文方法为作者自己尝试得出,不一定有效,若失败,还请参考正规的解决方案
本文的三种数据库恢复都以Docker来进行恢复,即本文会用Docker创建相应的数据库容器来对需要恢复的数据库进行恢复,在删除配置文件时,需要查看一些配置文件内容是否与需要恢复的数据库相同,如K8S集群中创建的数据库与Docker中创建的pg数据库就不同,
postmaster.pid等文件内容
1 MongoDB
- 找到需要恢复的数据库的存储配置文件,如下图所示

- 拉取MongoDB镜像,版本最好要对应,这里就以安装最新版本为例
docker pull mongo- 生成容器
-d:后台启动模式,不会占用终端-p:主机端口:容器内端口--name:容器名称-v:指定了主机文件系统路径/mnt/storage/wbw-mongo/data和容器内部路径/data/db之间的卷映射。这个映射用于将 MongoDB 数据库数据存储在主机上,以便数据持久性。容器内的数据将被存储在主机的/mnt/storage/wbw-mongo/data目录中
docker run -d -p 31074:27017 --name wbw-mongo -v /mnt/storage/wbw-mongo/data:/data/db mongo:latest- 删除刚刚生成的存储配置文件
注意,不要直接删除data文件夹,而是将data内的文件全部删除
rm -rf /mnt/storage/wbw-mongo/data/*- 将需要恢复的数据库的存储配置文件复制到
/mnt/storage/wbw-mongo/data/下,假设需要恢复的数据库的存储配置文件位置为/mnt/storage/bak-mongo/data/
cp /mnt/storage/bak-mongo/data/* /mnt/storage/wbw-mongo/data/- 重启容器
docker restart wbw-mongo- 恢复结束
2 MySQL
- 找到需要恢复的数据库的存储配置文件,如下图所示

- 拉取MySQL镜像,版本最好要对应,这里就以安装最新版本为例
docker pull mysql- 生成容器
docker run -d -p 30491:3306 --name wbw-mysql -e MYSQL_ROOT_PASSWORD=123456 -v /mnt/storage/wbw-mysql/data:/var/lib/mysql mysql:latest- 删除刚刚生成的存储配置文件
rm -rf /mnt/storage/wbw-mysql/data/*- 将需要恢复的数据库的存储配置文件复制到
/mnt/storage/wbw-mysql/data/下,假设需要恢复的数据库的存储配置文件位置为/mnt/storage/bak-mysql/data/
cp /mnt/storage/bak-mysql/data/* /mnt/storage/wbw-mysql/data/- 重启容器
docker restart wbw-mysql- 恢复结束
3 PostgreSQL
- 找到需要恢复的数据库的存储配置文件,如下图所示

- 拉取PostgreSQL镜像,版本最好要对应,这里就以安装14为例
docker pull postgres:14- 生成容器
docker run -d --name wbw-postgres -v /mnt/storage/wbw-postgres/data:/var/lib/postgresql/data -e POSTGRES_PASSWORD=123456 -p 5432:5432 postgres:14- 删除刚刚生成的存储配置文件
rm -rf /mnt/storage/wbw-postgres/data/*- 将需要恢复的数据库的存储配置文件复制到
/mnt/storage/postgresql/data/下,假设需要恢复的数据库的存储配置文件位置为/mnt/storage/bak-postgresql/data/
cp /mnt/storage/bak-postgres/data/* /mnt/storage/wbw-postgres/data/- 重启容器
docker restart wbw-postgres- 恢复结束