master-slave

show engine innodb status;
---
select * from information_schema.INNODB_TRX;
select * from information_schema.INNODB_LOCKS;
select * from information_schema.INNODB_LOCK_WAITS;

show variables like '%tables%';

http://imysql.com/

# 1) 未启用GTID模式时
-- stop slave;
-- set sql_slave_skip_counter=N;
-- start slave

# 2)启用GTID模式时
-- stop slave;
-- reset master;
-- set @@global.gtid_purged=''
-- start slave;

# 3) 无论是否启用GTID,使用pt-slave-restart工具

    #忽略所有1062错误,并再次启动SLAVE进程
    [yejr@imysql.com ]# pt-slave-resetart -S./mysql.sock —error-numbers=1062

    #检查到错误信息只要包含 test.yejr,就一概忽略,并再次启动 SLAVE 进程
    [yejr@imysql.com ]# pt-slave-resetart -S./mysql.sock —error-text=”test.yejr”
    
    
    #查看指定binlog at 的事件
    show binlog events in 'mysql-bin.000604' from 29495 limit 10;
    
#如何将两个表名对调
LOCK TABLES t1 WRITE, t2 WRITE;
ALTER TABLE t1 RENAME TO t3;
ALTER TABLE t2 RENAME TO t1;
ALTER TABLE t3 RENAME TO t2;
UNLOCK TABLES;

#MyISAM引擎的特点:
1、堆组织表;
2、不支持事务;
3、数据文件和索引文件分开存储;
4、支持全文索引;
5、主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别(主键和唯一索引有唯一属性,其他普通索引没有唯一属性。B+树叶子节点存储的都是指向行记录的row pointer);
6、有特殊计数器记录当前记录数;
7、不支持Crash recovery;
8、索引文件很容易损坏;

#InnoDB引擎的特点
1、索引组织表;
2、支持事务;
3、数据文件和索引文件存储在同一个表空间中;
4、在5.6以前,不支持全文索引;
5、主键和二级索引数据结构一样都是B+树,但叶子节点存储的键值不一样(主键的叶子节点存储整行数据,因此也称为聚集索引;而二级索引的叶子节点存储的是主键的键值)
5、支持Crash recovery;
6、相同数据量时,InnoDB表空间文件大小约为MyISAM引擎的1.5~2倍;

MySQL读取各个my.cnf配置文件的先后顺序是:

    /etc/my.cnf
    /etc/mysql/my.cnf
    /usr/local/mysql/etc/my.cnf
    ~/.my.cnf
    其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf
    
如何保证主从复制数据一致性    
    
1. 在master上修改配置
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1

2. 在slave上修改配置
master_info_repository = "TABLE"
relay_log_info_repository = "TABLE"
relay_log_recovery = 1

(上述前两个选项的作用是:确保在slave上和复制相关的元数据表也采用InnoDB引擎,受到InnoDB事务安全的保护,而后一个选项的作用是开启relay log自动修复机制,发生crash时,会自动判断哪些relay log需要重新从master上抓取回来再次应用,以此避免部分数据丢失的可能性。)
   

原文地址:https://www.cnblogs.com/moss_tan_jun/p/6118837.html