作者:徐文梁 爱可生 DBA 成员,一个执着于技术的数据库工程师,主要负责数据库日常运维工作。擅长 MySQL,Redis 及其他常见数据库也有涉猎;喜欢垂钓,看书,看风景,结交新朋友。...当时数据库自动重启,未对生产造成影响,未做处理,但是还是记录了下错误信息,错误日志中有如下信息: InnoDB: End of page dump InnoDB: Page may be an index...虽然之前很幸运未对生产造成影响,但是如果后面哪一天异常了导致实例无法启动,那不就是妥妥的一个生产故障嘛,作为 DBA 要有忧患意识,必须要提前准备好应对之策,针对此类问题,该如何排查以及解决?...考虑生产环境信息安全,在测试环境建立测试表进行展示。...但是如果是生产环境,尤其是金融行业,是无法容忍丢失一条数据的,比较有可能这一条数据就涉及几个小目标呢,因此,重要的事情说三遍,一定要备份!一定要备份!一定要备份!
Chaos Monkey GoReportCard Chaos Monkey 随机终止生产环境中运行的虚拟机实例和容器。通过让工程师更频繁地面对故障,激励他们构建更具弹性的服务。...功能特性 随机实例终止:在指定范围内随机选择并终止实例,模拟真实故障场景 多分组策略:支持按应用(App)、堆栈(Stack)或集群(Cluster)级别进行终止分组 Spinnaker 深度集成:与...:使用 MySQL 存储调度计划和终止记录,支持迁移管理 安装指南 系统要求 Go 1.11+ 开发环境 Spinnaker 管理的基础设施(AWS、GCE、Azure、Kubernetes 等) MySQL...数据库(可选,用于存储调度记录) 本地安装 # 获取 Chaos Monkey 二进制文件 go get github.com/netflix/chaosmonkey/cmd/chaosmonkey...=myapp --account=prod --region=us-east-1 # 从 API 获取并安装调度计划 chaosmonkey fetch-schedule # 检查是否有正在进行的故障
2022 最新 线上 生产环境 故障排查 技巧 大全 线上故障主要会包括 CPU、磁盘、内存以及网络问题,而大多数故障可能会包含不止一个层面的问题,所以进行排查时候尽量四个方面依次排查一遍。...一方长期未收到另一方的确认报文,在一定时间或重传次数后发出 RST 报文 这种大多也和网络环境相关了,网络环境差可能会导致更多的 RST 报文。...我们在排查故障时候怎么确定有 RST 包的存在呢?当然是使用 tcpdump 命令进行抓包,并使用 wireshark 进行简单分析了。...tcp_tw_reuse = 1 #表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭 net.ipv4.tcp_tw_recycle = 1 当然我们不要忘记在 NAT 环境下因为时间戳错乱导致数据包被拒绝的坑了
原则:为生产库建立不同的用户管理用户业务用户 管理用户:超级管理用户、dba运维用户、备份用户、监控用户、复制用户 (克隆用户) 业务用户:每个业务模块一个用户,命名可以是user_业务模块名 只读查询用户...:允许开发人员定位问题查询生产库的只读权限 权限分配原则:根据最小原则给每个用户满足需求的最小权限,要是不够再增加 mysql用户和权限牵涉到的表 user : 包含用户账户,全局权限 db: 数据库级别的权限表...replication clinet replication slave show databases shutdown super create tablespace usage grant option 数据库级别权限...:授权方式可以*.* db.* create create routine create temporary tables drop loack tables references 数据库对象级别的权限...账号访问控制认证 第一个阶段:账号和密码认证 第二个阶段:权限检查 用户认证过程中mysql会把用户权限表加载到内存中 账号的匹配 先按照主机名字段排序,然后按用户名排序,用户账号根据排序后信息进行匹配
下面的表的程序可以考虑关闭下面的参数 innodb_stats_on_metadata=0 set global innodb_stats_on_metadata=0; 故障分析 注:一般mysql...分析思路: 1、查看mysql的slow.log,看是否出现死锁,及其他报错 2、show processlist; 查看mysql都有哪些连接,判断这些connect是否正常 3、通过使用htop、dstat...tcpdump使用 抓包分析,默认mysql端口为3306 tcpdump -i eth0 -A -s 3000 port 3306 > /tmp/sql.log 引用perl tcpdump -...慢日志,查看哪些sql语句最耗时 pt-query-digest db-slow.log 总结: 有时候不需要全部操作就能找到问题的所在,这次故障中个人是通过show processlist找到不正常的连接...故障分析:后端API服务抛异常,导致一个SELECT频繁去执行,先重启后端API,然后分析报错,找相关人解决。
1 网络故障排查的基础与挑战在生产环境中,网络故障排查一直是系统管理员和网络工程师面临的主要挑战之一。...特别是在国产操作系统(如银河麒麟、中标麒麟等)构建的生产环境中,由于其特殊的硬件适配架构和软件生态,网络故障排查显得更加复杂。...3 常见网络故障类型与诊断方法3.1 网卡绑定(Bonding)问题在生产环境中,网卡绑定(Bonding)是提高网络可靠性和带宽的常见技术。...,需要针对特定应用进行网络优化:数据库网络优化:调整OceanBase、达梦等数据库的网络参数中间件优化:配置东方通等中间件的连接池和线程池参数微服务网络优化:在容器化环境中调整网络插件参数7 构建国产环境网络监控体系完善的网络监控体系是预防和快速定位网络故障的关键...:自动分析故障根本原因自愈动作:自动执行故障修复动作8 总结与展望国产操作系统生产环境下的网络故障排查是一个复杂而又具有挑战性的任务。
由于演练对象和演练配置的差异,在生产环境进行试验可能会对生产环境造成不确定的影响,但混沌工程师的责任和义务是确保这些后续影响最小化且被考虑的范围。...因此,可以考虑以下方面尽可能保障生产环境的演练不被破坏: 一、管理方面 1.1、演练人员要做到熟练使用,了解清楚具体某个实验的配置/参数的作用,做到有的放矢; 1.2、生产环境故障注入前,先在测试或者沙盒环境验证和测试...② 设定实验范围: 生产环境中,通过切小部分流量的方式,创建实验组、控制组环境 ③ 故障注入: API 调用 Gallery 的 rpc 请求注入中断故障 ④ 稳态验证: 通过 GetGallery...三、以中移磐基CMChaos混沌平台生产环境落地过程予以分析讲解 首先,可以把故障分成五种类型:机房问题、中间件问题、机器问题、应用问题、依赖问题。...以上是中移磐基混沌工程生产环境实践落地路线,也非常推荐大家按照这种路线来做,从性价比由高往低的方式去推进。
1案例介绍 首先,我们看一个生产环境上 GROUP BY 语句 的优化案例。...2环境准备 对于 GROUP BY 在使用索引上的优化,分为两种情况讨论: 表上无索引。执行时,会生成临时表进行分组。可以通过索引来优化,来避免使用临时表。 表上有索引。...6参考链接 https://dev.mysql.com/doc/refman/5.7/en/group-by-optimization.html https://dev.mysql.com/blog-archive...https://ost.51cto.com/posts/11914 《高可用 MySQL》https://www.oreilly.com/library/view/high-performance-mysql.../9780596101718/ch04.html 本文关键字:#MySQL# #SQL优化# #GROUP BY#
欢迎转载,转载请注明出处,谢谢 一、背景 公司的生产环境某些应用的数据库是部署在VMWare平台上的,为了节约成本,领导现考虑将全部数据迁移至居于KVM的CAS平台。...二、环境 2.1备份主机环境 [root@GeekDevOps-DB1 ~]# hostnamectl Static hostname: GeekDevOps-DB1 Icon...o:centos:centos:7 Kernel: Linux 3.10.0-327.el7.x86_64 Architecture: x86-64 2.2还原主机环境...CHARACTER SET utf8; Query OK, 1 row affected (0.00 sec) 4.2为创建好的数据库授权给用户GeekDevOps_gsms。...> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit Bye 4.3还原数据库。
MySQL数据库安全权限控制管理 制度与流程控制 项目开发制度流程 开发环境 ---→功能测试 ---→ RDS实例上线,通过较为完善的项目开发流程控制,防止很多潜在的问题隐患发生。...数据库发布流程(分为DDL/ DML,DBA 只负责生产环境DDL发布,DML由开发人员自行发布) 涉及到生产数据库重大变更(比如大表加字段,索引,批量数据刷新),需邮件到技术总监以及DBA,判断业务是否允许...,完成上述数据库更改。...涉及到生产数据库小规模变更,直接发给DBA,抄送开发负责人等。...ddl 在提交至预发布环境后钉钉通知DBA,由DBA对 ddl 进行审核(create, alter 等),如有问题驳回修改后发布至预发布环境 。
在开发和测试时,我们往往不会很在意数据库相关的一些并发数的配置,因为开发和测试时,系统的并发量并不会很大, 因此,是否正确设置这些参数也不会对结果造成什么影响 但是,上生产环境后,系统的并发量大大提高,...这时,没有注意数据库的并发数配置的话就会使数据库成为系统最终的 并发瓶颈。...根据我在实际项目中一段时间的并发测试后,发现关于数据库并发数需要配置的几个地方,希望跟大家分享一下,能少走一些弯路 数据库并发配置 查看mysql数据库的服务器的最大连接数 show variables...修改mysql配置文件my.cnf max_connections = 3000 尽量保持 Max_used_connections/max_connections = 85%左右 修改程序中数据源的配置...(这个很重要,我之前就是忘记修改这里而只改了数据库,导致数据库出现的历史并发数一直上不去) <property name
环境说明:MySQL:5.7.34 双主OS:Redhat 7.5问题现象:XXX应用登录,提示数据库连接失败。.../mutex/sql/MYSQL_BIN_LOG::LOCK_done | NO | NO || wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_flush_queue.../mutex/sql/MYSQL_BIN_LOG::LOCK_sync | NO | NO || wait/synch/mutex/sql/MYSQL_BIN_LOG::LOCK_sync_queue...----±-----+3 rows in set (0.01 sec)7.打开另一个新的会话4,无法查询数据,被阻塞MySQL [cjc]> select * from t2;卡住8.打开会话5,执行数据库备份...执行备份1[mysql@mysql01 backup]$ mysqldump -uroot -p cjc > /home/mysql/backup/cjc.sql卡住9.打开会话6,查询会话信息id
1 国产操作系统环境下的故障排查挑战随着信息技术应用创新产业的深入推进,国产操作系统(如银河麒麟、中标麒麟、深度等)在生产环境中的部署规模持续扩大。...生产环境中的系统故障大致可分为以下几类:性能故障:系统响应缓慢,吞吐量下降稳定性故障:系统僵死、服务异常退出、内核恐慌一致性故障:数据错误、内存异常可用性故障:服务中断、集群故障切换3 核心排查工具与方法论...4 典型故障场景与深度排查案例4.1 案例一:操作系统"soft lockup"导致集群故障切换问题描述:在中标麒麟系统生产环境中,金仓数据库KingbaseES V8R3集群发生failover切换。...7 总结与展望国产操作系统生产环境下的系统故障排查是一项复杂而具有挑战性的任务,需要运维人员深入理解国产硬件特性、内核原理和应用行为。...运维人员需要不断学习和掌握新技术、新工具,深入理解国产软硬件平台的特点和特性,才能在生产环境系统故障排查中游刃有余,保障关键业务系统的稳定运行。
背景 如果我们需要在生产环境中修改MySQL数据库中某个库表的结构。那么,需要考虑哪些要点,才能确保不会出问题呢? 碰到的问题 这里先描述一下我在生产环境MySQL数据库中修改库表结构时遇到的问题。...在开发过程中,我发现MySQL中某个库表需要添加一个字段,比如库表: 需要给Sname后面添加一个字段:Sheight。...alter table practice.Student wait 100 add column Sheight int(4) not null default 0 comment '"身高" 总结 在生产环境中变更...MySQL数据库中库表结构是一件比较有风险的事情,所以一定要三思而后行,避免引起任何可能的线上事故。
mysql安装方式有多种 1.rpm包可以用yum安装 2.二进制包解压安装 3.源码编译安装 4.docker镜像方式按照 生产环境安装建议使用第二种二进制包安装 如下操作使用mysql8.0.18...在centos7上安装 作为生产环境安装首先要调整操作系统环境: 调整文件句柄和进程数 vim /etc/systemd/system.conf centos7调整如下2个值 #DefaultLimitNOFILE...tcp_max_syn_backlog = 819200 net.core.netdev_max_backlog = 400000 net.core.somaxconn = 4096 #解决time_wait过高导致数据库连接不上...推荐使用xfs文件系统 io调度 SAS :deadline SSD&PCI-E: noop 规划mysql安装: 1.下载指定版本的msyql数据库 [root@localhost local]#.../mysqld --defaults-file=/data/mysql/mysql3312/my3312.cnf --user=mysql & --initialize 初始化生产随机密码在error.log
前言 如果我们需要使用webpack,就需要依赖node环境 nvm node npm webpack@cli webpack nvm安装 nvm是一个用来管理node版本的工具。...https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash 2.创建nvm文件夹 mkdir ~/.nvm 3.配置环境变量...编辑环境 vim ~/.zshrc 在文件最后写入环境变量 export NVM_DIR="$HOME/.nvm" [ -s "/usr/local/opt/nvm/nvm.sh" ] && ....3.安装完成后,还需要配置环境变量。在我的电脑->属性->高级系统设置->环境变量->系统环境变量->Path下新建一个,把nvm所处的路径填入进去即可!
一、问题描述 1、客户数据库从服务器,套接字丢失/tmp/mysql.sock,导致mysql 直连本地提示访问拒绝 2、正常解决方法:需要人为重启动数据库。...,这台机器原先是mysql5.6 ,后来升级至5.7(采用的是二进制安装) mysql5.6安装路径:/usr/local/mysql mysql5.7安装路径:/usr/local/mysql-5.7.16...所以我修改/etc/profile的环境变量 export PATH=....$PATH:/usr/local/mysql-5.7.16-linux-glibc2.5-x86_64/bin 启动数据库错误问题依旧。。。。。。...& 三、解决方法 根据提示:mysql5.7的mysqld_safe启动时,引用的mysql5.6动态库,是不是因为环境变量之类有影响。
早上看到微信一个银行的同学问了小问题,希望他不要背锅,具体问题是MYSQL 一个50G的表要更改字段,将一个字段从varchar(3) 改成varchar(6). MYSQL 5.7 官版。...可能原因如下 1 DDL ONLINE 不阻塞 DML 但并没有说,不会不阻塞 DDL 的操作 2 测试环境比较单纯,可能测试的时候,对表并没有其他的复杂的操作 所以还是那句话,数据库的问题,一定要想的复杂点...有些公司操作ALTER 语句的并不是人工,而是通过购买(或开源)的一个所谓的 “自动化”工具来的,谁也不知道在故障发生的一刻,做了什么,同时不能复制的,就是当时的生产环境到底有没有大事务,并且就对那张表进行了什么操作...也注定 DB的工作,是一件需要小心小心小心的工作,因为生产环境一定有你不清楚的环境,而这些可能不清楚的环境,就会让某次“信心满满”的Action Failed....注:到目前为止MYSQL 在修改字段方面,对比其他数据库还是要注意的地方多多,当然MYSQL 8 已经添加了 instant 让修改字段变得更让人放心。
踩坑记录:生产环境MySQL迁移那些事上个月接到个任务,把公司的MySQL从云数据库迁移到自建机房。听起来简单,mysqldump导出导入不就完了?结果折腾了整整一周,踩了无数坑。...背景原来的数据库在云RDS,配置是4核8G,数据量大概200G。要迁移到公司自建机房的物理服务器上。...排查了半天,发现云RDS默认是utf8mb4,我们自建的MySQL是utf8。...但是发现云RDS的binlog只保留7天,而且位置格式和自建MySQL不一样。...ANALYZETABLE时区问题统一时区设置如果你也要做MySQL迁移,建议先在测试环境完整跑一遍,把坑踩完再上生产。
自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。...问题 今天发现Mysql的主从数据库没有同步 先上Master库: mysql>show processlist; 查看下进程是否Sleep太多。发现很正常。...mysql.bak.sql 这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失。...备份文件传到从库机器,进行数据恢复 scp mysql.bak.sql root@192.168.128.101:/tmp/ 5.停止从库的状态 mysql> stop slave; 6.然后到从库执行...mysql命令,导入数据备份 mysql> source /tmp/mysql.bak.sql 7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File|