镜像迁移到registry_数据库迁移了解一下

mongodb数据迁移

因服务器到期,需要将之前机器上面的数据进行数据迁移,并将服务全部docker化

备份

首先需要将现有即将到期的服务器上面的mongo数据进行备份

mongodump -h dbhost -d dbname -o dbdirectory
  • -h:mongodb所在服务器地址,可指定端口:127.0.0.1:27016
  • -d:需要备份的数据库实例
  • -o:备份数据存放位置

这里需要⚠️mongo与mysql不一样的是需要单个数据库实例进行备份,而mysql在备份的时候可能会是直接导出整个服务器的数据而不是单个库,这里在mongodb备份的时候如果不设置数据库实例 则会备份所有的实例

压缩传送

第二步我选择将备份好的文件进行压缩,方便进行服务器间传输

zip db.zip ./dbname

scp username@ip/path username2@ip/path

Docker

这一步主要是设置新机器上面的docker环境(可根据自己的服务器类型进行docker的安装,这里就不进行赘诉了,不了解的可以自行百度)

正常情况下pull镜像时会特别慢,这里建议设置下加速,创建或者修改 /etc/docker/daemon.json 文件

{
  "registry-mirrors": [
    // Docker中国区官方镜像
    "https://registry.docker-cn.com",
    // 网易
    "http://hub-mirror.c.163.com",
    // 中国科技大学
    "https://docker.mirrors.ustc.edu.cn"
  ]
}

或者在阿里云生成自己的加速地址 容器镜像服务=>镜像加速器
重启docker

service docker restart

docker info
// Registry

Docker Mongo

docker pull mongo
docker images
docker run -d -p 27017:27017 -v $PWD/mongo/db:/data/db --name mongodb --auth

我这里开启了auth认证?

docker ps -a
docker exec -it mongodb bash

接下来就是配置数据库的帐号密码了

mongo
> use admin
> db.createUser({ user: 'username', pwd: 'password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
> db.auth('username', 'password')
1
> use dbname
> db.createUser({ user: 'dbusername', pwd: 'dbpassword', roles: [{ role: "readWrite", db: "dbname" }] });
> db.auth('dbusername', 'dbpassword')
1

以上表示创建用户成功,并且验证成功
退出docker 镜像 exit

恢复数据

  • copy 文件至镜像中
  • 执行mongorestore
cd /path
unzip db.zip
docker cp db mongodb:/home/
docker exec -it mongodb bash
cd /home
ls
mongorestore -u=dbusername -p=dbpassword -d dbname ./db
// 日志提示导入成功

测试

  1. 通过mongo shell 进行查询(在docker镜像中)
mongo
> use dbname
> db.col.find(query, projection)
// 数据正常 表示没问题
  1. 通过Navicat 连接进行验证(可能需要开启mongo端口)


以上就是数据迁移的所有内容 enjoy it?!


如果你觉得这篇内容对你挺有启发,我想邀请你帮我两个小忙:

  • 点个【在看】,或者分享转发,让更多的人也能看到这篇内容

  • 关注公众号【思享说】,不定期分享原创&精品技术文章。

欢 迎 评论区 留 下 你 的 精 彩 评 论 ~

觉得文章不错可以分享到朋友圈让更多的小伙伴看到哦~

客 官 ! 在 看 一 下 呗
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值