zhy2_rehat6_mysql02 - 5.7主从搭建.txt
1.0------------锁库:
mysql>FLUSH TABLES WITH READ LOCK;
这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是用在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。
解锁的语句也是
mysql> unlock tables;
mysql> show databases;
mysqldump -uroot -p123456 --set-gtid-purged=off --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > /data/backup/bai_all.sql
scp -r bai_all.sql root@10.255.23.119:/data/backup
mysql> source /data/backup/bai_all.sql
======================================
还原数据库,用户权限要授权,刷新。
GRANT REPLICATION SLAVE,REPLICATION CLIENT,SELECT ON *.* TO 'repl'@'10.1.1.%' IDENTIFIED BY '123456';
mysql> grant replication slave on *.* to 'repl'@'192.168.66.%' identified by '123456' WITH GRANT OPTION;
mysql> DELETE FROM mysql.user WHERE user='repl';
mysql> flush privileges;
mysql> select host ,user from mysql.user;
然后再slave 上:
CHANGE MASTER TO 
MASTER_HOST='10.1.1.13',
MASTER_USER='repl', 
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql_bin.000004',
MASTER_LOG_POS=1710;
mysql> show master status\G
mysql> show master status;
mysql> start slave;
mysql> show slave status\G
mysql> stop slave;
mysql> start slave io_thread;  
mysql> start slave sql_thread;
mysql> show slave hosts;
mysql>select Host,User  from user where User='root';
[root@bxdddbb backup]# service  mysqld stop
Shutting down MySQL..                                      [??????]
[root@bxdddbb backup]# service  mysqld start
Starting MySQL...                                          [??????]
[root@bxdddbb backup]#
mysql> DELETE FROM mysql.user WHERE user='repl';
mysql> flush privileges;
mysql> select host ,user from mysql.user;
-----------------------------
mysql> flush logs;
Query OK, 0 rows affected (0.16 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000009 |      154 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql> show master status\G
mysql> show slave hosts;
+-----------+------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID                           |
+-----------+------+------+-----------+--------------------------------------+
|       142 |      | 3306 |       143 | e7c7bc5b-fa79-11e7-b980-0050569b4d14 |
|       141 |      | 3306 |       143 | eab836fc-f9f8-11e7-b637-0050569b092e |
+-----------+------+------+-----------+--------------------------------------+
mysql> show variables like '%server_uuid%';
+---------------+--------------------------------------+
| Variable_name | Value                                |
+---------------+--------------------------------------+
| server_uuid   | af056dd8-6986-11e9-a1af-000c29063835 |
+---------------+--------------------------------------+
1 row in set (0.01 sec)
-------------------------------------------------
问题1:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
原因分析:
mysql 5.6的复制引入了uuid的概念,各个复制结构中的server_uuid得保证不一样,但是查看到直接copy  data文件夹后server_uuid是相同的,show variables like '%server_uuid%';
解决方法:
找到data文件夹下的auto.cnf文件,修改里面的uuid值,保证各个db的uuid不一样,重启db即可
-------------------------------------------------
问题2:
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
解决方法:
在source那边,执行:
mysql>  flush logs;      ---------mysql 刷新日志
mysql> reset master;     ----------清理所有binlog(谨慎)
show master status;
记下File, Position。
在target端,执行:
CHANGE MASTER TO MASTER_LOG_FILE='testdbbinlog.000008',MASTER_LOG_POS=107;
slave start;
show slave status \G
一切正常。
-------------------------------------------------
mysql>  stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql>  slave reset;   
mysql>  reset slave all; --------------清楚主库的(从配置)
mysql> show slave status\G
CHANGE MASTER TO MASTER_LOG_FILE='mysql_bin.000009',MASTER_LOG_POS=154;
root@bxdddbb 17:28:  [(none)]> set global gtid_purged='3b932723-c855-11e7-96f3-0050568a17e9:1-159';
Query OK, 0 rows affected (0.00 sec)
root@bxdddba 15:34:  [(none)]> show master status\G
*************************** 1. row ***************************
             File: mybinlog.000006
         Position: 709
[mysqld]
server-id = 248
binlog-ignore-db=mysql
replicate-do-db = ordersys
auto-increment-increment = 2
auto-increment-offset = 2
log-bin = /data/mysql/mybinlog
expire_logs_days = 7
[mysqld]
server-id = 249
binlog-ignore-db=mysql
replicate-do-db = ordersys
auto-increment-increment = 2
auto-increment-offset = 1
log-bin = /data/mysql/mybinlog
expire_logs_days = 7
=====================================================
切换测试
杀掉主库mysql进程,模拟主库发生故障,进行自动failover操作。
[root@192.168.0.50 ~]# pkill -9 mysqld
truncate table  t_dsf;
truncate table  t_dsf_summary;
truncate table t_pay_cups;
SELECT COUNT(*) from t_dsf
SELECT COUNT(*) from t_dsf_summary
SELECT COUNT(1) FROM t_payment;
1.停止141:-------------------------------------
[root@ums-data ~]# service  mysql stop
[root@ums-data ~]# ip add
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
恢复演示: 144上
ifconfig 主要是可以手动启动、观察与修改网络接口的相关参数
ifconfig {interface} {up|down} 
-----------------------------------------
ifconfig eth0  down
ifconfig eth0  up
10.在监控服务器上查看日志:------------------
[root@192.168.0.50 ~]# tail -f /var/log/messages
==============================
测试:
mysql> create database db2;
Query OK, 1 row affected (0.00 sec)
mysql> show databases ;
mysql> use baibai;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql_bin.000017 |     2218 |              | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
mysql> show slave status\G
mysql> show databases ;
mysql> show tables;
zhy2_rehat6_mysql02 - 5.7主从搭建.txt的更多相关文章
- mysql 主从搭建步骤
		
mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...
 - Redis多实例及主从搭建
		
主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...
 - xtrabackup 在线主从搭建
		
因为意外导致某个MySQL的从服务器宕机,且不可修复,因为是业务数据库,不能停机和锁表进行从库的搭建,所以考虑了使用xtrabackup 进行在线主从搭建. 一.数据库环境 注意: 主从搭建主库一定 ...
 - mongodb主从搭建
		
#tigergao 官网进行下包,可以下载源码包或者二进制包,本次下载的为二进制包,进行试验. 主服务器搭建: mkdir mongomaster cp mongodb-linux-x86_64-rh ...
 - ### MySQL主从搭建Position
		
一.MySQL主从搭建 搭建主从架构的MySQL常用的有两种实现方式: 基于binlog的fileName + postion模式完成主从同步. 基于gtid完成主从同步搭建. 本篇就介绍如何使用第一 ...
 - SQL Server、MySQL主从搭建,EF Core读写分离代码实现
		
一.SQL Server的主从复制搭建 1.1.SQL Server主从复制结构图 SQL Server的主从通过发布订阅来实现 1.2.基于SQL Server2016实现主从 新建一个主库&quo ...
 - mysql 主从搭建
		
主要搭建步骤如下: 1.打开binlog,设置server_id 打开主库的--log-bin,并设置server_id 2.主库授权 --最好也在从库对主库授权 ...
 - mysql数据库主从搭建
		
一.最近一直在学习mysql的东西,刚好看到mysql如何搭建主从数据库,搜集了很多资料后大致了解了mysql主从复置的原理.以下是我的理解: 举例master为主数据库,slave为从数据库. sl ...
 - mysql之 mysql 5.6不停机主从搭建(一主一从)
		
环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...
 
随机推荐
- Java修炼——面向对象的三大特征_多态_多态的三个必要条件
			
多态指的是同一个方法调用,由于对象不同可能会有不同的行为,现实生活中,同一个方法,具体实现会完全不同. 多态的要点: 1.多态是方法的多态,不是属性的多态(多态与属性无关) 2.多态的存在有三个必要条 ...
 - BZOJ1014 火星人的prefix
			
火星人最近研究了一种操作:求一个字串两个后缀的公共前缀.比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字 ...
 - POJ 3281 Dining(网络流-拆点)
			
Cows are such finicky eaters. Each cow has a preference for certain foods and drinks, and she will c ...
 - Mysql双活方案
			
#### 说明 Mysql主主互备即为两个mysql的互为备份机 ##### Windows下安装步骤(Linux下步骤类似,基本就是装上mysql,然后修改配置来完成主从的设置) - step1 ...
 - 【Git】Windows 配置 SSH-Key
			
查看本地公钥是否存在 执行以下语句来判断是否已经存在本地公钥 cat ~/.ssh/id_rsa.pub 如果出现如下截图,则本地公钥不存在,继续按步骤进行. 如果看到一长串以 ssh-rsa 或 s ...
 - 02 | Java内存模型:看Java如何解决可见性和有序性问题
			
什么是 Java 内存模型? 导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性. 有序性最直接的办法就是禁用缓存和编译优化,但是这样问题虽然解决了,我们程序的性能可就堪忧了. 合理 ...
 - docker-数据管理的备份与恢复
			
一.数据备份 备份示例如下: 要求:备份nfs数据卷里的data目录里的test-nfs.txt文件到宿主机/data/backup目录下 语法:docker run --volumes -f ...
 - SSM非springboot配置swagger2
			
前提:maven,ssm,不是springboot项目 1.在maven中添加依赖 <!-- Swagger2 Begin --> <!--springfox的核心jar包--> ...
 - 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理
			
有两张表,结构如下: t_item: t_bid: id int id int n ...
 - 关于maven依赖关系的问题
			
maven可以非常方便的管理jar包依赖问题. 这几天遇到的问题是:使用maven在idea跑flink程序提示 java.lang.ClassNotFoundExceptionjava.lang.N ...