实战-Mysql主从复制
前言:
Mysql内建的复制功能是构建大型高性能应用程序的基础。由于目前mysql的高可用性架构MMM和MHA均建立在复制的基础之上,本文就mysql主从复制进行实战描述,希望对读者提供帮助。之前
服务器规划:
主库:192.168.2.153
备库:192.168.2.154
mysql版本使用5.6.26脚本编译安装,并指定数据目录。
主从复制:
1.创建复制账号:
主库:
mysql> grant replication slave on *.* to repl@'192.168.2.%' identified by 'slave';
备库:
mysql> grant replication slave on *.* to repl@'192.168.2.%' identified by 'slave';
2.配置主库和备库:
修改my.cnf:
主库:
log_bin = mysql-bin
server_id= 153
备库:
log_bin = mysql-bin
server_id = 154
relay_log = /mvtech/mysql/log/mysql-relay-bin
log_slave_updates = 1
read_only = 1(不知道应用场合 暂时不添加)
3.启动复制
备库:
CHANGE MASTER TO MASTER_HOST='192.168.2.153',
MASTER_USER='repl',
MASTER_PASSWORD='slave',
MASTER_LOG_FILE='mysql-bin.000006',
MASTER_LOG_POS=0;
查看状态:show slave status\G
Slave_IO_Running: No
Slave_SQL_Running: No
启动备库
start slave
查看备库状态:show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
查看备库线程:
show processlist\G
4.附主库和备库的my.cnf
主库:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
server-id = 153
skip-name-resolve
#skip-networking
back_log = 500
max_connections = 1000
max_connect_errors = 600
open_files_limit = 65535
table_open_cache = 384
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 8M
thread_cache_size = 8
query_cache_size = 8M
query_cache_limit = 2M
key_buffer_size = 512M
ft_min_word_len = 4
transaction_isolation = REPEATABLE-READ
log_bin = mysql-bin
binlog_format = mixed
expire_logs_days = 30
log_error = /mvtech/mysql/log/mysql-error.log
slow_query_log = 1
long_query_time = 6
performance_schema = 0
explicit_defaults_for_timestamp
#lower_case_table_names = 1
skip-external-locking
default-storage-engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 8
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 28800
wait_timeout = 28800
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
备库:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
server-id = 154
skip-name-resolve
#skip-networking
back_log = 500
max_connections = 1000
max_connect_errors = 600
open_files_limit = 65535
table_open_cache = 384
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 8M
thread_cache_size = 8
query_cache_size = 8M
query_cache_limit = 2M
key_buffer_size = 512M
ft_min_word_len = 4
transaction_isolation = REPEATABLE-READ
log_bin = mysql-bin
#slave add
relay_log = /mvtech/mysql/log/mysql-relay-bin
read_only = 1
log_slave_updates = 1
skip_slave_start
#slave add
binlog_format = mixed
expire_logs_days = 30
log_error = /mvtech/mysql/log/mysql-error.log
slow_query_log = 1
long_query_time = 6
performance_schema = 0
explicit_defaults_for_timestamp
#lower_case_table_names = 1
skip-external-locking
default-storage-engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 8
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 8M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
interactive_timeout = 28800
wait_timeout = 28800
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M
5.测试主从复制
在主库中创建新库,备库也有新库产生,往主库中导入大量数据时可通过show processlist \G 查看执行操作,
6.mysql手工切换主从
#主库: show slave hosts; #备库: #查看状态 mysql> show slave status\G #关闭IO线程 mysql> stop slave IO_THREAD; mysql> stop slave; mysql> reset master; mysql> show slave status\G mysql> reset slave all; #此时丛库已恢复至单机状态。 mysql> show binary logs; #主库操作: CHANGE MASTER TO MASTER_HOST='192.168.2.154', MASTER_USER='repl', MASTER_PASSWORD='slave', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=120;
手动切换主从复制完毕。
注:mysql user库中有空的用户建议删掉,因为有时切换时会出现不使用密码即可登录的现象。将空用户删掉后重启mysql即可
实战-Mysql主从复制的更多相关文章
- 九、linux-msyql下的mysql主从复制深度实战
1.上节基本诉说了mysql主从同步,这里想说明的是,其一从库在请求主库进行同步的时候,是主库的主线程进行用户名.密码的验证,在验证通过后,将请求转交给I/O线程负责同步:其二从库sql线程在读取中继 ...
- Docker实战之MySQL主从复制
前言 曾几何时,看着高大上的架构和各位前辈高超的炫技,有没有怦然心动,也想一窥究竟?每当面试的时候,拿着单应用的架构,吹着分库分表的牛X,有没有心里慌的一批? 其实很多时候,我们所缺少的只是对高大上的 ...
- mySQL主从复制实战
随着访问量的不断增加,单台MySQL数据库服务器压力不断增加,需要对MYSQL进行优化和架构改造,MYQSL优化如果不能明显改善压力情况,可以使用高可用.主从复制.读写分离来.拆分库.拆分表来进行优化 ...
- 八、linux-mysql的mysql主从复制原理和实战
1.mysql主从复制介绍 mysql支持单向.双向.链式级联.实时.异步复制,在复制过程中,一台服务器充当主服务器(Master),而一个或多个其它服务器充当从服务器(Slave). 复制:单向同步 ...
- 14、mysql主从复制实战
14. 1.服务器准备: 一台服务器,多实例,客户端编码是utf8,服务端编码是utf8; [root@backup 3308]#netstat -tunlp | grep 330 tcp 0 0 0 ...
- MySQL 主从复制一主两从环境配置实战
MySQL 初始化 MySQL 主从复制是指数据可以从一个 MySQL 数据库服务器主节点复制到一个或多个从节点.MySQL 默认采用异步复制方式;从节点可以复制主数据库中的所有数据库或者特定的数据库 ...
- 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构
一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...
- MySQL入门篇(四)之MySQL主从复制
一.MySQL主从复制原理 随机站点访问量的鞥集啊,单台的MySQL服务器压力也不断地增加,此时需要对MySQL进行优化,如果在MySQL优化无明显改善时期,可以使用高可用.主从复制.读写分离.分库分 ...
- mysql 主从复制以及binlog 测试
###mysql查看binlog日志内容 https://blog.csdn.net/nuli888/article/details/52106910 mysql的binlog日志位置可通过show ...
随机推荐
- 最长回文子串---Manacher算法
百度:Manacher算法 代码 #include <iostream> #include <string> #include <cstring> #include ...
- Akka(35): Http:Server side streaming
在前面几篇讨论里我们都提到过:Akka-http是一项系统集成工具库.它是以数据交换的形式进行系统集成的.所以,Akka-http的核心功能应该是数据交换的实现了:应该能通过某种公开的数据格式和传输标 ...
- Problem A: 求平均年龄
Description 定义一个Persons类,用于保存若干个人的姓名(string类型)和年龄(int类型),定义其方法 void addAPerson(string,int) 用于添加1个人的信 ...
- SpringAop源码情操陶冶-JdkDynamicAopProxy
承接前文SpringAop源码情操陶冶-AspectJAwareAdvisorAutoProxyCreator,本文在前文的基础上稍微简单的分析默认情况下的AOP代理,即JDK静态代理 JdkDyna ...
- ASP.NET Core 应用程序Startup类介绍
Startup类配置服务和应用程序的请求管道. Startup 类 ASP.NET Core应用程序需要一个启动类,按照惯例命名为Startup.在主程序的Web Host生成器(WebHostBui ...
- C#实现中国身份证验证问题
C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 今天写的 C#中国身份证验证,包括省份验证和校验码验证,符合GB11643-1999标准... 理论部分: 1 ...
- JS--我发现,原来你是这样的JS:面向对象编程OOP[2]--(创建你的那个对象吧)
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 ...
- js的call() ,apply() 两种方法的区别和用法,最白话文的解释,让枯燥滚粗!
百度了一圈calll()函数和apply()函数,感觉还是糊里糊涂 正好我前几天刚又重新翻了一遍 那本 600多页 的圣经书,我习惯时不时的去打下基础,只是为了用来装逼,给人讲解....(我是有多蛋疼 ...
- 自定义view-滑动开关
介绍 前段时间,我看到了一篇关于可滑动开关Switch组件的文章,效果图如下: 思路也挺简单的:这个控件主要由田径场式背景和滑块组成.他将田径场式背景分为3部分,最左边的半圆,中间的两条直线部分和最右 ...
- [收藏] Java源码阅读的真实体会
收藏自http://www.iteye.com/topic/1113732 刚才在论坛不经意间,看到有关源码阅读的帖子.回想自己前几年,阅读源码那种兴奋和成就感(1),不禁又有一种激动. 源码阅读,我 ...