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 防火 ... 
随机推荐
- Proxmox VE虚拟化管理平台-相关概念
			请阅读此文用户务必阅读以下链接,其中包含了汉化作者.张自然copy过来的原因等信息. www.zhangziran.com/proxmox-docs-zh-cn.htm a Proxmox VE 集群 ... 
- 551. 学生出勤纪录 I
			给定一个字符串来代表一个学生的出勤纪录,这个纪录仅包含以下三个字符: 'A' : Absent,缺勤 'L' : Late,迟到 'P' : Present,到场 如果一个学生的出勤纪录中不超过一个' ... 
- 【IntelliJ Idea】使用学习
			[IntelliJ Idea]使用学习 转载:https://www.cnblogs.com/yangchongxing/p/10658259.html 目录 ==================== ... 
- 【Html5】使用学习
			Html5使用学习 目录 1.方式js文件被浏览器缓存 <script>document.write("<script src='y.js?v=" + Date. ... 
- CCF-CSP题解 201903-4 消息传递接口
			求并行的各个进程,且进程内部顺序执行的情况下,会不会出现"死锁". 首先用\(%[^\n]\)将每个进程读入.最后过不了居然是因为\(str[\ ]\)开小了(悲喜交加.存储在\( ... 
- luogu1337 [JSOI2004]平衡点 / 吊打XXX(模拟退火)
			推荐博客:模拟退火总结(模拟退火)by FlashHu.模拟退火的原理,差不多就是不断地由现有的值不断地试探,不断地转到更优的值,并在一定概率下转到较差的值. 题目传送门:luogu1337 [JSO ... 
- [ASP.NET Core 3框架揭秘] 依赖注入[10]:与第三方依赖注入框架的适配
			.NET Core具有一个承载(Hosting)系统,承载需要在后台长时间运行的服务,一个ASP.NET Core应用仅仅是该系统承载的一种服务而已.承载系统总是采用依赖注入的方式来消费它在服务承载过 ... 
- PuppeteerSharp读取页面完整HTML(.NetCore)
			1.使用NUGET安装PuppeteerSharp 通过工具或者命令方式安装 2.初始化浏览器 await new BrowserFetcher().DownloadAsync(BrowserFetc ... 
- oracle性能优化(项目中的一个sql优化的简单记录)
			在项目中,写的sql主要以查询为主,但是数据量一大,就会突出sql性能优化的重要性.其实在数据量2000W以内,可以考虑索引,但超过2000W了,就要考虑分库分表这些了.本文主要记录在实际项目中,一个 ... 
- Linux CPU占用率监控工具
			关键词:top.perf.sar.ksar.mpstat.uptime.vmstat.pidstat.time.cpustat.munin.htop.glances.atop.nmon.pcp-gui ... 
