MySQL新项目如何确保上线安全

DBA最应该做的事情

  备份:

    建议每天全备

    每天把binlog也要进行备份

    理想的目标: 可以把数据还原到任意时间点(可以恢复到近两周的任意时间点)(半年以上:每个月一份 )

    hdfs,ceph

  监控:

    了解环境使用情况

    zabbix做一个从库,通过数据分析(环比),智能分析平台。

  环境可控:

    了解数据增长及环比情况

    磁盘剩余,要大于单表最大的表的1.5~2倍空间,防止DDL撑满磁盘

 

新项目开发环境应该注意什么

  long_query_time = 1 => 0 记录所有SQL

  了解核心业务SQL,提出读写分离和缓存指导建议

    功能测试,性能测试中注意校对

  备份开发环境(每天一备),放到其他机器上,最好也要有从库

    开发把数据误操作干掉

    开发服务器机器故障

    并发连接太多,DB相应太慢

  核心SQL优化,schema调整尽量在这个阶段完成

  特别提示:

    新技术也可以在这个环境测试一下

   

功能测试和压测MySQL DBA关注点

  功能测试环境(保稳)

    保障环境正常,基本DBA不在调整该环境的读写

    数据库新版本验证(也可以放到这个环节)

    数据库权限尽量保持和线上一样要求(严格控制)

    重视该环境的性能问题

    web端测试(Python + Selenium)

  功能测试可能遇到的问题

    索引不合理

    功能不完善,调整表结构

    存储过程,定时任务缺失

    主从故障    

  性能测试(测极限)

    一般基于LR测试

      数据初始化(备份)

    获取SQL执行品读,优化,读写分离相关工作进一步校验

    工具:

      sysbench / mysql-tpcc

    产出:

      基于业务的性能评估(性能测试人员)

      数据库的性能星空(DBA)

  压测环境问题

    数据库压挂

      IO不行 /Buffer Pool太小 / 索引不合理

    慢查询较多

      优化SQL

线上环境关注点

  DML 操作量 & 事务队列

  数据增长量

    每张表每天增长多少行

    每周增加的大小

  每天binlog形成量,高峰期binlog切换速度

  每天慢日志情况 & 错误日志

  每天备份(数据,binlog)

  高可用架构

线上问题

  更改表结构

  迁移

  性能问题(异常)

  SQL优化 (SQL审核)

  数据一致性校验 (主从切换,异常处理)

  高可用切换 (手工维护)

业务在大压力情况下,MySQL如何能活下来

  高可用切换后,新节点直接挂掉

    从节点负载超过50% (30% 以下)

    从节点Buffer Pool 没缓存数据

  连接数较高,出现 thread_running 过高,数据库挂掉

    过载保护  (thread_running 超过CPU 核数 告警,pt-kill )

    引入 thread_pool

  单表出现热点

    读写拆分(认证)

  Updata tb set c1 = c1 + 1 where id = xxx, 高并发搞挂数据库

    内存中合并数据,再提交到数据库

原文地址:https://www.cnblogs.com/yujiaershao/p/11304347.html

时间: 2024-09-30 23:58:12

MySQL新项目如何确保上线安全的相关文章

从零开始的Android新项目11 - 组件化实践(1)

最近更新不太频繁,一方面工作上比较忙,除了 Android 也在负责前端,另外周末和深夜也在帮人做 Go 后台.设计技术方案.管进度的事情(因为报酬不错没忍心拒绝,而且确实对个人成长还有帮助),所以实在对不住. 另外,文章最底下有捐款啊,最近真是都没钱吃饭了... 前言 这里的组件化,指的是 MDCC 2016 上冯森林提出的<回归初心,从容器化到组件化>. 我个人一直是比较反感黑科技的,其中首当其冲的就是 插件化 以及 保活.作为一个开发者,除了研究技术,提高自己以外,是否应该考虑些其他东西

互联网项目成功上线背后的真相

