前段时间,好友王胖子问了熊熊一个问题,他们的Oracle数据库,有个主要的表空间设置的自动增加,每次增加100M,却没法知足业务需求,问了一下Oracle方面,说是自动增加的步长过小了,因而胖子在数据库里查询了一下,有了如下的问题面试
胖子:“熊,在么,问个问题?”
熊熊:“? 啥问题”
胖子:“看看,我这个数据文件设置的自动增加是100M,这个步长的单位是字节么?”
熊熊:“应该不是具体的数量,我真一时想不起来单位是什么了”
胖子:“我查了一下,我这个是12800,但是除以1024的话怎么也不是100啊”
熊熊:“让我想一想,谁没事关注他啊,咱们平时都是若是低于20%的可用空间,就自动增长数据文件了,那个自动增加只是给本身一个心理安慰罢了”
胖子:“。。。”
这段对话之后,熊熊以为很没面子,确实,历来没想过那么深,对于这种表空间的容量激增状况,大多数是采用再加一个数据文件,这样也能下降I/O的负载,并且,频繁的数据文件自动增加,若是步长不足,致使不能立刻知足增加需求,大量的DDL请求会致使死锁,严重的话会拖垮数据库,所以基本上熊熊对表空间的增加都采用增长数据文件的方法,固然,存在即合理,既然有自动增加这个选项,确定是有其意义的,那么究竟是怎么回事呢,竟然没深刻研究过,丢人啊~
因而赶忙查官方文档,终于找到了答案,以下图所示
熊熊给每一个表空间都设置了自动增加,分别是每次5M到10M不等,跟胖子说,我用的是10M自增加,因此每次是1280,你丫用100M,因此是12800,这样的话确定没有说服力,从官方文档显示,这个INCREMENT_BY表明的是所需的块数,那么一个块默认是8K,这样计算就有答案了。
1280*8192/1024/1024=10M
那么胖子那边的自增加就是12800*8192/1024/1024=100M,步长为100M,这样就合理了,让胖子用alter命令从新改了步长大小,而且先再手工增长一个数据文件缓解燃眉之急。
经过这件事情,虽然不算啥大事,可是感受,学技术应该学本质,而不仅是知足于会作事,熊熊一直说技术不是重点,可是从未否定过技术不重要,这就像好比Oracle,你的RAC、DG、GC、GG、TT等安装配置弄的很熟练了,可是不了解真正的原理,不了解事务本质,出了问题,照样无法解决,而后最后的办法就是大不了重装一下。
这个事让熊熊想起了刚学计算机的时候,基本上Windows系统出点问题,就会重作系统,以致于老妈老是说,熊熊的系统不多用超过一个月,基本上总是看熊熊在装系统~
就比如是去面试,面试官问咱们,备份策略如何考虑啊?一般你们应该是按照本身很熟悉的正向思惟去考虑问题,可是熊熊以为不仅如此,应该透过问题本质,就是面试官问这个问题的实际含义,备份恢复是数据的重中之重,不会随便问问技术细节,而是要问到本质,熊熊感受,应该考虑到对方的数据当量是多少? 如何考虑备份状况,要保留多长时间,出了问题如何恢复,对业务的影响,数据是否须要审计,有没有带库,存储是否存在单点?有没有作容灾考虑,备份采用的是内置的脚本策略(好比RMAN)仍是第三方工具(好比NBU、TSM),恢复的时间,操做的复杂性,模拟演练等,总之,我的认为考虑的越全面,既是对本身的面试负责,也同时让对方以为你够专业~
经过这件小事让熊熊感受路还很长,光可以知其然还不够,更要知其因此然,这样咱们才能在工做中出现问题的时候作到不慌乱,井井有理~
一家之言,仅供参考~