1半同步复制
判断是否支持动态插件
select @@have_dynamic_loading;
主库插件
$MYSQL_HOME/lib/plugin/semisync_master.so
mysql>install plugin rpl_semi_sync_master SONAME 'semisync_master.so'
select * from mysql.plugin
set global rpl_semi_sync_master_enabled=1;
set global rpl_semi_sync_master_timeout=3000;
从库插件
$MYSQL_HOME/lib/plugin/semisync_slave.so
mysql>install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so'
select * from mysql.plugin
set global rpl_semi_sync_slave_enabled=1;
stop slave IO_THREAD;start slave IO_THREAD;
show status like '%semi_sync%'
着重关注
rpl_semi_sync_master_status:值为ON,半同步复制目前处于打开状态
rpl_semi_sync_master_yes_tx:值为0,表示主库当前尚未有任何一个事务是通过半同步复制到从库
rpl_semi_sync_master_no_tx:表示当前有3个事务不是半同步模式下从库及时响应的
2主从复制启动选项
--log-slave-updates
--logs-bin
master-connect-retry 主库连接丢失时,重试的时间间隔;
read-only 只能接受超级用户的更新操作;
slave-skip-errors
3 主从手工同步
在主库上
flush tables with read lock;
mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000038 | 263848199 | | |
+------------------+-----------+--------------+------------------+
在从库上
mysql> select master_pos_wait('mysql-bin.000038','263848199');
+-------------------------------------------------+
| master_pos_wait('mysql-bin.000038','263848199') |
+-------------------------------------------------+
| 1 |
+-------------------------------------------------+
这个select的语句会阻塞直到从库达到指定的日志文件和偏移量后,返回0则主库和从库同步,如果返回-1则表示超时退出。
在主库上
unlock tables;
set globle sql_slave_skip_counter=n 如果来主库的更新语句不使用auto_increment(自动更新要从binlog日志取两个事件);n=1,否则n=2;
log event entry exceeded max_allowed_packet: 增大max_allowed_packet
判断是否支持动态插件
select @@have_dynamic_loading;
主库插件
$MYSQL_HOME/lib/plugin/semisync_master.so
mysql>install plugin rpl_semi_sync_master SONAME 'semisync_master.so'
select * from mysql.plugin
set global rpl_semi_sync_master_enabled=1;
set global rpl_semi_sync_master_timeout=3000;
从库插件
$MYSQL_HOME/lib/plugin/semisync_slave.so
mysql>install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so'
select * from mysql.plugin
set global rpl_semi_sync_slave_enabled=1;
stop slave IO_THREAD;start slave IO_THREAD;
show status like '%semi_sync%'
着重关注
rpl_semi_sync_master_status:值为ON,半同步复制目前处于打开状态
rpl_semi_sync_master_yes_tx:值为0,表示主库当前尚未有任何一个事务是通过半同步复制到从库
rpl_semi_sync_master_no_tx:表示当前有3个事务不是半同步模式下从库及时响应的
2主从复制启动选项
--log-slave-updates
--logs-bin
master-connect-retry 主库连接丢失时,重试的时间间隔;
read-only 只能接受超级用户的更新操作;
slave-skip-errors
3 主从手工同步
在主库上
flush tables with read lock;
mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000038 | 263848199 | | |
+------------------+-----------+--------------+------------------+
在从库上
mysql> select master_pos_wait('mysql-bin.000038','263848199');
+-------------------------------------------------+
| master_pos_wait('mysql-bin.000038','263848199') |
+-------------------------------------------------+
| 1 |
+-------------------------------------------------+
这个select的语句会阻塞直到从库达到指定的日志文件和偏移量后,返回0则主库和从库同步,如果返回-1则表示超时退出。
在主库上
unlock tables;
set globle sql_slave_skip_counter=n 如果来主库的更新语句不使用auto_increment(自动更新要从binlog日志取两个事件);n=1,否则n=2;
log event entry exceeded max_allowed_packet: 增大max_allowed_packet
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29620572/viewspace-1813509/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29620572/viewspace-1813509/