mysql之 mysql 5.6不停机主从搭建(一主一从基于日志点复制)
环境说明:
版本 version 5.6.25-log
主库ip: 10.219.24.25
从库ip:10.219.24.22
os 版本: centos 6.7
已安装热备软件:xtrabackup
防火墙已关
补充:
主从复制原理: http://blog.csdn.net/zhang123456456/article/details/72972701
mysql 5.6安装 :http://blog.csdn.net/zhang123456456/article/details/53608554
xtrabackup 安装: http://blog.csdn.net/zhang123456456/article/details/72836184
一主一从搭建流程:
1、 主库参数调整
-- 停止主库mysql
[root@mysql02 ~]# service mysql stop
[root@mysql02 ~]# netstat -nltp|grep mysql|grep 3606
-- 调整 my.cnf 参数
[root@mysql02 ~]# cat /etc/my.cnf
[client]
password = oracle
port = 3306
socket = /data/mysql/mysql.sock
[mysqld]
server-id=25
port = 3306
socket = /data/mysql/mysql.sock
character_set_server = utf8
character_set_client = utf8
collation-server=utf8_general_ci
lower_case_table_names = 1
max_connections = 1000
datadir = /data/mysql
log_bin = /data/mysql/binarylog/binlog
log_bin_index = /data/mysql/binarylog/binlog
binlog_format = mixed
innodb_data_file_path = ibdata1:12M:autoextend
[mysql]
default-character-set = utf8
说明:主库必须配置的参数
server-id (主从的server-id必须不同)、log_bin、binlog_format
-- 启动主库
[root@mysql02 ~]# mysqld_safe --defaults-file=/etc/my.cnf &
2、 从库参数调整
-- 停止从库mysql
[root@mysql01 ~]# service mysql stop
[root@mysql01 ~]# netstat -nltp|grep mysql|grep 3606
-- 调整 my.cnf 参数
[root@mysql01 ~]# cat /etc/my.cnf
[client]
password = oracle
port = 3306
socket = /data/mysql/mysql.sock
[mysqld]
server-id=22
port = 3306
socket = /data/mysql/mysql.sock
character_set_server = utf8
character_set_client = utf8
collation-server=utf8_general_ci
lower_case_table_names = 1
max_connections = 1000
datadir = /data/mysql
log_bin = /data/mysql/binarylog/binlog
log_bin_index = /data/mysql/binarylog/binlog
relay-log = /data/mysql/relaylog/relay
relay-log-index = /data/mysql/relaylog/relay
relay_log_purge = on
read-only = 1
[mysql]
default-character-set = utf8
说明:从库必须配置的参数
server-id、log_bin、relay-log、read-only
3、 主库备份
-- 主库备份目录
[root@mysql02 full]# pwd
/xtrabackup/full
-- 主库 innobackupex 备份
[root@mysql02 ~]# innobackupex --user=root --password=oracle --port=3606 /xtrabackup/full/
170610 17:50:23 Backup created in directory '/xtrabackup/full/2017-06-10_17-50-19/'
MySQL binlog position: filename 'binlog.000010', position '120'
....
170610 17:50:23 completed OK!
-- 查看备份 binlog编号 与 截止 position
[root@mysql02 2017-06-10_17-50-19]# cat xtrabackup_binlog_info
binlog.000010 120
4、 从库创建与主库相同的备份目录
[root@mysql01 ~]# mkdir -p /xtrabackup/full
[root@mysql01 ~]# chown -R mysql:mysql /xtrabackup/full/
5、 主库将备份 scp 到从库
[root@mysql02 full]# pwd
/xtrabackup/full
[root@mysql02 full]# scp -r 2017-06-10_17-50-19 10.219.24.22:/xtrabackup/full
6、 从库查看scp过来的备份
[root@mysql01 ~]# cd /xtrabackup/full/2017-06-10_17-50-19/
[root@mysql01 2017-06-10_17-50-19]# ll
total 12320
-rw-r-----. 1 root root 419 Jun 10 18:01 backup-my.cnf
-rw-r-----. 1 root root 12582912 Jun 10 18:01 ibdata1
drwxr-x---. 2 root root 4096 Jun 10 18:01 mysql
drwxr-x---. 2 root root 4096 Jun 10 18:01 performance_schema
drwxr-x---. 2 root root 4096 Jun 10 18:01 test
-rw-r-----. 1 root root 18 Jun 10 18:01 xtrabackup_binlog_info
-rw-r-----. 1 root root 113 Jun 10 18:01 xtrabackup_checkpoints
-rw-r-----. 1 root root 482 Jun 10 18:01 xtrabackup_info
-rw-r-----. 1 root root 2560 Jun 10 18:01 xtrabackup_logfile
7、 主库创建同步用户
mysql> GRANT replication slave ON *.* TO 'slave25'@'%' IDENTIFIED BY 'oracle';
Query OK, 0 rows affected (0.05 sec)
8、 从库恢复主库数据
-- 从库将原有datadir文件夹重命名到新位置,并创建原文件夹
[root@mysql01 ~]# mv /data/mysql /data/mysqlbak
[root@mysql01 ~]# mkdir -p /data/mysql
-- innobackupex apply-log
[root@mysql01 ~]# innobackupex --apply-log --user=oracle \
--password=oracle --port=3606 /xtrabackup/full/2017-06-10_17-50-19/
-- innobackupex copy 恢复的文件到原来的数据位置
[root@mysql01 mysql]# innobackupex --defaults-file=/etc/my.cnf --user=root \
--copy-back /xtrabackup/full/2017-06-10_17-50-19/
170610 18:25:11 completed OK!
-- 创建binlog目录与 relaylog 目录并赋权
[root@mysql01 ~]# mkdir -p /data/mysql/binarylog
[root@mysql01 ~]# mkdir -p /data/mysql/relaylog/
[root@mysql01 mysql]# chown -R mysql:mysql /data/mysql
9、 从库配置与检测
-- 从库启动
[root@mysql01 mysql]# mysqld_safe --defaults-file=/etc/my.cnf &
-- 从库指定与主库同步的基本信息
mysql>
change master to
master_host='10.219.24.25',
master_port=3306,
master_user='slave25',
master_password='oracle',
master_log_file='binlog.000010',
master_log_pos=120;
Query OK, 0 rows affected, 2 warnings (0.04 sec)
参数解释:
MASTER_HOST : 设置要连接的主服务器的ip地址
MASTER_USER : 设置要连接的主服务器的用户名
MASTER_PASSWORD : 设置要连接的主服务器的密码
MASTER_LOG_FILE : 设置要连接的主服务器的bin日志的日志名称
MASTER_LOG_POS : 设置要连接的主服务器的bin日志的记录位置
-- 启动slave 状态(开始监听msater的变化)
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
-- 查看slave的状态.
mysql> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.219.24.25 #主库 IP
Master_User: slave25 # 主库复制的用户
Master_Port: 3306 # 主库 mysqld
Connect_Retry: 60
Master_Log_File: binlog.000010 #io_thread 读取主库 master_log_file
Read_Master_Log_Pos: 717 # io_thread 读取主库 master_log_pos
Relay_Log_File: relay.000002
Relay_Log_Pos: 877
Relay_Master_Log_File: binlog.000010 #sql_thread 执行主库的 master_log_file
Slave_IO_Running: Yes # 关键的,io_thread 是否 running
Slave_SQL_Running: Yes # 关键的,sql_thread 是否 running
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 717 #sql_thread 执行主库的 master_log_pos
Relay_Log_Space: 1040
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0 # 从库 的延迟
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 25
Master_UUID: 29d68531-4cf9-11e7-8e1f-000c297c4100
Master_Info_File: /data/mysql/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
ERROR:
No query specified
10、 主从同步检查
-- 主库
mysql> create database repl;
Query OK, 1 row affected (0.00 sec)
mysql> use repl
Database changed
mysql> create table repl (id int);
Query OK, 0 rows affected (0.02 sec)
mysql> insert into repl values(1);
Query OK, 1 row affected (0.00 sec)
-- 从库
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| binarylog |
| mysql |
| performance_schema |
| relaylog |
| repl |
| test |
+--------------------+
7 rows in set (0.00 sec)
mysql> use repl
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from repl;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.00 sec) >同步成功!
mysql之 mysql 5.6不停机主从搭建(一主一从基于日志点复制)的更多相关文章
- mysql之 mysql 5.6不停机双主一从搭建(活跃双主一从基于日志点复制)
环境说明:版本 version 5.6.25-log 主1库ip: 10.219.24.25主2库ip: 10.219.24.22从1库ip:10.219.24.26os 版本: centos 6.7 ...
- mysql之 mysql 5.6不停机主从搭建(一主一从)
环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...
- mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)
环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...
- 5-5配置Mysql复制 基于日志点的复制
配置MySQL复制 基于日志点的复制配置步骤 设置简单密码(可以选择不需要) set GLOBAL validate_password_length=6; set global validate_pa ...
- MYSQL 基于GTID的复制
1.概述 从MYSQL5.6 开始,mysql开始支持GTID复制. 基于日志点复制的缺点: 从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致. 基于GTID复制: ...
- mysql 主从搭建步骤
mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...
- MySQL 5.7的安装及主从复制(主从同步)
1.master上开启binlog日志,配置如下 一般mysql配置文件在目录/etc下,叫my.cnf (如果找不到的话也有可能在这些目录下:/etc/my.cnf,/etc/mysql/my.cn ...
- 【MySQL】MySQL主从库配置和主库宕机解决方案
1.转载:https://blog.csdn.net/zfl589778/article/details/51441719/ 2.效果:亲测有效,数据写入成功. 3.主机宕机后,如果不是长时间宕机,且 ...
- mysql主从搭建之诡异事件
今天在搭建主从后出现了主库system账号丢失INSERT权限的情况,记录如下 主库: system账号权限同root权限,并且mysql库已经删除 从库: mysql库存在,无system账号 主从 ...
随机推荐
- g高分屏DataGrid里面checkbox不显示的解决办法
- PHP辅攻_[学习资料收集]PHP连接SQLServer2005方法
PHP连接SQLServer2005 1.修改php.ini将extension=php_mssql.dll的注释删除保存. 修改php.in将mssql.secure_connection = Of ...
- bash脚本之读取数据
题目: 一个tab间隔的文件,读取时一行为一个循环,依次读取每行的参数. 比如第一行为:a b c ,输出为a+b+c #/bin/bash while read id do a=($id) b=${ ...
- 20145239杜文超《网络对抗》- Web安全基础实践
20145239杜文超<网络对抗>- Web安全基础实践 基础问题回答 (1)SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查 ...
- 20165101刘天野 2017-2018-2 《Java程序设计》第3周学习总结
20165101刘天野 2017-2018-2 <Java程序设计>第3周学习总结 编程语言的几个发展阶段 类 构造方法与对象的创建 类与程序的基本结构 参数传值 对象的组合 实例成员与类 ...
- nodejs往文件写入内容代码
const fs = require("fs"); // fs.wirteFile有三个参数 // 1,第一个参数是要写入的文件路径 // 2,第二个参数是要写入得内容 // 3, ...
- C# 利用TTS实现文本转语音
TSS(Text To Speech),语音朗读文本的技术,在Windows下台下,微软给我们提供了一套API接口(Speech API).金山词霸的朗读功能就是用的这个接口. WindowsXP自带 ...
- java Web 文件上传
注意:请求实体过大的问题,请修改Nginx服务器的大小(百度参考413 Request Entity Too Large 的解决方法)jsp:<input type="file&quo ...
- Spring Cloud Stream消息总线
Springcloud 里面对于MQ的整合一个是前一篇的消息总线一个是本文介绍的消息驱动 大体要学习这么几个知识点: 课题:SpringCloud消息驱动Stream1.什么是SpringCloud消 ...
- asp.net web api history and how does it work?
https://blogs.msdn.microsoft.com/zxue/2012/11/07/what-is-asp-net-web-api-and-how-does-it-work/ https ...