关于服务迁移汇总
 

mysql

aws

  • 快照方式停机,跨账号可以共享快照,不同区域可以复制快照
  • DMS工具同步迁移 (建议vpc环境,先做一次表结构恢复在进行cdc)

自建mysql

  • 全量mysqldump备份恢复到新实例
  • 1.停机之间切换到新库;2. 在线主从同步方式切库可以降低业务维护时间

redis

aws redis服务

  • 备份快照
  • 复制到s3
  • s3选择指定文件 - 操作 - 复制到指定bucket

mongo

mongo副本集群备份恢复

echo  `date -d "2021-01-01 00:00:00" +%s` >end
# 第一次生成时间戳进行全量备份
#!/bin/bash


###  主从节点主机列表
array_s1=(10.14.212.18 10.14.122.134)

function Get_mongo_secondary(){
            arr=$@
         for element in  ${arr[@]}; do
             cmd=$(mongo  --host  ${element}  --quiet --eval 'printjson(db.isMaster().ismaster)')
             if [ $cmd == 'false' ];then
                echo $element
                 fi
             done
        }

# 获取返回secondary 状态的主机;用从库dump备份
host1=`Get_mongo_secondary ${array_s1[@]}`

# echo  `date -d "2021-01-01 00:00:00" +%s` >end  # 第一次生成时间戳
BEGIN_TIME=`cat<./end`

echo $BEGIN_TIME
END_TIME=`date '+%s'`

echo $END_TIME
STR_DATE1=`date -d @$BEGIN_TIME  "+%Y-%m-%d-%H-%M-%S"`
STR_DATE2=`date -d @$END_TIME  "+%Y-%m-%d-%H-%M-%S"`
STR_DATE="$STR_DATE1----$STR_DATE2"
rm -rf $STR_DATE
echo $STR_DATE
mkdir -p $STR_DATE/main

#### 导出备份 ####
mongodump -h ${host1}:27017 -d local -c oplog.rs   -q "{\"ns\":{\"\$not\":{\"\$regex\":\"config.\"}},\"ts\":{\"\$gt\":{\"\$timestamp\":{\"t\":$BEGIN_TIME,\"i\":1}}}}"  -o ./$STR_DATE/main

#### 导入备份 ####
#mongorestore -h 127.0.0.1:27017 --oplogReplay  --oplogLimit "$END_TIME:2" ./$STR_DATE/main

LAST_END_TIME=$((10#${END_TIME}-(60*60*24))) #往前一天,防止时间不一致导致的数据丢失,oplog实际大小+1天
echo $LAST_END_TIME
echo $LAST_END_TIME>./end

ps: 迁移前做一次全量备份,正式迁移恢复增量速度可以加快迁移时间


文章作者: 以谁为师
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源!
              
  目录