线上项目腾讯云平滑迁移方案及步骤

目前项目需要迁移至公有云,数据量较大,访问量极高,以腾讯云为例.
我们有两种方案
(1)购买配置cvm部署应用,云存储Redis,CDB for MySQL,负载均衡CLB(公网)
问题:
1.腾讯云redis迁移工具原理为主从拉取rbd\aof进行全量同步,考虑共用腾讯云旧实例保留老数据,及本身主从redis有其他项目数据,便放弃迁移。
2.redis主从同步,跟分库(15个)无关,slaveof后会覆盖各个分库。拉取主库全部分库数据。
3.腾讯云不支持mysql5.7迁移及mysql5.7至mysql5.7迁移工具不兼容,采用在线上5.7版本建立5.6从库,之后5.6从库 DTS至腾讯云,保持主从同步。
上线步骤:
1.参考项目线上网络环境及目前腾讯云已迁入应用网络环境设置,大体评估购买腾讯云产品选型、参数及网络配置。
*内网可达:
账户中心:域名
redis
mysql
*公网可达:
nginx
2.腾讯云基础环境准备
*负载均衡CLB(公网)
若无公共CLB,需购买1公网CLB,购买参数参照运维建议。
*云服务器CVM
统计线上项目 uv,硬件资源使用,配置>2台内网cvm部署项目,若无公共CLB需1台公网部署nginx,购买配置参照腾讯已迁入应用及运维建议.
*CDB for MySQL
1台(1主1备版),购买参数参照线上mysql参数及腾讯已迁入mysql
*云存储Redis

3.若无公共redis,需购买1台(主从版),容量参照线上使用情况。
1.协助运维准备腾讯云基础环境:
2台CVM(2核4G) 网络可达账户中心
1台redis实例(主从)>1GB
1个mysql实例(主从版,版本5.6)
//腾讯云不支持版本5.7实例,同步工具也不支持5.7->5.7同步.
2.创建当前线上mysql(5.7)的5.6版本从库,计划从该从库创建DTS数据迁移
创建mysql 5.6实例,并开启binlog,重启
[mysqld]
log-bin=mysql-bin
server-id=** //[必须]服务器唯一ID,默认是1,一般取IP最后一段
2.创建线上项目备份:
mysqldump -uroot -p ** --routines --single_transaction --master-data=2 --databases 库名 > _back.sql
3.5.6实例还原备份,查看备份点
mysql -uroot -p** 库名 < _back.sql
4.创建主从
mysql>change master to master_host=‘线上主IP‘,master_user=‘root‘,MASTER_PORT=3306,master_password=‘**‘, master_log_file=‘gzflog-bin.000004‘,master_log_pos=2496;
5.查看同步状态
mysql>start slave;
mysql> show slave status\G;
6.查看项目原有从库状态是否受影响:
mysql> show slave status\G;
7.对比总条数:
use ****
select count(1) from table;
select count(1) from table;
select count(1) from table;
select count(1) from table;

3.协助运维创建mysql DTS数据迁移任任务.
参照:https://cloud.tencent.com/document/product/571/8710
线上msyql(10.1.3.82)创建super权限迁移账号
GRANT ALL PRIVILEGES ON *.* TO "迁移账号"@"%" IDENTIFIED BY "迁移密码";
FLUSH PRIVILEGES;
确认 MySQL 变量
SHOW GLOBAL VARIABLES LIKE ‘XXX‘;
确认log-bin,动态修改配置:
set global server_id = 99;
set global binlog_format=ROW;
set global binlog_row_image=FULL;
set global innodb_stats_on_metadata = 0;
创建迁移任务,选择全量+增量,整个实例
启动迁移,增量同步,持平后对比项目表数据条数,并保持主从同步状态
use ****
select count(1) from access_token;
select count(1) from client;
select count(1) from refresh_token;
select count(1) from user;
3.部署项目
通知运维项目使用redis 1号库
修改jenkins 项目部署线上配置
修改项目配置文件,jenkins配置模板,有新增字段
#端口
server.port=8280
management.port=8281
#mysql
spring.datasource.url=jdbc:mysql://*****:3307/***8?useSSL=false
spring.datasource.username=***
spring.datasource.password=****
#redis
spring.redis.host=****
spring.redis.port=****
spring.redis.database=1

部署,并测试接口及网络环境
curl -X POST -d ""
curl -X GET ""
curl -X GET ""
ping ***.com
协助运维配置nginx,并测试网络可达
查看redis存储:
redis-cli -h ***** -p 6479
select 1;
keys *o*
通知运维写停机脚本
线上两台机器:**********
ps -ef|grep ***
kill -9 id

4.通告相关部门项目腾讯云迁入IP变更.(待统计)

5.具备上线条件后,操作上线步骤
检查项目运行状态是否正常
检查mysql主从同步状态是否正常(运维)
核对网络切换步骤(运维)
执行项目停机脚本,运维切换网络入口(运维)
测试登录
https://dev-game.smartisan.com/
核对mysql主从同步状态,无误后,停止同步.
* 提交测试
* 查看监控服务、网络状态

时间: 2024-10-06 15:50:45

线上项目腾讯云平滑迁移方案及步骤的相关文章

线上项目mysql、redis平滑迁移方案及步骤

1.清晰系统内网及公网可达,CVM配置 2.迁移完整数据,项目部署,测试网络环境. redis:复制rdb文件mysql:xtrabackup备份3.确保项目正常运行,网络正常访问.项目对外接口及账户中心访问可达.4.初始化redis,mysql.5.配置网络环境,同步mysql 1.主库创建同步账号,配置腾讯云mysql为从并可写.配置log-bin 2.主库xtrabackup备份,设置从库导入.获取同步点,启动从库(可写),校验状态.6.配置网络环境,同步redis 1.配置腾讯云redi

