百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

传统业务公有云迁移避坑指南

toyiye 2024-06-28 09:52 13 浏览 0 评论

云管理服务专家新钛云服 秦鸣原创


目前国内很多企业已经在深入的使用公有云了。随着业务的发展,这些企业大部分会考虑做多云的双活或灾备以及根据云上产品功能和成本考虑从一家云迁到另一家云。


我司前几个月接了一个公有云业务迁移的项目,在项目中总结了一些经验,下面是我的总结,希望能帮助每个运维在遇到类似的问题时能快速解决。


数据库同步问题


数据库同步使用DTS工具来做的,目前主流的公有云都有各家的DTS工具,DTS的工具原理基本都是从源库binlog读取数据然后插入到目标数据库。但各家的DTS工具容错性还是相差比较大的。下面我就说说数据库同步碰到的那些坑。


1、数据库中的表字段要允许NULL

在MySQL 同步过程中出现 Error 3140: Invalid JSON text: "The document is empty." at position 0 in value for column,


原因是源库校验不严格。数据库中的字段要求为 NOT NULL,但是数据中存在值为 NULL 的数据。


有两个解决方法,根据需要处理:

(1)对源库中的数据进行修复,将所有值 NULL 的数据修正为正确的值 (这也符合业务逻辑需要)。


(2)对目标库中的表进行修改,将字段修改为允许为 NULL。例如表为 xxxx,字段为 total

ALTER TABLE `xxxx` CHANGE `total` `total` JSON NULL;


2、数据库源库binlog要保留时间久一点

在执行数据库同步的时候可能会碰到问题而导致需要重新启动做增量同步,但是有时这个同步是在晚上进行的,早上人为发现问题可能距离出现问题已经过去了好几个小时。


如果源库这个时候binlog只保留1~2个小时的话会导致用户在早上重启同步任务时找不到对应的binlog文件,从而只能再次做全量同步。建议源库binlog在同步时保留2~3天以上。


3、目标数据库磁盘空间建议是源库的2倍

在执行数据库同步的时候目标库除了会有大量的写入外还会有一些临时表及日志产生。如果两个库的磁盘空间一样大很容易产生目标库磁盘空间不足导致写入失败的问题。这样无疑会浪费很多的时间去处理。


所以建议是目标数据库磁盘空间先申请源库的2倍空间。如果费用相差不大迁完后就不要降了。


4、数据库同步时不能有计划任务

在同步数据库时DTS突然报出了一个主键ID错误的日志,同时同步也中断了。后来经过调研发现用户数据库有计划任务在跑导致的。所以在同步数据库时必须关闭针对数据库的计划任务。


ES迁移问题


ES迁移本身并没有什么问题,但是ES不同版本之间是有较大差异的,不仔细测试是发现不了一些隐藏的问题的。


客户碰到的ES问题是之前在XX云用的是ES低版本,默认分片为5。切换至XX云用的是ES 7版本,默认分片是1。


正常客户业务使用时需要根据业务去修改分片数,来适配业务。但客户并没有这么做导致了生产事故。帮客户去重建索引调整分片数后问题得到了解决。


DNS问题


迁移最后必定会经历域名的切换,域名切换覆盖全国和全世界时间都是不一定的,且不同的区域都会有一定的差异


客户就碰到了某个项目访问有问题的情况。我们的做法是,在原公有云入口部署nginx,只要还是访问到原nginx的都proxy_pass到新的公有云入口。这样就保证了不会有人访问到老环境的情况。


结论:应用跨云迁移,看似一件非常简单的事情,实则充满了很多未知的问题。这些问题可能是公有云产品造成的可能是业务代码造成的。


但无论是什么原因,新钛云服作为一家专业的云管理服务商都能很好的处理好这些问题,并在迁移过程中为客户梳理信息,优化架构和运维流程,为客户业务保驾护航。


云管理服务专家 新钛云服


新钛云服是专业的云管理服务商,秉持“客户第一”的服务理念,凭借专家级云管理服务能力和混合云管理平台,为处于数字化转型不同阶段的企业提供混合云场景下的IT运维服务和安全服务;让企业IT部门更专注于核心业务系统,高效率、低成本、低风险地实现数字化转型。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码