MySQL复制之防崩溃从节点
MySQL5.6之前的版本中,运行时的数据复制信息会被保存在从节点数据目录的两个文件中,分别是master.info和relay-log.info。在MySQL5.6之后默认依然存放在数据目录,但是可以通过设置存放在数据库的表中。master-info-repository:当这个变量值设置为table时候,主节点info日志信息存放在mysql.slave_master_in...
Linux下parted对磁盘进行分区
今天为了挂载文件系统,对磁盘进行分区,磁盘大小3.6TB。 使用fdisk对磁盘分区完成之后,查看如下:Disk /dev/sdb: 3598.9 GB, 3598914158592 bytes255 heads, 63 sectors/track, 437543 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/phy...
mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8'
在查看binlog的时候出现报错如下:[root@master data]# mysqlbinlog -uroot -pmysql mysql-bin.000008mysqlbinlog: [ERROR] unknown variable 'default-character-set=utf8' 原因是mysqlbinlog这个工具无法识别binlog中的配置中的default-character-set=utf8这个指令。...
MySQL5.7主从复制-半同步复制搭建
两台服务器,系统是Redhat6.5,MySQL版本是5.7.18。1、打开主库和从库的MySQL服务,然后安装插件,半同步复制插件在目录/usr/local/mysql/lib/plugin下在主库安装semisync_master.so插件:点击(此处)折叠或打开mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';...
MySQL优化之索引管理优化
1、整合DDL语句 在将索引添加到MySQL表的过程中,一个很重要的问题就是DDL语句时阻塞性,把多条alter语句整合成一条SQL语句时一种简单的优化改进。例如:alter table test add index(username);alter table test drop index name,add index name(last_name,first_name);alter table test add...
MySQL优化之系统变量优化
1、全局内存缓冲区1)key_buffer_size 该变量是只存储MyISAM索引信息的全局内存缓冲区。在对应的.MYI文件中的索引数据从磁盘上被读取出来然后存入这个缓冲区。想要调整key_buffer_size的大小,只需要简单统计所有MyISAM表中总索引的大小,然后随着数据随时间增长而调整。当这个索引码缓冲区中没有足够...
正确使用索引
MySQL之所以能够高效的检索数据,可以说全赖索引之功。在索引使用过程中,要注意一下几点。1、MySQL在使用索引时候,采用的是最左匹配原则。如果是单列索引,则很容易理解,若是多列索引,例如idx_a_b_c(a,b,c),则可以发挥索引功能组合为(a),(a,b),(a,b,c),并且索引是一次便利没有回溯的,所以如...
Semi_Sync Replication方式的复制
基于传统的复制,可能存在从库复制延迟的问题,那么master宕机后,如果此时master不能恢复,只能用slave代替master,slave处于落后的状态,就会导致数据丢失。可以通过半同步复制解决部分问题。 参数rpl_semi_sync_master_wait_point在MySQL的半同步复制中,控制maste...
MySQL主从复制之realy_log_recovery
该参数是默认打开的,在数据库启动后立即启动自动relay log恢复。在恢复过程中,创建一个新的relay log,并将IO线程初始化到SQL线程的位置。 MySQL运行过程中,如果出现宕机的情况,从库启动后必须能够恢复到已经执行事务的位置,该信息传统上是存在文件中,那么久有可...
MySQL主从复制之relay_log_info_repository与sync_relay_log_info
realy_log_info_repository用来决定slave同步的位置信息记录在哪里,同样有两个参数。如果relay_log_info_repository=file,就会创建一个realy-log.info,如果relay_log_info_repository=table,就会创建mysql.slave_relay_info表来记录同步的位置信息。 sync_relay_log_info参数用...
MySQL主从之master_info_repository与sync_master_info
master_info_repository有两个值,分别是file和table,该参数决定了slave记录master的状态,如果参数是file,就会创建master.info文件,如果参数值是table,就在mysql中创建slave_master_info的表。 sync_master_info参数决定slave刷新master的状态的方式。并且master_info_repository的参数不同,刷新方式也...
主从复制之binlog_format
binlog_format主要有三种格式:statement、row、mixedbinlog_format=statement master写入执行的SQL语句到binlog中,从库读取这些SQL语句并执行,这种基于SQL语句的复制方式是MySQL最早支持的复制方式。binlog_format=mixed 可以将master的binlog_format配置成同时使用基于statement和row两者的...
mysql sync_binlog和 innodb_flush_log_at_trx_commit
今天聊一聊关于mysql innodb存储引擎中一个事务的完整流程: 首先说下innodb的事务日志概念: ib_logfile文件就是innodb的事务日志,可以理解是INNODB的REDO日志,当数据库异常关闭的时候,innodb存储引擎下的mysql借助事务日志来完成实例恢复,即前滚和回滚来保证数据库一致性;区别于binlog日志又叫二进制...
MySQL分库分表
分库分表的种类: 这里说的分库分表是把数据库中的数据物理地拆分到多个实例或者多台服务器上,而不是MySQL原生的Partitioining。 MySQL官方的Partitioning可以将一张表的数据库分别存储为多个文件,如果在写SQL的时候遵从了分区规则,就能把原本需要遍历全表的工作转化为只需要遍历表里一个或者...
MySQL InnoDB之锁机制
InnoDB锁模式InnoDB实现了两种类型的行锁。共享锁(S):允许一个事务去读一行,阻止其他事务获得相同的数据集的排他锁。排他锁(X):允许获得排他锁的事务更新数据,但是组织其他事务获得相同数据集的共享锁和排他锁。可以这么理解:共享锁就是我读的时候,你可以读,但是不能写。排他锁就是我写的时候,你不能读也...
参数SQL_SLAVE_SKIP_COUNTER的奥秘
每次数据库复制冲突之后,经常使用的一个命令如下:SET SQL_SLAVE_SKIP_COUNTER = 1; 跳过出错的这个event就可以解决,其实不然。 在binlog中,所有的binlog是按照组来分的,每一个组是其主库生成的一个事务binlog,都以begin开始并以commit结束。根据不同类型的时间,如下:Beg...
【MySql】sql_slave_skip_counter 参数的用法解析
前一篇文章介绍了当mysql的复制出现slave sql 进程终止时的解决办法,其中之一使用了sql_slave_skip_counter 来使sql 线程跳过遇到错误的事件记录!本文浅析一下sql_slave_skip_counter的具体用法...
MySQL5.7新特性之sys schema视图应用
sys schema视图摘要 sys schema视图中包含了很多以各种方式总结的Performance Schema表的视图,这些视图大多数都是成对出现,使得每组视图中的一个成员具有与另一个成员相同的名称,加上一个X$前缀。例如host_summary_by_file_io视图汇总按照主机分组的文件I/O延迟。没有X$前缀的视图提供了更加友好且易...
MySQL Innodb日志机制深入分析
Log & Checkpoint Innodb的事务日志是指Redo log,简称Log,保存在日志文件ib_logfile*里面。Innodb还有另外一个日志Undo log,但Undo log是存放在共享表空间里面的(ibdata*文件)。 由于Log和Checkpoint紧密相关,因此将这两部分合在一起分析。 名词解释:LSN,日志序...
InnoDB数据字典
在InnoDB中,系统表实际上是看不到的,不像Oracle那样可以方便地通过一个查询语句就能得到其中的内容。因为MySQL是一个插件式的数据库管理系统。它的结构分为两层,分别是Server层和存储引擎层。最早的存储引擎是MyISAM,它是没有数据字典的,关于表结构,它拥有的只有.frm文件,所以这导致了InnoDB也必须要...