腾讯云挂载数据盘的步骤

步骤方法: 1.检查硬盘设备是否有数据盘 当然也知道现在磁盘是有数据的,大概服务器有58G的磁盘空间,8G是系统盘那么就剩下了50G的剩余空间,那么下面就把这50G挂载. 查询命令: fdisk -l 可以看到有52GB的数据盘没有挂载,看好前面的路径/dev/vdb 2.数据硬盘分区 执行命令: fdisk /dev/vdb 依次输入 n .p. 1. 回车.回车.wq 这里的VDB是上面看到数据硬盘的名称,如果不是这个需要根据真实的盘名称替换,如果是这里和一样,那就直接复制. 3.ext3格

【腾讯云】CVM的功能和优势学习总结

腾讯云的功能与优势具有以下几个方面: 提供全面的服务 弹性的云端CVM的管理平台 可靠CVM 极速的CVM性能 多种解决方案来保证CVM和数据的安全 简单易用 多种计费模式,降低IT投入成本 腾讯云CVM提供了全方面的服务内容,具体为以下几类: 实现了多region多zone 覆盖的国内的节点有:华南.华东.华北 覆盖的国外的节点有:香港.新加坡.多伦多.硅谷 4类机型配置 标准型:可用于中小型WEB应用和数据库 高IO型:可用于低时延,I/O较大的应用 内存型:可用于对内操作.计算和查找存需求

腾讯云HTTPS设置管理

腾讯云HTTPS解决方案:腾讯云针对现有用户,提供HTTPS的安全加密方案.腾讯云HTTPS有两种解决方法:客户自带证书和腾讯提供域名和证书. 腾讯云HTTPS解决方法客户提供证书和私钥,托管至腾讯云.    此种方案需要客户提供自带证书,腾讯采用多种技术手段保证证书的安全.客户在使用此服务的时候,需要提前上传证书,在启动此服务后,证书将自动发送到CDN节点.    客户提供证书和私钥采用证书和私钥前置于边缘节点的方式实现HTTPS的功能.此种方案最大的难点在于在域名劫持或者边缘节点物理损坏或盗

云上迁移(分享十)

根据公司业务发展,公司计划发展云上迁移项目,云上迁移,顾名思义是把原有的系统迁移到公有云或者私有云上,也许是P2V或者V2V模式,都有可能.最近我也是这负责这个这个云上迁移方案流程制定,也就此与大家分享. 云上迁移分6个阶段:系统评估与分析.方案设计.云平台环境准备.实施阶段.验证阶段和业务割接 评估与分析 在系统评估与分析阶段,应确定迁移范围和目标,利用调查问卷.系统评估工具和访谈等评估形式,对应用系统进行评估,分析和汇总系统需求,形成调研报告. 方案设计 在方案设计阶段,针对项目范围内的物理

浅谈开源Kafka与腾讯云cKafka

今天下午参加了腾讯云+社区组织的kafka公开课,收获良多.正巧在工作中也遇到过kafka的问题,今天听完之后产生了非常多的感想.无奈篇幅有限,本人又文笔愚钝,所以今天的分享主要提及对我感触最深的内容.分享的顺序还是按照老形式来进行吧(提出疑问--解决疑问) [提出疑问] 1.为什么要设计kafka? 2.开源的kafka架构是怎么样的? 3.腾讯云的ckafka架构是怎样的? 4.腾讯云的ckafka架构解决了什么样的问题? 5.我对开源kafka的设想? 一.为什么要设计kafka? 扩容性

腾讯云对象存储COS安全方案介绍

本文分享自微信公众号 - 腾讯云存储 相信所有企业和个人开发者在选用云存储产品时都把数据安全作为重要考量标准. 本文介绍了用户如何使用腾讯云对象存储COS的事前防护.事中监控.事后追溯三个手段来保证自己的数据安全. 一.事前防护手段 1. 权限隔离对上云企业来说,账号安全和资源合理授权是构筑立体防护体系的第一道门锁.云上资源管理的授权应该规避如下风险:使用腾讯云主账号进行日常操作:为员工建了子账号,但是授权过大:缺乏对使用帐号权限的管理制度和流程:没有定期审计管理用户的权限和登录信息:对高权限子

阿里云OSS和腾讯云COS互相迁移

利用阿里.腾讯的帮助文档中提供的迁移工具测试迁移对象存储数据. 一.腾讯to阿里文档链接:https://help.aliyun.com/document_detail/56990.html?spm=5176.7851628.6.1079.UqBdXKOssImport工具可以将本地.其它云存储的数据迁移到OSS,它有以下特点: 支持的丰富的数据源,有本地.七牛.百度BOS.AWS S3.Azure Blob.又拍云.腾讯云COS.金山KS3.HTTP.OSS等,并可根据需要扩展:支持断点续传:

[Java]直播方案----[接入环信聊天室]+[腾讯云直播]

辛辛苦苦写的,转载请注明一下,这点信任我想还是有的吧,谢谢了. http://www.cnblogs.com/applerosa/p/7162268.html 之前做了直播,一直没时间写,好不容易闲下来,所以总结记录一下. 需要注意的是,在获取环信聊天室ID和腾讯云三个推/拉流地址的时候,需要先去注册,获取所用开发者账号. 所以这个教程所必须的东西: 1.环信开发者账号; 2.腾讯云开发者账号; 一.做直播,肯定要有一个直播模型,这里我们用直播间来做示例: 这里只是做个基础的演示,所以都是必须的