互联网 DBA 需要做那些事(转)
众所周知,互联网DBA与传统行业DBA有很大的不同,那就是管理的机器多,新技术更新快,面对的开发多、网络环境复杂、要求7*24待机;这样就 导致互联网DBA的工作在传统DBA工作之上,增加了更多的复杂性,我们必须考虑如何大批量部署,如何集中化监控、如何解决单点故障而保障7*24,而为 了做到这些,不是靠堆人力,我们必须有一个完整的平台作为支撑,那么数据库平台到底要建成什么样子呢?
1、强有力的监控系统(监+控):
监控是我们的眼睛,我们不可能7*24个小时盯着我们的DB,所以,我们需要监控系统来帮我们盯着,一旦异常,监控不仅仅通知我们,而必须要有控 制,例如:MySQL 从库宕机了我们通过监控自动让其下线;从库同步状态失效了,可以自动修复同步等;并且,随着机器的增加、实例daemon的增加,我们会发现我们的手机报 警会急剧增加,为了我们自己晚上能睡一个安稳觉,我们怎么去降低我们的报警,例如:哪些该短信,哪些该邮件;所有机器的磁盘空间报警是否可以整合后在报 呢?这就是我们监控系统必须考虑的,
2、自动审核系统:
开发很多,项目很多,但是开发的习惯都不一致,可能会导致我们审核表结构的时头都看大了,为了保证线上的统一,为了保证不被开发的神奇SQL搞伤, 不被N多的项目审核压垮,我们必须有一个自动建表审核系统,我们定义一些规则,如:不能用预留字段、主键必须为INT,BIGINT等,然后开发填写准备 上线的表结构,通过系统自动审核,审核通过的,自动上线,审核不通过的,给出建议;
3、慢日志分析系统:
随着自动审核系统的上线,我们可能会漏掉一些索引使用不太好的SQL,那么我们就需要慢日志分系统帮助我们,在设计该系统时候,我们需要考虑是实时 抓取慢日志,还是每天定期推送慢日志、慢日志抓取后是立即推送给开发还是自动分析完以后给出建议给开发、慢日志还要考虑一些SQL是否需要过滤,因为他可 能是每天的统计,当然这些都是自动的,设计完后,不需要人工介入;
4、统计系统:
我们必须清晰的知道线上DB的整体运行情况,访问量的变化、写入量的变化、图是死的,他不会欺骗任何人;我们能通过访问统计知道是否有恶意访问、是否需要优化,是否需要增加节点抗住更大的压力;
5、备份系统:
不管你信不信,我是信了,冷备份总是我们的救命草,不管我们做的多么好,故障总会有,drop database也会发生,所以,一个完整的备份系统,势在必行,我们的备份是否正常,备份的数据是否能恢复,恢复需要多少时间,都是我们备份系统需要考虑的;
6、管理系统:
我们机器少则上百台,多则可能好几千,如何清晰知道每台机器跑了多少daemon,DB Proxy下面有哪些机器,如何能对主库机器、从库机器进行脚本分别分发等;都需要管理系统来帮我们完成;
7、中间层:
是把双刃剑,他能给我们带来好的扩展,例如:动态添加从库、主库失效检测等;但是他带来了DBA管理的复杂性、带来了更多的故障点、带来了更多的 bug、如果DB Proxy性能不好的话,那就更糟了,并且为了解决client透明,我们必须考虑很多,例如:连接保持,如:字符集、last_insert_id、 use dbname等;如果我们有人力开发维护,那么我相信Proxy会带给我们欢乐;
以上各个系统都是为我们管理DB提供支持,如果没有这些系统支持,那么数据库管理就谈不上平台,谈不上批量管理,谈不上承载百亿访问量,百T数据量 的数据库;当然在涉及这样的系统时候,我们也要考虑新技术的引进,例如:如果能快速的打造NoSQL 平台等;当然在部署这些模块的时候,我们时时刻刻记得,所有的模块都是会变的,我们需要不停的学习,不停的改进,才会打造宕机时间更低的数据库服务。
后续会慢慢分享出,我们这些模块是如何做的,及其进度如何。
互联网 DBA 需要做那些事(转)的更多相关文章
- 开发完iOS应用,接下去你该做的事
iOS专项总结 关于 analyze Clang 静态分析器 Slender Faux Pas Warning Leaks Time Profiler 加载时间 iOS App启动过程 帧率等 如何优 ...
- 7件你不知道但可以用CSS做的事
不管你信不信,CSS和JavaScript开始重叠,就像CSS增加了更多功能一新.在我写“你可能不知道的CSS和JavaScript互相影响的5种方式”一文时,人们对于JavaScript和CSS是如 ...
- 转载:安装Ubuntu 15.10后要做的事
转载:安装Ubuntu 15.10后要做的事 原文转载于:http://blog.csdn.net/skykingf/article/details/45267517 Ubuntu 15.10发布了, ...
- 开发完 iOS 应用,接下去你该做的事
iOS专项总结 一个应用经过多次迭代后告一段落,接下去我们在技术上还可以做些什么呢?答案是提高代码的整体质量.关于这方面,除了我们常喊的 重构,测试也非常重要. 博主近期给我们的 iOS客户端代码来了 ...
- Git 还没push 前可以做的事(转)
Git 版本控制系統(3) 還沒 push 前可以做的事 转载:http://ihower.tw/blog/archives/2622 這一集要講的是:還沒 push 前可以做的壞事,也就是 re ...
- Unity3d 子线程能做的事
一,子线程中能做的事: 1,数据逻辑方面计算: 二,子线程中,不能: 1,加载场景相关事件: Application.LoadLevelAsync.Application.LoadLevel等: 2, ...
- debug模式开启会做哪些事(源码分析)
以往开发中不管是django框架下开发还是其它框架下开发, 只知道在开发阶段要开启debug模式, 却一直没有深究它会我们做哪些事, 今天使用tornado时偶然看到源码中写的很清楚,故写下来加深印象 ...
- Kali Linux 2020.1安装以及安装后要做的事
Kali Linux是基于Debian的Linux发行版,预装了许多渗透测试软件,让大家从各种繁琐的软件安装中解脱出来,专注于测试本身. 本文章介绍了如何安装目前最新的2020.1版本,以及安装好后补 ...
- Redis还可以做哪些事?
在上一篇文章中,讲到了redis五大基本数据类型的使用场景,除了string,hash,list,set,zset之外,redis还提供了一些其他的数据结构(当然,严格意义上也不算数据结构),一起来看 ...
随机推荐
- 经典 socket通讯 -- 已验证
[tcp通信] 来源:不详: client: package com.defonds.socket.begin; import java.io.BufferedReader; import java. ...
- java 日期格式 毫秒
参考URL:http://www.busfly.net/csdn/post/java_string_fomat_date_time_simpledateformat.html 关键代码: java.t ...
- Linux-dd命令详解【转】
转自http://www.cnblogs.com/dkblog/archive/2009/09/18/1980715.html Linux-dd命令详解 dd 是 Linux/UNIX 下的一个非 ...
- bootstrap 固定底部导航自适应
在使用bootstrap 底部导航的时候遇到了一个问题 -- 当我的内容超过一屏的时候,底部的部分内容会被固定的导航内容遮盖 自己写了一个JS脚本,解决自适应的问题 <nav class=&qu ...
- Java Memory Model
http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html http://www.ibm.com/developerworks/libr ...
- C#绘图双缓冲
C#绘图双缓冲 C#双缓冲解释: 简单说就是当我们在进行画图操作时,系统并不是直接把内容呈现到屏幕上,而是先在内存中保存,然后一次性把结果输出来,如果没用双缓冲的话,你会发现在画图过程中屏幕会闪的很厉 ...
- PostgreSQL and bloat
The bucardo project has released its nagios plugins for PostgreSQL and we can extract from them this ...
- 在Windows上安装Maven
下载 Maven 最新版本. http://maven.apache.org/download.cgi 1,下载包后,解压到相应特定位置. 2,将 [解压位置]/bin 加入到Path 3, ...
- 【转】ie8 不支持 position:fixed 的简单解决办法
今天发现使用 position:fixed 的页面在firefox下没有问题,在IE8下却不能正常显示,在网上找了找,有不少相关文章,但是不是不起作用就是太复杂,后来终于发现一个简单的解决办法,就是在 ...
- 【转】Android Drawable Resource学习(十一)、RotateDrawable
对另一个drawable资源,基于当前的level,进行旋转的drawable. 文件位置: res/drawable/filename.xml文件名即资源名 编译数据类型: 指向 RotateDra ...