作者:eygle 原文链接: http://www.eygle.com/archives/2007/02/dba_need_some_habit.html ---- 这几天,在帮助一个朋友进行数据恢复...因为这个案例,我想说一下作为一个DBA应该养成的一些基本习惯。 以前曾经写过一篇What Kind Of DBA we need-我们需要什么样的DBA?。...所以作为一个DBA,经常性的执行pwd命令来确认自己的工作路径: [oracle@jumper oracle]$ pwd /opt/oracle 3.确认instance_name等数据库中要信息 在执行...truncate/drop等操作之前,应该确认连接到了哪个数据库,从v$database或v$instance等视图中可以获得这些信息(可能需要授权) SQL> select instance_name...所以,有一些习惯是需要养成的。 -The End-
未来,会重构成 Spring Cloud Alibaba 。...奋斗者优先: 需要管理者识别并区分出团队成员中不同类型的人(庸人,人手,人才,奋斗者),要把机会和激励留给敢于承担,并和团队一起成长的人,这样的人成长会很快,潜力也往往很惊人。...一般情况下在超过 100 人左右时,组织会呈现职能型,产品型,创新型等多组织共存的混合架构模式。...所以一般技术成员都会有明确的归属产品线,明确的技术职级/管理职级,明确的岗位类型和岗位职责,这也是我们常说的“一个萝卜一个坑”;然而公司规模较小或创新组织时,人员复用性较强,跨边界和职责的工作会较多,职责和职级界限会相对模糊...很多公司可能会找一些专业公司做团建活动,中间会穿插很多的团建小活动,这种形式对于销售类职业也许非常棒,但是对于技术类职业效果不是最佳。
上周我们在几个社群做了一个问卷,“DBA需要具备开发能力吗”,这里附上结果: 选项 票数 占比 不需要 1 2.5 % 需要会用Python,但不需要特别强的开发能力 12 30.0 % 需要特别强的...Java开发能力 1 2.5 % 需要会用Shell,但不需要特别强的开发能力 9 22.5 % 需要特别强的Shell开发能力 3 7.5 % 需要C语言/C++开发能力,要能读懂MySQL/Redis...DBA 需要掌握的; 有一部分人觉得也需要掌握 Go; 有少部分人觉得需要读懂 MySQL、Redis 等数据库的源码。...开发,之前的文章有介绍过一期,可点击跳转) 等,这些软件都可能需要自己二次开发一些模块,或者能读懂源码,从而解决工作中遇到的一些问题; 对数据库二次开发,真正会对 MySQL 和 Redis 等主流数据库做二次开发的公司...当然如果考虑进入这些公司对主流数据库做二次开发,也可以尝试学习 MySQL 和 Redis 源码; 日常运维,比如迁移,升级、备份等操作,如果实例比较多,都需要提前开发好批量执行的脚本。
就跟卡bug一样,比如说你去面试,面试官问你:MySQL为什么会死锁;你告诉面试官:你录用我我就告诉你,面试官说:你告诉我我就录用你,然后你两就一直这么你问我我问你,这就是死锁。...那么,什么时候会发生死锁呢?...insert into team(position_no, user_name) values(6,及川) 此时就会发生两个人员都被加入进来了,出现了两个位置为6的记录,出现了幻读,因此在查询的时候需要加锁...3️⃣ 死锁的底层原理分析 其实有了昨天的知识储备,了解了查询的时候的加锁情况,我们其实不难分析出为什么会死锁: select * from team where position_no = 6 for...的死锁情况,关于为什么会死锁,讲完昨天的文章,也就是对查询时的加锁情况的讲解,其实来分析这个死锁的情况并不是一件难事,最后也介绍了从数据库层面和业务层面如何去防止MySQL出现死锁的情况。
每个中高级DBA都需要掌握一些简单脚本的编写,这样才能从繁杂重复的基础维护工作中解脱出来,才能有时间去研究更有价值的技术。...\n" 而如果是使用until do done, 只需要修改while [ " 练习6:计算1+2+3+...+num的结果 考察:正则 #!...提示:不同数据库的默认监听端口不同 Oracle数据库判断netstat -tuln |grep ":1521 "是否有结果; Mysql数据库判断netstat -tuln |grep ":3306
在2008年及之前,少有公司有专门的DBA团队,那时候都统一在OP范畴。 我记得那时候写应用,如果涉及到需要数据库, 我的发布步骤里面,还要包含数据库的安装步骤。...我记得我要在3G的可用内存里,分配好应用进程和MySQL分别占多少内存。 数据库也被当做一个本地进程一个监控,跟应用服务器上的应用进程、agent等统一对待。所以什么线程监控、死锁监控,还都没有。...很多操作只需要按一下按钮就完成,这完全可以由业务使用方自己来做。比如申请实例、升级实例、SQL审核等等。这样就把DBA从日常的操作中解放出来。...这也是DBbrain结合微信的优势,会提供给运维的便利。 那么,到了智能时代,云数据库+智能诊断系统,会抢了DBA的饭碗吗?...只是在智能时代,DBA对业务价值的贡献,因为云数据库和智能诊断工具,会凸显得更加纯粹。 搜索关注“腾讯云数据库”官方微信,回复“1106丁奇”,即可下载本文PPT。
2. buffer pool 在正式介绍 redo log 之前,还有一个 buffer pool 需要大家了解。...通过如下命令我们可以查看 change buffer 的大小以及哪些操作会涉及到 change buffer: innodb_change_buffer_max_size:这个配置表示 change...小伙伴们知道,MySQL 的增删改,如果我们没有显式的开启事务,MySQL 内部也是有一个事务存在的,当内部这个事务 commit 的时候,redo log buffer 会持久化到磁盘中。...2:每次 commit 时,将 redo log buffer 中的数据刷新到操作系统缓存中,操作系统缓存中的数据每秒刷新一次,会持久化到磁盘中。...在前面的文章中我们说过:binlog 是一种逻辑日志,他里边所记录的是一条 SQL 语句的原始逻辑,例如给某一个字段 +1,这区别于 redo log 的物理日志,物理日志记录的是在某个数据页上做了什么修改
编辑手记:前几天在知乎上出现了一个很热的帖子,话题是“MySQL DBA技术难度低为什么工资比oracle高?”,这个话题很快引起了热烈的讨论。...从回帖的情况来看,大部分人几乎都默认了MySQL DBA工资的确高这个事实,那么原因是什么,我们节选MySQL专家刘伟的回帖跟大家分享。...DBA的圈子本身就不大,MySQL DBA的缺口是行业性的缺口,自然会让收入水平水涨船高,市场经济的情况下,随着这个圈子的人越来越多(Oracle DBA转MySQL DBA,运维干MySQL DBA,...MySQL学习难度本身是很低的,实际上纯粹的操作MySQL DBA的收入,比较Oracle DBA只是因为供需关系多一点点,其实还好,并不会到一个什么样的比例,但如果加上一些限定条件,就很难找人了,供需关系急剧恶化导致找人的价格很难控制...满足这些条件的,一般都会拿到不错的议价,但这种成交造成的“高水位线错觉”,会让普通操作DBA对收入有更高的期望,导致低议价的减少,让市场成交价更高。 这种情况会持续吗?
上云之后 DBA 会原地失业吗?其实多数情况都不会,那上云后还有哪些事需要 DBA 去做的呢?这节内容就来扯一扯。...1 恢复演练 对于 MySQL 实例、单库、单表,定期进行恢复演练,现在很多云厂商的数据库服务虽然自带这些功能,但是根据以往的经验,第一次恢复多多少少还是会遇到一些问题的。...10 分库分表支持 通常情况也是能不分就不分,如果业务实在有分库分表的需求,需要 DBA 配合他们做。...11 SQL 审核 很多云厂商都有自己的 SQL 审核产品,比如阿里云的 DMS,如果公司采购了,需要 DBA 熟悉他的使用,以方便日常的审核或者答疑。...12 SQL 优化 SQL 优化也是要继续做的事情,尽管有些云厂商自带慢查询优化建议,但是也要 DBA 去验证优化建议是否可行,并且需要跟进研发后续是否优化了。
在大约2008年及之前,还少有公司有专门的DBA团队,那时候都统一在OP范畴。我记得那时候写应用,如果涉及到需要数据库, 我的发布步骤里面,还要包含数据库的安装步骤。...我记得我要在3G的可用内存里,分配好应用进程和MySQL分别占多少内存。数据库也被当做一个本地进程一个监控,跟应用服务器上的应用进程、agent等统一对待。所以什么线程监控、死锁监控,还都没有。...很多操作只需要按一下按钮就完成,这完全可以由业务使用方自己来做。比如申请实例、升级实例、SQL审核等等。这样就把DBA从日常的操作中解放出来。...这也是DBbrain结合微信的优势,会提供给运维的便利。 那么,到了智能时代,云数据库+智能诊断系统,会抢了DBA的饭碗吗?...只是在智能时代,DBA对业务价值的贡献,因为云数据库和智能诊断工具,会凸显得更加纯粹。 公众号后台回复:techo,可以得到完整版 PPT 。
本文起源于有同学留言说,想了解下MySQL DBA面试时可能涉及到的知识要点,那我们今天就来大概谈谈吧。...MySQL DBA职位最近几年特别热门,不少朋友让我帮忙推荐什么的,但也有很多公司找不到合适的DBA。...本文可以作为MySQL DBA面试官,以及候选人的双向参考 :) 面试流程:我以往做MySQL DBA面试时的流(套)程(路) 一、自我介绍 1、先自我介绍后,再让候选人花2-5分钟做下自我简介:...需要掌握这些不同概念之间的区别,例如主键索引和唯一索引的区别是什么。...为什么InnoDB表最好要有自增列做主键; 为什么需要设置双1才能保证主从数据的一致性; 有几种binlog格式*,及其区别是什么; 如何确认MySQL replication真正的复制延迟是多少; 有过哪些印象深刻的实践经验
每个中高级DBA都需要掌握一些简单脚本的编写,这样才能从繁杂重复的基础维护工作中解脱出来,才能有时间去研究更有价值的技术。...\n" 而如果是使用until do done, 只需要修改while [ "$name" !...提示:不同数据库的默认监听端口不同 Oracle数据库判断netstat -tuln |grep ":1521 "是否有结果; Mysql数据库判断netstat -tuln |grep ":3306
那么就需要有一个规则,把中文和英文字母转化为二进制,比如"debug",计算机就需要把它转化为下图这样。 debug的编码 其中d对应十六进制下的64,它可以转换为01二进制的格式。...字符和字符集的关系 mysql的字符集 想看下mysql支持哪些字符集。...这时候就需要用到collation了。 通过SHOW COLLATION WHERE Charset = 'utf8mb4';可以查看到utf8mb4下支持什么比较规则。...mysql建表时如果不知道该选什么字符集,无脑选utf8mb4就行了,你会感谢我的。...这样的一个事故,复盘会一开,会挂P几呢?
接下来需要对我么传入的 SQL 进行解析,这块跟代码的执行流程其实差不多,先做词法分析,识别出各种关键字,然后再做语法分析,语法分析就是根据 MySQL 的各种语法规则,去判断 SQL 是否满足语法规则...这张图大家大概有个印象,在后续的 MySQL 查询和优化中,很多东西就容易理解了。 接下来我们就来看看什么情况下查询会变慢。 2. 查询了不需要的记录 数据按需取用。...有时候我们会忽略多拿数据对查询性能的影响,然而优化是一个锱铢必较的事情,需要多少数据就查询多少,要尽量避免数据库查询 100 条,结果前端只展示 10 条这种情况。...直接从索引中过滤出来想要的值并返回给客户端,这种时候,过滤虽然发生在 MySQL Server 层,但是由于不需要回表,效率也还过得去。...从数据表中查询到相应的记录,然后在 MySQL Server 层进行过滤,过滤的同时可能还需要回表,此时效率就会低一些。
这里需要注意的是,我们所谓的Controller,其实更应该说是Controllers。...但是高频的轮询会大大增加API Server的负担,低频的轮询也会影响事件响应的实时性。Watch这一异步消息机制的结合,在保证了实时性的基础上也减少了API Server的负担,保证了高性能。...当其不为0时,即便没有更新事件发生,List也会每隔一段时间被调用以获得最新的资源对象状态,从而获得更高一级的可靠性。...那么简单把同一个key推入Workqueue,Controller在处理完当前的事件(把1变成2)之后再取出该key,再执行一次业务逻辑,把2变成3,听起来没什么问题。...为了避免死循环,所以我们会需要这个GenerationChangedPredicate对Status更新事件进行过滤,不让它进Workqueue。
10.0.0.7 读库 blog 10.0.0.8 ------------------------------------------- # Master 生产环境主库用户授权 (建议实际用到什么权限分配什么权限...,delete交给Master服务器;门户网站常用分布式dbproxy(读写分离,hash负载均衡,健康检查) 根据服务器拆分业务独立并分担压力:有为外部用户提供查询服务的从服务器,有DBA用来备份的从服务器...线程同步状态查看数据库同步是否完成, 用于主库宕机或者人工数据库文件从切换迁移等等; 主库宕机选择最快的从库提升为主,需要查看当然也可以利用mysql的半同步功能,选择固定的库提升为主; (7)主从配置总结...从库记录BINLOG方法 Q:Mysql中binlog日志作用时什么?...A:用来记录mysql内部增删改查等对mysql数据库有更新的内容的记录 什么时候需要记录binlog的情况?
,为什么你会需要它 本文由Yaron Parasol编写 [rqME5ohnIHrCr6iT_DJXz7h7YOBl5gymKNoOINgaGqC8yVd9E5hXlGnRHs2c2Ocxq_99olp...这就是为什么你需要一种方法来把你的应用程序粘贴在一起。...点这里 那么,orchestrator扮演什么角色呢?...这包括什么与什么相连接,什么host了什么,以及其他这样的考虑。TOSCA能够描述基础架构,以及中间件层和应用层。...但后来我们意识到,对于具有依赖性的容器,我们需要有运行时的环境属性,比如为了创建容器,我们需要导入相应容器的IP。当我们创建一个app服务器容器时,我们需要端口和数据库容器的IP。
根据叶子节点上的主键值去聚簇索引上查询需要的全部字段值。...肯定会有人问:既然一开始是利用索引的,为什么不先沿着索引叶子节点查询到最后需要的5个节点,然后再去聚簇索引中查询实际数据。这样只需要5次随机I/O,类似于下面图片的过程: 其实我也想问这个问题。...也证实了为什么第一个sql会慢:读取大量的无用数据行(300000),最后却抛弃掉。...而且这会造成一个问题:加载了很多热点不是很高的数据页到buffer pool,会造成buffer pool的污染,占用buffer pool的空间。...,地球人类社会底层运行原理 不是你需要中台,而是一名合格的架构师(附各大厂中台建设PPT) 企业IT技术架构规划方案 论数字化转型——转什么,如何转?
为什么会出现上面的结果?我们看一下select * from test where val=4 limit 300000,5;的查询过程: 查询到索引叶子节点数据。...根据叶子节点上的主键值去聚簇索引上查询需要的全部字段值。...肯定会有人问:既然一开始是利用索引的,为什么不先沿着索引叶子节点查询到最后需要的5个节点,然后再去聚簇索引中查询实际数据。这样只需要5次随机I/O,类似于下面图片的过程: 其实我也想问这个问题。...也证实了为什么第一个sql会慢:读取大量的无用数据行(300000),最后却抛弃掉。...而且这会造成一个问题:加载了很多热点不是很高的数据页到buffer pool,会造成buffer pool的污染,占用buffer pool的空间。
领取专属 10元无门槛券
手把手带您无忧上云