摘要:
昨天,有个朋友对公司内部使用的一个MySQL实例开启binlog,但是在启动的过程中失败了(他也没提,为何会失败),在启动失败后,他删除了ibdata1和ib_logfile,后来,能正常启动了,但所有的表通过show tables能看到,但是select的过程中却报“Table doesn't e 阅读全文
摘要:
上文分析的二进制日志实际上是基于STATEMENT格式的,下面我们来看看基于ROW格式的二进制日志,毕竟,两者对应的binlog事件类型也不一样,同时,很多童鞋反映基于ROW格式的二进制日志无法查到原生的DML语句,关于这个问题,其实官方也给出了解决方案,下面,将一一揭晓。 首先,来几条测试数据 首 阅读全文
摘要:
MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型。 首先,看看源码中定义的事件类型 源码位置:mysql-5.7.14/libbinlogevents 阅读全文
摘要:
查看MySQL二进制文件中的内容有两种方式 1. mysqlbinlog 2. SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count] 下面来测试一下,在mysql中执行如下操作 对应二进制日志中的内容如下 阅读全文
摘要:
MySQL的升级相对来说还是比较简单的。 它支持两种方式的升级: 原地升级(In-place Upgrade) 关闭数据库,替换旧的二进制文件,重启数据库,执行mysql_upgrade 逻辑升级(Logical Upgrade) 用mysqldump导出数据,安装新的数据库版本,将数据导入到新的数 阅读全文
摘要:
MySQL的复制是基于binlog来实现的。 流程如下 涉及到三个线程,主库的DUMP线程,从库的IO线程和SQL线程。 1. 主库将所有操作都记录到binlog中。当复制开启时,主库的DUMP线程根据从库IO线程的请求将binlog中的内容发送到从库。 2. 从库的IO线程接受到主库DUMP线程发 阅读全文
摘要:
今天碰到一个很奇怪的问题,关于exists的, 第一个语句如下: 产生的结果是:89584 第二个语句如下: 产生的结果是:432382 确实相当奇怪,对于exist子句来说,其判断的是子查询的值是否存在,也就是说,列名,和对列名求最大值没什么区别啊。 包括MySQL官方文档中也提到 大意就是MyS 阅读全文
摘要:
TokuDB是Tokutek公司开发的基于ft-index(Fractal Tree Index)键值对的存储引擎。 它使用索引加快查询速度,具有高扩展性,并支持hot scheme modification,具有以下特点: 1. 插入性能快20~80倍; 2. 压缩数据减少存储空间; 3. 数据量 阅读全文
摘要:
RESET SLAVE的语法如下: 其中,channel_option主要是针对5.7.6引入的多源复制。 RESET SLAVE 官方的解释如下 其实,它是直接删除master.info和relay-log.info文件,并删除所有的relay log,然后重新生成一个新的relay log,即使 阅读全文
摘要:
从MySQL5.5开始,MySQL以插件的形式支持半同步复制。如何理解半同步呢?首先我们来看看异步,全同步的概念 异步复制(Asynchronous replication) MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样 阅读全文
摘要:
MySQL线程池只在Percona,MariaDB,Oracle MySQL企业版中提供。Oracle MySQL社区版并不提供。 在传统方式下,MySQL线程调度方式有两种:每个连接一个线程(one-thread-per-connection)和所有连接一个线程(no-threads)。在实际生产 阅读全文
摘要:
在初始化MySQL的过程中经常会碰到各种问题,如 出现这些问题的原因无非是两种, 1> 没有传递合适的参数。 譬如: [root@localhost ~]# /usr/test/mariadb-10.1.16-linux-x86_64/scripts/mysql_install_db --datad 阅读全文
摘要:
装饰器主要是用来包装函数,对于一些常用的功能,譬如:日志打印,函数计时,身份认证。我们可以使用装饰器来实现,这样可以降低整个程序的复杂度和减少程序的代码量。 它实际上就是函数,不同的是,它把一个函数当做参数,然后返回一个替代版函数。 下面看一个简单的示例: add_number就是一个装饰器函数,它 阅读全文
摘要:
1. 如何从备份节点读取数据 默认是不允许的,会报如下错误: testReplSet:SECONDARY> show dbs 2016-07-19T10:25:03.196+0800 E QUERY [thread1] Error: listDatabases failed:{ "ok" : 0, 阅读全文
摘要:
一、查看官方提供的下载源 https://docs.puppet.com/guides/puppetlabs_package_repositories.html 二、 选择对应系统的下载源 因为本机是CentOS 7.1,故选择YUM源 https://yum.puppetlabs.com/ 三、 阅读全文