那些在11gR2中可能惹祸的新特性

有很多朋友因为11gR2那些潜在的特性可能给升级后系统稳定运行带来麻烦而无法鼓足升级到11gR2的勇气,实际Oracle在开发新版本RDBMS软件时引入的一些特性有很好的理念的,但是往往这些理念会给已稳定的应用环境带来变数,最显著的就是10g/9i升级到11gR2时的执行计划稳定性,此外adaptive cursor sharing 自适应游标、automatic serial direct path自动判断串行直接路径读、deferred segment creation、GC read mostly DRM…….等等的一系列特性已经在大量的案例中被证明是不适合于大量国产Application的。

这篇文章里想做的是给出一张列表,能够将11gR2的优化器optimizer特性、和其他的如上列的这些可能引起问题的特性通过参数的方式给出一张列表,你可以选择性的禁用这些特性,前提是你的Applicaiton就该特性经过充分的测试,如果没有时间或者环境来测试这些新特性,那么还不如禁用这些特性,禁用新特性的结果也仅仅是回到老版本(一般是10gR2 10.2.0.4)的默认表现上来。

hexo更换主题并个性化定制

hexo系统默认的主题虽然也不错,但我更喜欢yeleeyilia这两款主题

安装yelee主题

  1. 主题说明文档:http://moxfive.coding.me/yelee/

  2. 在博客根目录下执行以下命令

    # 克隆最新一次提交(git clone速度很慢,可只克隆最新一次提交)
    git clone --depth 1 https://github.com/MOxFIVE/hexo-theme-yelee.git themes/yelee
    
  3. 编辑修改根目录下的_config.yml文件

    # theme: landscape
    theme: yelee
    
  4. 更换主题后需要清理并重新生成静态页

    hexo clean && hexo g && hexo s
    
  5. 安装搜索插件

    cnpm install hexo-generator-search --save
    
  6. 参照文档修改themes\yelee目录下的_config.yml文件

hexo+github搭建个人博客

前言:我的博客之旅

我用wordpress写过一段时间博客,因租用的外国空间访问速度不理想,放弃!
我用vimwiki写过一段时间博客,因其配置、更新博客比较麻烦,且生成的html也需要存放到租用的空间上才能共享,放弃!
我在类似CSDN免费空间上也写过一段时间博客,因没有客户端工具,在线编辑功能受限,且本地不能保存备份博客,放弃!
这两年我一直用有道云笔记写博客,其本地编辑功能比较强大,有易用的分类目录和标签功能,单条博客也易于分享,但缺乏一个整体对外的窗口,文章中的代码也无法实现高亮显示,不够美观!
2017年初,偶然的机会知道了hexo,因有较强的markdown和git功底,决定开启hexo写博之旅。

hexo是什么?
hexo是一款基于Node.js的静态博客框架。 hexo官网地址:https://hexo.io

MySQL DBA从小白到大神实战-03 深入MySQL体系结构

1. thread pool的原理是什么?

线程池的原理很简单,类似于操作系统中的缓冲区的概念,它的流程如下:先启动若干数量的线程,并让这些线程都处于睡眠状态,当客户端有一个新请求时,就会唤醒线程池中的某一个睡眠线程,让它来处理客户端的这个请求,当处理完这个请求后,线程又处于睡眠状态。

MySQL线程池只在MariaDB,Oracle MySQL企业版中提供,Oracle MySQL社区版并不提供。

在传统方式下,MySQL线程调度方式有两种:每个连接一个线程(one-thread-per-connection)和所有连接一个线程(no-threads)。在实际生产中,一般用的是前者。即每当有一个客户端连接到MySQL服务器,MySQL服务器都会为该客户端创建一个单独的线程,请求结束后,销毁线程。连接数越多,则相应的线程会越多。这种方式在高并发情况下,会导致线程的频繁创建和释放。

MySQL DBA从小白到大神实战-02 MySQL标准化、自动化部署

为什么数据目录和日志目录需要分开?

这里的分开,我理解是将MySQL的数据目录和日志目录分别放到不同类型的磁盘中。
假设生产环境中服务器上有两种类型的磁盘,分别是SSD和SAS,SSD比SAS的响应时间要快(SSD响应时间约0.1毫秒,SAS的响应时间约10毫秒),为了更好的利用磁盘,一般会把活跃的数据放到SSD上,冷数据放到SAS磁盘上。
数据目录下的数据一般是随机读写的热数据,放到SSD盘中会有较高的响应速度;
日志目录下的日志是顺序读写的冷数据,放到SAS盘中满足写日志高吞吐量的需求。

MySQL DBA从小白到大神实战-01 MySQL 高级DBA职业规划

什么是MVCC?有什么作用?

MVCC是Multiversion Concurrency Control的缩写,中文的意思是多版本并发控制。
目前多数DB都采用了这一技术,比如Oracle,PostgreSQL等,但各自的实现机制不尽相同,MVCC没有一个统一的实现标准。
MVCC能有效降低锁的开销,虽然不同数据库实现MVCC的机制有所有同,但大都实现了非阻塞的读操作,写操作也只锁定必要的行。