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的更多相关文章

  1. mysql 主从搭建步骤

    mysql 主从搭建步骤 1:主库开启master端bin-log 2:主库创建备份用户 3:主库全备 4:从库导入全备数据 5:从库修改change master to信息 6:从库slave st ...

  2. Redis多实例及主从搭建

    主从搭建前提是服务器上已经安装好了redis, redis安装可搜索本站另一篇博客:redis安装. redis单主机多实例 一.我们首先拷贝两份文件: cp /etc/redis.conf /etc ...

  3. xtrabackup 在线主从搭建

    因为意外导致某个MySQL的从服务器宕机,且不可修复,因为是业务数据库,不能停机和锁表进行从库的搭建,所以考虑了使用xtrabackup 进行在线主从搭建. 一.数据库环境 注意:  主从搭建主库一定 ...

  4. mongodb主从搭建

    #tigergao 官网进行下包,可以下载源码包或者二进制包,本次下载的为二进制包,进行试验. 主服务器搭建: mkdir mongomaster cp mongodb-linux-x86_64-rh ...

  5. ### MySQL主从搭建Position

    一.MySQL主从搭建 搭建主从架构的MySQL常用的有两种实现方式: 基于binlog的fileName + postion模式完成主从同步. 基于gtid完成主从同步搭建. 本篇就介绍如何使用第一 ...

  6. SQL Server、MySQL主从搭建,EF Core读写分离代码实现

    一.SQL Server的主从复制搭建 1.1.SQL Server主从复制结构图 SQL Server的主从通过发布订阅来实现 1.2.基于SQL Server2016实现主从 新建一个主库&quo ...

  7. mysql 主从搭建

    主要搭建步骤如下: 1.打开binlog,设置server_id     打开主库的--log-bin,并设置server_id 2.主库授权                --最好也在从库对主库授权 ...

  8. mysql数据库主从搭建

    一.最近一直在学习mysql的东西,刚好看到mysql如何搭建主从数据库,搜集了很多资料后大致了解了mysql主从复置的原理.以下是我的理解: 举例master为主数据库,slave为从数据库. sl ...

  9. mysql之 mysql 5.6不停机主从搭建(一主一从)

    环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...

随机推荐

  1. Pandas学习(一)——数据的导入

    欢迎加入python学习交流群 667279387 学习笔记汇总 Pandas学习(一)–数据的导入 pandas学习(二)–双色球数据分析 pandas学习(三)–NAB球员薪资分析 pandas学 ...

  2. [TimLinux] Python nonlocal和global的作用

    1. 执行代码 以下实例都是通过执行以下代码,需要把以下执行代码放在后面实例代码的后面. a = outer_func()print("call a()") a() a() a() ...

  3. WebAPI接口的自动化测试2

    接口认证: 服务器的接口需要通过一个验证机制,这个验证机制可以是session或token 以session为例. session存储与服务器,通常用户登录后,服务器会把配套的sessionid发送给 ...

  4. Happy Birthday! 今天我 1 周岁生日啦!

    2018.09.28,我第 1 天分享文章. 2019.09.28,我连续分享的第 365 天. 今天我 1 周岁啦! 生日意味着一个新的开端, 意味着重新把握生活的机会. 新的一岁,从新头像开始 愿 ...

  5. 【搞定Jvm面试】 JVM 垃圾回收揭秘附常见面试题解析

    JVM 垃圾回收 写在前面 本节常见面试题 问题答案在文中都有提到 如何判断对象是否死亡(两种方法). 简单的介绍一下强引用.软引用.弱引用.虚引用(虚引用与软引用和弱引用的区别.使用软引用能带来的好 ...

  6. ASP.NET4.0中JavaScript脚本调用Web Service 方法

    环境:VS2019  .net 4.0 framework 根据教材使用ScriptManager在JavaScript中调用Web service 时,失败.现将过程和解决方法记录如下: 1.定义W ...

  7. Node.js+Express+MongoDB数据库实现网页注册登入功能

    通过 Node.js + Express + MongoDB 实现网页注册账号 和 登入账号的功能 项目准备: 1: 事先准备好项目的页面 (首页页面 index.html)(登入页面 login.h ...

  8. conda pip 安装 dgl 并运行demo 出现:Segmentation fault (core dumped) 错误

    安装dgl 并运行的时候,出现了如上错误,很是郁闷:使用 gdb python; run train.py 进行调试,发现是torch的问题:我猜测估计是torch 安装的版本过于新:于是重新安装 1 ...

  9. python基础之元组讲解

    概念讲解: 1.Python 的元组与列表十分相似,但是元组的元素只可读不可修改: 2.元组使用小括号,列表使用方括号: 3.元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. (1)创建一 ...

  10. Android组件体系之Service解析

    一.调用方式    1.启动服务    只启动一个服务,不进行通信,包括startService.startForegroundService两种调用方式.第二种方式适用于后台应用启动前台服务,在启动 ...