k8s 之 mongo 备份与恢复

k8s 中使用 mongodb 进行库的备份操作

单个 库 的备份

mongo 都是多副本部署,首先找到 master

#进入mongo pod 中查看是否为master
kubectl exec -it ${mongo-pod} -n ${namespace} -- /bin/bash
#进入mongodb
mongo
#查看是否是master节点
db.isMaster()

在这里插入图片描述
在容器中输入数据库备份命令

#进入容器
kubectl exec -it ${mongo-pod} -n ${namespace} -- /bin/bash
#单库备份
mongodump -d ${dbname} -o /home
#例如
# mongodump -d dataservice -o /home

全部数据库的备份

全库备份

#进入容器
kubectl exec -it ${mongo-pod} -n ${namespace} -- /bin/bash
#全库备份
mongodump -u root -p 123456 --authenticationDatabase admin --oplog -o /home/backup/

k8s 中使用 mongodb 进行库的恢复操作

单个库的恢复

#单个库的恢复
mongorestore -d ${dbname} --dir /home

全库恢复

mongorestore -u root -p 123456 /home/backup/ --authenticationDatabase admin 

单库备份参考文档:https://www.toutiao.com/article/7134196160713130503/?channel=&source=search_tab
全库备份参考文档:https://blog.csdn.net/wangying202/article/details/120545839
参考文档:https://www.cnblogs.com/abner123/p/16275477.html

附(文件从 k8s 容器中导入/导出)

容器中导出文件

kubectl cp -n ${namespace} ${pod}:/home/dataservice /root/dataservice
# /home/dataservice  是容器中的文件夹路径
# /root/dataservice  是服务器中的目标文件夹路径

# 如果 pod 中包含多个容器的
kubectl cp -n ${namespace} ${pod}:/home/dataservice /root/dataservice -c ${container-name}

服务器文件导入到容器中

kubectl -n ${namespace} cp /root/dataservice ${pod}:/home
# /root/dataservice  是服务器中的目标文件夹路径
# /home  是容器中的文件夹路径
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