本文方法为作者自己尝试得出,不一定有效,若失败,还请参考正规的解决方案
本文的三种数据库恢复都以Docker来进行恢复,即本文会用Docker创建相应的数据库容器来对需要恢复的数据库进行恢复,在删除配置文件时,需要查看一些配置文件内容是否与需要恢复的数据库相同,如K8S集群中创建的数据库与Docker中创建的pg数据库就不同,postmaster.pid
等文件内容
1 MongoDB
- 拉取MongoDB镜像,版本最好要对应,这里就以安装最新版本为例
- 生成容器
-d
:后台启动模式,不会占用终端
-p
:主机端口:容器内端口
--name
:容器名称
-v
:指定了主机文件系统路径 /mnt/storage/wbw-mongo/data
和容器内部路径 /data/db
之间的卷映射。这个映射用于将 MongoDB 数据库数据存储在主机上,以便数据持久性。容器内的数据将被存储在主机的 /mnt/storage/wbw-mongo/data
目录中
1
| docker run -d -p 31074:27017 --name wbw-mongo -v /mnt/storage/wbw-mongo/data:/data/db mongo:latest
|
注意,不要直接删除data文件夹,而是将data内的文件全部删除
1
| rm -rf /mnt/storage/wbw-mongo/data/*
|
- 将需要恢复的数据库的存储配置文件复制到
/mnt/storage/wbw-mongo/data/
下,假设需要恢复的数据库的存储配置文件位置为/mnt/storage/bak-mongo/data/
1
| cp /mnt/storage/bak-mongo/data/* /mnt/storage/wbw-mongo/data/
|
1
| docker restart wbw-mongo
|
2 MySQL
- 拉取MySQL镜像,版本最好要对应,这里就以安装最新版本为例
1
| 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
|
1
| rm -rf /mnt/storage/wbw-mysql/data/*
|
- 将需要恢复的数据库的存储配置文件复制到
/mnt/storage/wbw-mysql/data/
下,假设需要恢复的数据库的存储配置文件位置为/mnt/storage/bak-mysql/data/
1
| cp /mnt/storage/bak-mysql/data/* /mnt/storage/wbw-mysql/data/
|
1
| docker restart wbw-mysql
|
3 PostgreSQL
- 拉取PostgreSQL镜像,版本最好要对应,这里就以安装14为例
1
| 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
|
1
| rm -rf /mnt/storage/wbw-postgres/data/*
|
- 将需要恢复的数据库的存储配置文件复制到
/mnt/storage/postgresql/data/
下,假设需要恢复的数据库的存储配置文件位置为/mnt/storage/bak-postgresql/data/
1
| cp /mnt/storage/bak-postgres/data/* /mnt/storage/wbw-postgres/data/
|
1
| docker restart wbw-postgres
|