mongodb mysql es数据迁移
mongodb数据迁移
使用的工具:
mongodump 备份
mongorestore 恢复
# 10.1.1.1是需要迁移数据的mongo主机
# 10.1.1.2是一台全新的mongo主机
# 在10.1.1.1上操作
# 全库备份
mongodump -h 10.1.1.1:27017 -uroot -proot --authenticationDatabase admin -o /home/mongod/backup
# 单库备份
mongodump -h 10.1.1.1:27017 -uroot -proot --authenticationDatabase admin -d test -o /home/mongod/backup/ # 备份test库
# 备份某一个库下的集合
mongodump -h 10.1.1.1:27017 -uroot -proot --authenticationDatabase admin -d test -c vast -o /home/mongod/backup/ # 备份test库下的vast集合
# 备份单表并压缩
mongodump -h 10.1.1.1:27017 -uroot -proot --authenticationDatabase admin -d test -c vast -o /home/mongod/backup/ --gzip
# 在10.1.1.2上操作
# 从全库的备份中恢复某个单库
mongorestore -h 10.1.1.2:27017 -uroot -proot --authenticationDatabase admin -d test --drop /home/mongod/backup/test/
# 恢复test库
mongorestore -h 10.1.1.2:27017 -uroot -proot --authenticationDatabase admin -d test /home/mongod/backup/test/
# 恢复test库下的vast集合
mongorestore -h 10.1.1.2:27017 -uroot -proot --authenticationDatabase admin -d test -c vast /home/mongod/backup/test/vast.bson
mysql数据迁移
mysql备份
# 10.1.1.1是需要迁移数据的mysql主机
# 10.1.1.2是一台全新的mysql主机
# 在10.1.1.1上操作
# 备份整个mysql上的所有数据
mysqldump -uadmin -h 10.1.1.1 -uadmin -p --all-databases > backupfile.sql
# 备份单个数据库的数据
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
# 备份多个数据库的数据
mysqldump -hhostname -uusername -ppassword –-databases databasename1 databasename2 databasename3 > multibackupfile.sql
mysql恢复
# 在10.1.1.2上操作
mysql -u root -p
source backupfile.sql
# or
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
es数据迁移
Elasticsearch-dump导出数据
# 将192.168.150.30的dev43_sdx_dev导出为json格式的数据
docker run --rm -ti -v /data:/tmp taskrabbit/elasticsearch-dump --input=http://192.168.150.30:9200/dev43_sdx_dev --output=/tmp/my_index_mapping.json --type=data
Elasticsearch-dump导入数据
# 将new_index_mapping.json内的数据导入至192.168.150.31的dev43_sdx_dev_bulk
docker run --rm -ti -v /data:/tmp taskrabbit/elasticsearch-dump --input=/tmp/new_index_mapping.json --output=http://192.168.150.31:9200/dev43_sdx_dev_bulk --type=data
注意:
docker 执行 elasticdump 导入导出文件的文件共享问题
在 docker 中执行 elasticdump 进行数据导入导出时,需要考虑宿主机之间文件共享的问题,在 run elasticdump 用 -v 指定共享文件的位置
微醺生活,醉美人生