2020 年 2 月 25 日,微信的朋友圈大量转载微盟遭遇了系统重大故障(36 小时内尚未恢复核心生产数据)。从而想到本人在两周前处理的一个案例:开发人员误删除了生产数据,本人恢复的一个过程。同时给这个故障的处理过程做一个总结,也对学过的知识做一个梳理,希望对运维的同学们有一个警示作用。
改造总是要付出很多代价的,肯定会跌很多坑,这是必然的... 性能问题也总会呈现先下降后再上升的一个历程(调试、磨合、找到针对性、适应性解决方案)。
今天发一篇与以往不同的内容,这是一篇来自生产实践的记录。我只是做了一下编辑和修订的工作。
据中国信通院发布,2012 年到 2021 年 10 年间,我国数字经济规模由 12 万亿元增长到 45.5 万亿元,在整个 GDP 中的比重由 21.6% 提升至 39.8%。顺应时代发展新趋势,“数据” 成为新的生产要素已是毋庸置疑的共识。
IDC正式上线的过程对于JAVA程序,可以是AB组分组上线的思路,即平滑下线一半的服务器,然后发布更新代码,重启测试,无问题后,挂上更新后的服务器,同时再平滑下线另一半的服务器,然后发布更新代码测试(或者直接发布后,重启,挂上线)
======================= mysql部署方案2.0 1. sql类型解释 sql为两种类型sql,第一类是基础数据sql,第二类为业务数据sql. 基础数据定义为对bdms系统库表结构的定义及初始化数据, 业务数据则跟生产环境相关,用于修改特定环境; 基础数据对于每个全新的环境都需要全部执行, 业务数据只对于关联的生产环境才是有意义的; 基础数据格式sys_date_seq.sql,如bdms_20200327_001.sql, 业务数据格式env_date_seq.sql,如xian
一:本文通过jenkins调用shell脚本的的方式完成从Git服务器获取代码、打包、部署到web服务器、将web服务器从负载均衡器删除、解压、复制配置文件、创建软连接、测试每一台web服务器、将web服务器添加至负载均衡、回滚到任意指定版本、一键回滚到上一版本等功能,脚本放在www用户家目录并使用www用户身份执行,每个web服务器也都使用www用户运行web服务,且UID相同web目录和权限都一致,更严格的标准化可以带来更安全的生产环境和更高的效率: 1.1:在jenkins项目配置中调用shell脚本与环境准备: 1.1.1:#jenkins-项目-配置:
在用微服务工作时,我们通常还需要在本地进行一些开发,这可能是一个痛点。在本篇文章中,我们将探讨一个可能有效的解决方案。
明月发现很多的草根博客站长们对Linux基本都是“新手”的水平,甚至很多人是第一次在Linux里才知道“字符控制台”的存在,所以感觉很有必要再今天抽个时间给大家聊聊这方面的事儿了,Linux作为网站服务器的操作系统首先面临的就是选择哪个Linux发行版以及使用哪种生产环境了,今天明月就以自己的经验和教训来给大家总结分享一下。
本文最初发布于 Stroobants 博客,经原作者授权由 InfoQ 中文站翻译并分享。
同组的一位负责B端Web项目的同事将版本发布到生产环境之后。收到了用户很多投诉,诸如功能很难用、操作流水很繁琐。产品经理进行分析检讨,判断是因为新旧版本系统用户使用习惯差异太大,且没有兼容原有功能。经过短暂的商议后决定回退版本。
最近携程的数据事故闹得沸沸扬扬,不管是什么原因,问题终究发生了。在问题发生的时候,更关键的是解决方法和防范措施,一般在升级或者重大的生产演练中,我们都有一个lesson learn,就是总结问题,总结经验,防范规范。 除此之外,一线人员在各种重大活动中都发挥了重要的作用,我还是喜欢那句华为任正非的那句话:让听得见炮声的人指挥。其余我只能报以呵呵的态度了。 自己也抽空整理了一下自己经历的数据相关的重大问题和事故,一总结还真吓一跳。确认也有不少案例。很多都记录在自己的技术博客中了,想了解详细的内容可以参考一下
目的(Target): 让产品可以快速迭代,同时保持高质量(容易发现和改正Bug), 简化集成工作流程;
故障是运维人员永远的痛。相信每一个运维人员的KPI中都有一项:可用性。可用性高就是不出故障,各个公司对可用性和故障评级的标准都不相同,但是避免故障的方法却是殊途同归。我们怎么避免故障,沃趣科技简单列举了以下几条,与大家共勉! 1、变更要有回滚,在同样的环境测试过 2、对破坏性的操作谨慎小心 3、设置好命令提示 4、备份并验证备份有效性 5、对生产环境存有敬畏之心 6、交接和休假最容易出故障,变更请谨慎 7、搭建报警,及时获得出错信息。搭建性能监控,了解历史,获得趋势,预测未来 8、自动切换需谨慎 9、仔细一
爱可生北分团队 DBA,主要负责项目前期建设及后期疑难问题支持。做事认真,对事负责。
Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从Apache2.0协议开源。
上面的架构图并没有具体说明SLB是什么,实际上上面的架构图翻译成下面这种看起来是不是很熟悉。
参考MOS文档: AutoUpgrade Tool (Doc ID 2485457.1) Database Server Upgrade/Downgrade Compatibility Matrix (Doc ID 551141.1)
对于很多喜欢写博客的IT程序员朋友可能都会有一个搭建自己的博客网站的梦想,今天我要介绍的这个开源项目恰好能帮你实现这个愿望。这个开源项目由国内IT大牛“江南一点雨”贡献,介绍完这个项目如何在本地开发环境跑通之后,我还将介绍利用上一篇发布的文章我想在同一个域名下部署多个项目怎么办?一文搞懂Nginx同域名下部署多个vue项目中的知识点将这一博客项目部署到已存在运行项目的Nginx器下
MySQL为什么如此流行的原因是因为它很早就有了非常成熟的高可用方案,这个方案就是mha,很多互联网公司都是基于mha做的高可用,所有受众面非常广。其实还有个小原因就是我们从上大学学习数据库原理这门课的时候老师就是拿mysql数据库作为例子,使得我们大部分人对它更加熟悉。
当前不少系统的数据库依旧是MySQL5.6,由于MySQL5.7及MySQL8.0在性能及安全方面有着很大的提升,因此需要升级数据库。本文通过逻辑方式、物理方式原地升级来介绍MySQL5.6 升级至MySQL5.7的方法,并介绍其使用场景。
案例是一个泰国网站的生产环境(请脑补一句“萨瓦迪卡”,为了叙述方便,下文中均以"萨瓦迪卡"指代这个网站。)“萨瓦迪卡”是一个 采用 Wordpress + MySQL搭建的应用。这个遗留系统已经工作了五年。客户已经把在其它 VPS 上平移到 AWS 上。平移(lift and shift)是说原样复制,而迁移(migration)还要进行改造。而客户唯一发挥 AWS 优势的一点就是用了一个配置很高的 EC2 虚拟机 —— m4.4xlarge。这样一台配置的虚拟机有 16 个虚拟 CPU,64 GiB 的内存,以及 2000 Mbps 的网络带宽,最高 3000 IOPS 的 200GiB 的块存储设备(也就是硬盘)。
每个DevOps都一个百宝箱,里面放着各种命令行脚本,可以用来自动化各式任务。但若文档不全,即便是脚本的作者,时间一久也不敢随便乱用,毕竟运维的大部分工作是管理生产环境,要是出了错,不是轻描淡写就可以蒙混过关的。写好 DevOps 的文档其实也是一门技术活儿,这里给大家分享一些组织运维脚本及其文档的经验。
作为万里数据库的战略合作伙伴,某运营商一直密切关注着国产数据库的发展。其系统中一套基于MySQL8.0.11版本的核心报表平台,近期由于存在安全扫描的漏洞,需要尽快将其升级到MySQL8.0.25及以上版本。
Influxdb是一个开源分布式时序、事件和指标数据库,使用 Go 语言编写,无需外部依赖。该组件在蓝鲸的功能定位是存储蓝鲸监控处理后的时序指标数据,在社区版属于单节点,在企业版属于双节点,由etcd+tsdbproxy+influxdb组成双写的架构。
OK 没问题,设置 nick_name 为 utf8mb4 varchar(50)
在本教程中,我们将详细介绍如何使用 Docker 和 docker-compose 在生产环境中部署 Nacos 集群和高可用 MySQL。
马哥linux运维 | 最专业的linux培训机构 ---- 在本地运行django应用相对来说还是挺方便的,使用自带的runserver启动即可。如果在生产环境部署django,就要多考虑一些问题了。比如静态文件处理,安全,效率等等 在网上找到了不错的部署的教程,讲解的还是很详细的,我就不重新再整理了。 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中国社区 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) – D
1、基于程序代码内部实现。根据select和insert对代码中的路由进行分类,这也是目前生产环境中应用最广泛的方法。
这篇是之前在掘金上发过的一篇文章,但没有在公众号发。昨天突然看到竟然超过500赞了,索性也在公众号发一下,表示纪念吧。
在这里会发现DevOps工程师是一个作为独立在开发及运维团队的角色,而这个角色负责对开发团队和运维团队做整合管理。这里我不想多聊关于这个团队的角色划分,只想对比一下以前关于TestOps的职位定义。
脚本使用和下载可参考Github:https://github.com/pc-study/InstallOracleshell
Flyway,是一个数据库版本管理工具。每次上线新功能的时候,都需要先更新数据库,然后再部署代码。当数据库的更新部分很多时,难免会忘掉,造成升级失败。 另外一个问题的是,当你的服务是允许客户自己私有部署的时候,每个客户可能都在不同的数据库版本上,这时候对于不同的客户给与不同的升级机制就相当重要了。
SQLBackupAndFTP 是一款用于备份 SQL Server、MySQL 和 PostgreSQL Server 数据库的实用软件,执行定期的完整备份、差异备份和事务日志备份,备份完成后产生的备份压缩包文件可以将它们存储在本地、FTP 服务器或云存储中(比如Amazon S3 、Google Drive、OneDrive),支持备份作业成功或失败的时候分别指定电子邮件发送备份结果。
首先来说MySQL升级后性能下降,在我从事MySQL DBA这10多年中也遇到几次,而且排查难度比较大。这里给大家提供一个MySQL升级管管理方案供大家参考。内容较长,建议收藏后以方便查阅。
前言 容器推出以来,给软件开发带来了极具传染性的振奋和创新,并获得了来自各个行业、各个领域的巨大的支持——从大企业到初创公司,从研发到各类IT人员等等。跨境知名电商小红书随着业务的铺开,线上部署单元的
干上几年运维,肯定感到迷惑和彷徨,因为运维是一个要求沉下心来了,不断精益求精的职业,而当下的大背景是浮躁,运维不是小鲜肉,明显是一个收益低,见效慢的职业。
UbiSQL 这个词对大家来说可能比较陌生,UbiSQL 是平安集团内部打造的分布式数据库产品,代码基于 TiDB,完全兼容 TiBD 4.0 版本。在 TiDB 的特性之上,UbiSQL 在稳定性、安全性和应用性上面都做了提升,打造出一个金融级且内核源码自主可控的分布式数据库,提供一栈式 HTAP 解决方案。
测试环境(Testing environment)是指测试运行其上的软件和硬件环境的描述,以及任何其它与被测软件交互的软件,包括驱动和桩。测试环境是指为了完成软件测试工作所必需的计算机硬件、软件、网络设备、历史数据的总称。
项目上线时需要切换生产环境配置信息,这些信息可以直接被保存在项目中吗?如果保存下来,不小心提交到仓库或被破解查看,生产环境岂不是裸奔?那么该如何解决?更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』
使用: yum -y install git git clone https://github.com/goodboy23/shell-script-collection cd shell-script-collection ./ssc.sh
Kubernetes(K8s)升级回退是在升级后发现问题或不满足需求时,将Kubernetes集群恢复到之前版本的过程。这是集群管理中的一项重要操作,以确保系统的稳定性和可靠性。
华智,携程高级研发经理,现负责数据仓库技术架构、性能优化、数仓规范制定、数据模型设计以及数据应用开发。
本文目录: 一、背景 二、我们的需求是什么? 三、概念澄清 四、概念模型 五、总体设计 六、关键点设计 七、总结 一、背景 说到自动化部署,大家肯定都会想到一些配置管理工具,像ansible,chef,puppet, saltstack等等。虽然这些工具给运维效率和安全性带来了很多好处。但是实际工作中,我们还是会遇到一些问题: 这些工具无法普及到开发、测试人员,经常找运维帮忙,无法自助; 项目人员无法直观的参看到系统的部署架构设计,及架构的演进过程; 从物理架构设计到最终上线,无法形成闭环; 受差异
最近有台服务器比较频繁的CPU报警,表现的特征有CPU sys占比偏高,大量慢查询,大量并发线程堆积。后面开发对insert的相关业务限流后,服务器性能恢复正常。
本文介绍如何在 Windows 上安装 .NET。 .NET 由运行时和 SDK 组成。 运行时用于运行 .NET 应用,应用可能包含也可能不包含它。 SDK 用于创建 .NET 应用和库。 .NET 运行时始终随 SDK 一起安装。当前最新版本的 .NET 是 5.0。点击此处,下载.NET Core/.NET。
前言 备份数据库是生产环境中的首要任务,重中之重,有时候不得不通过网络进行数据库的复制,由于MySQL/MariaDB的主从复制是明文传送的,如果在生产环境中跨网络传送,数据的安全性就无法完全保证,为
简介:MGR(组复制)官方推荐用MySQL router中间件去做MGR高可用故障转移,但其多过了一层网络,性能会下降,并且需要额外维护一套中间件,运维成本过高,于是写了一个类似MHA的master_ip_failover脚本,实现VIP切换。
大家好,用过Kubernetes同学大多都是从docker swarm过渡过来的,而用过docker swarm的同学大多都知道docker-compose;docker-compose早已被大多人丢弃在角落里,它的使用非常简单,只需要在有docker环境基础的服务器上把它的二进制文件复制到/usr/local/bin下,把多个容器放在一个编排文件中一键执行即可,被人遗忘的原因跟它的简单一样,太过于简单以至于在实际生产中根本无法使用。抛开生产环境不说,主要聊聊我在开发环境中如何使用docker-compose的。
用户遇到问题,生产环境中统一脚本安装的 MySQL 8.0.18,为什么有的环境有密码策略,有的环境没有?
领取专属 10元无门槛券
手把手带您无忧上云