大家也许都发现前几天内容没有更新,因为我在忙着一件非常重要的事(鑫合汇新版网站上线),不过大家放心,我承诺过,微信公众号"前端风暴"保证每周更新3条以上(含3条)消息,无论如何,都会做到,未做到周一可问我要微信红包,微信公众号有更新,一般这里就有更新! 既然这几天在忙项目上线的事,我们就聊聊项目成功上线背后的真相吧,也借此文抛砖引玉,引出更多成功上线背后的"真相"和经验. 说起项目大上线,对于互联网行业从业者来说,尤其是IT人,也许不仅不陌生,还印象比较深刻,那一夜

【新项目】ATM机+商场系统逻辑

新项目,上逻辑 #!/usr/bin/env python # -*- coding: utf-8 -*- '''''' #做项目 ''' 1.调研 2.需求分析 3.任务分配 4.写项目demo(架构师) 5.架构分析 6.编写代码 7.测试 8.上线(产品) ''' ''' ATM + 购物车思路构想 一.需要实现的功能 项目需求: --购物商场需求 1.用户信息由文件存放 2.实现 登录,注册,注销,购物,充值,退出系统 六个功能 3.注册可以完成用户的注册,注册时要提供账号密码,初始财产

准备在新项目中使用pgsql

pgsql大象数据库 是我最近在关注的一款开源数据库,可以自由修改,没那么多限制,准备在新项目中使用 http://blog.163.com/[email protected]/blog/static/16387704020141229159715/

关于导入新项目的问题——项目文件有错,但是子文件没任何错误的解决办法

在我们学习和工作的时候,有时候将别人的 Project 导入到自己的开发工具时,总是会有莫名其妙的奇葩错误, 就是明明项目里面的代码和类都没错,但是项目文件夹上有一个红色的叉叉,今天我就给大家来说说关于这类错 误的解决办法,我就故意导致项目报这个异常,一步一步演示给大伙看,希望大家在以后遇到这类问题可以迎刃 而解 错误示例图: 我们可以看到上面截图,除了项目文件,其他都没任何错误,可是在console没有异常告诉我们,我们该怎么解 决呢?其实很简单,下面看我演示: 打开红色方框这个选项,里面就是

cocos2d-x3.2创建新项目失败的一种可能性(cygwin自带的python2.6被抢先执行)

之前一直使用cocos2d-x2.2写游戏,写了几个游戏后,想尝试下3.x版本的新功能,就下载了cocos2d-x3.2版本. 参照官方文档的说法,cocos2d-x3.x版本需要python2.7环境支持,python2.6以及python3.x版本都不行,所以特意去python官网下载了2.7.8版本,安装好后进入目录: cocos2d-x-3.2\tools\cocos2d-console\bin 执行命令: python cocos.py new HelloCpp -p com.hell

MySQL新旧版本ORDER BY 处理方法

MySQL 的order by 涉及到三个参数:A. sort_buffer_size 排序缓存.B. read_rnd_buffer_size 第二次排序缓存.C. max_length_for_sort_data 带普通列的最大排序约束. 我来简单说下MySQL的排序规则.假设查询语句select * from tb1 where 1 order by  a ; 字段a没有建立索引:以上三个参数都足够大.MySQL内部有两种排序规则:第一种,是普通的排序.这种排序的特点是节省内存,但是最终会

换新项目的痛与乐

在offshore项目待了一年多,终于申请上了国内项目,来之前一直觉得国内项目好,锻炼人,但是任何事情都有痛与乐,今天就聊聊在一个新项目上的痛苦与快乐. 痛苦 全新技术栈.技术上,国内项目没有offshore项目与时俱进,基本上全是Java技术栈,分前端,后端,Devops几种角色(只是开发方面).作为一名自称后端程序员,熟悉掌握Java基础是最重要的,但一年多没碰过Java的我,在这方面还是显得力不从心. 出差.国内项目上的出差机会还是很多的.当时申请上国内项目的时候也申请去北京出差,来之前觉

从零开始的Android新项目1 - 架构搭建篇

记录一下新项目的搭建. 试想一下,如果没有历史负担,没有KPI压力,去新搭建一个项目,你会怎么设计和实现呢? 本系列文章不是教你怎么从0开始学Android,从0开始怎么建一个项目,而定位于零负担的情况下,在2016年怎么去创建一个好的Android项目,其中一部分技术并不太适合刚入门的初学者. Application specific 类似clean architecture,分为三层 presentation - data - domain. 关于Clean Architecture由于国内