mysql主从配置

MySQL经典面试题

巧了我就是萌 提交于 2020-02-12 03:14:55
MySQL经典面试题 1、MySQL的复制原理以及流程 (1)、复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; (2)、MySQL复制的线程有几个及之间的关联 MySQL 的复制是基于如下 3 个线程的交互( 多线程复制里面应该是 4 类线程): 1. Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到slave; 2. Slave 上面的 IO 线程,该线程负责接收 Master 传过来的 binlog,并写入 relay log; 3. Slave 上面的 SQL 线程,该线程负责读取 relay log 并执行; 4. 如果是多线程复制,无论是 5.6 库级别的假多线程还是 MariaDB 或者 5.7 的真正的多线程复制, SQL 线程只做 coordinator,只负责把 relay log 中的 binlog读出来然后交给 worker 线程, woker 线程负责具体 binlog event 的执行; (3)

MySQL经典面试题

流过昼夜 提交于 2020-02-12 03:09:24
1)、复制基本原理流程 1. 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 2. 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 3. 从:sql执行线程——执行relay log中的语句; (2)、MySQL复制的线程有几个及之间的关联 MySQL 的复制是基于如下 3 个线程的交互( 多线程复制里面应该是 4 类线程): 1. Master 上面的 binlog dump 线程,该线程负责将 master 的 binlog event 传到slave; 2. Slave 上面的 IO 线程,该线程负责接收 Master 传过来的 binlog,并写入 relay log; 3. Slave 上面的 SQL 线程,该线程负责读取 relay log 并执行; 4. 如果是多线程复制,无论是 5.6 库级别的假多线程还是 MariaDB 或者 5.7 的真正的多线程复制, SQL 线程只做 coordinator,只负责把 relay log 中的 binlog读出来然后交给 worker 线程, woker 线程负责具体 binlog event 的执行; (3)、MySQL如何保证复制过程中数据一致性及减少数据同步延时 一致性主要有以下几个方面

高级篇:Mycat的理解

…衆ロ難τιáo~ 提交于 2020-02-11 17:15:36
目录 一、问题导入 1.1高并发Mysql的速度问题怎么解决? 1.2Mysql 挂了怎么办? 1.3 Mysql 超过500W的数据 二、Mycat 的简介 2.1 Mycat 解决Mysql 的并发压力的思路 2.1.1 分库 2.1.2 分表 2.1.3 好处或者面试 2.1.4 Mycat 额外的好处 2.2 Mycat的安装 2.2.1 Mycat 是Java 语言写的,安装Mycat 必须先安装JDK 2.2.2 Mycat的安装 三、Mycat的名词解释 3.1 虚拟库 3.2 虚拟表 3.3 数据节点(**) 3.4 数据库服务器 四、Mycat的配置文件(*mycat的核心*) 4.1 schema.xml 4.1.1 schema (一个虚拟的库)节点 4.1.2 table 标签 4.1.3 dataNode数据节点 4.1.4 DataHost:数据库的服务器 4.2 rule.xml(路由的规则) 4.2.1 tableRule的节点 4.2.2 function 节点 4.3 server.xml 4.3.1 用户的配置 4.3.2 主键增长的节点 五、实战mycat的配置文件 5.1 写一个schema.xml 文件 5.2 rule.xml 文件(我们没有使用别的规则,它里面自动rule1) 5.3 server.xml 5.4 覆盖默认的mycat

LNMP源码编译安装(centos7+nginx1.9+mysql5.6+php7)

╄→гoц情女王★ 提交于 2020-02-11 04:39:24
1.准备工作: 1)把所有的软件安装在/Data/apps/,源码包放在/Data/tgz/,数据放在/Data/data,日志文件放在/Data/logs,项目放在/Data/webapps, mkdir -p /Data/apps/ mkdir -p /Data/tgz/ mkdir -p /Data/data/ mkdir -p /Data/logs/ mkdir -p /Data/webapps/ 2)安装源码包所需要的依赖包 yum -y install wget openssl* gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients

ProxySQL 基础篇

左心房为你撑大大i 提交于 2020-02-10 16:09:03
1、ProxySQL 介绍 ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层, 可以实现 读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。 介绍:相关 ProxySQL 的网站 https://www.proxysql.com/ https://github.com/sysown/proxysql/wiki    2、环境准备 全新初始化的实例 IP server-id 数据库版本 备注 10.0.0.160 1603306 MySQL 8.0.18 Master(主库)+ ProxySQL2.0.8 10.0.0.161 1613306 MySQL 8.0.18 Slave1(从库) 10.0.0.162 1623306 MySQL 8.0.18 Slave2(从库) ProxySQL 2.0.x 版本支持 MGR 注: 我的 ProxySQL 和 主库放在一起的,我已近配置好了主从复制状态 。这是我的实验环境,实际环境注意实际情况。一般的代理环境结构如上图。 slave 节点的read_only=1 3、ProxySQL 安装与启动 下载 wget https://github.com/sysown/proxysql

CentOS7数据库架构之NFS+heartbeat+DRBD(亲测,详解)

半城伤御伤魂 提交于 2020-02-08 08:23:07
目录 参考文档 理论概述 DRBD 架构 NFS 架构部署 部署DRBD 部署heartbeat 部署NFS及配合heartbeat nfs切记要挂载到别的机器上不要为了省事,省机器 参考文档 https://blog.51cto.com/732233048/1669417 CentOS 7下安装配置Heartbeat高可用集群_服务器应用_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2019-02/157123.htm NFS自动挂载_服务器应用_Linux公社-Linux系统门户网站 https://www.linuxidc.com/Linux/2013-05/84777.htm 1 NFS高可用解决方案之DRBD+heartbeat搭建 - 温柔易淡 - 博客园 https://www.cnblogs.com/liaojiafa/p/6129499.html Linux HA集群之DRBD详解(较全面) 构建Mysql+heartbeat+DRBD+LVS集群应用系统系列之DRBD的搭建 https://www.cnblogs.com/liaojiafa/p/6118425.html RHEL/CentOS/Fedora各种源(EPEL、Remi、RPMForge、RPMFusion)配置 - AderStep -

Atlas-MySQL

我的未来我决定 提交于 2020-02-08 04:29:12
优秀DBA的素质 1 、人品,不做某些事情 2 、严谨,运行命令前深思熟虑,三思而后行,即使是依据select 3 、细心,严格按照步骤一步一步执行,减少出错 4 、心态,遇到灾难,首先要稳住,不慌张,不要受到旁人的影响 5 、熟悉操作系统,Linux系统的工具和命令 6 、熟悉业务 ( 开发 ),编程语言 7 、熟悉行业 8 、喜欢数据库 • 什么是数据? 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。 • 什么是数据库管理系统? 将大量的数据规范的管理在一起的软件 • 数据库管理系统种类 关系型和非关系型 • 关系型数据库的特点   – 二维表   – 典型产品 Oracle传统企业, MySQL是互联网企业   – 数据存取是通过SQL   – 最大特点,数据安全性方面强(ACID) • NoSQL:非关系型数据库(Not only SQL)   – 不是否定关系型数据库,做关系型数据库的的补充。   – 想做老大,先学会做老二。 RDBMS与NoSQL对比 • web1.0时代   企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要NoSQL。 • web2.0时代   核心是企业提供平台,用户参与提供内容。这时关系型数据库无法满足需求了。 • 2003

MySQL数据库集群实战(3)——MySQL主从复制之半同步复制

半世苍凉 提交于 2020-02-08 01:04:26
文章目录 一、掌握Mysql复制方式的区别及优缺点 二、了解半同步复制出现的必要性 半同步工作原理 三、配置半同步复制 实验环境 一、掌握Mysql复制方式的区别及优缺点 异步复制(Asynchronous replication) MySQL默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完 全同步复制(Fully synchronous replication) 指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。 半同步复制(Semisynchronous replication) 介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。 在2010年MySQL 5.5版本之前,一直采用的是这种异步复制的方式

MySQL数据库集群实战(5)———MySQL数据库的读写分离(MySQL-proxy)

纵然是瞬间 提交于 2020-02-07 23:33:09
实现MySQL读写分离的前提是我们已经将MySQL主从复制配置完毕,可参考上一篇关于 MySQL数据库集群实战(2)——MySQL主从复制之异步复制(传统复制postion与GTID) 的文章。配置基于GTID的异步复制。 文章目录 一、MySQL读写分离 1、为什么要进行读写分离 2、读写分离的实现原理 3、mysql中间件服务mysql-proxy 二、搭建MySQL数据库的读写分离 实验环境 实验 测试读写分离 一、MySQL读写分离 1、为什么要进行读写分离 当我们的数据量很大时,数据库服务器的压力变大,这时候我们需要从架构方面来解决这一问题,在一个网站中读的操作很多,写的操作很少,这时候我们需要配置读写分离,把读操作和写操作分离出来,最大程度的利用好数据库服务器。 2、读写分离的实现原理 读写分离的实现原理就是在执行SQL语句的时候,判断到底是读操作还是写操作,把读的操作转向到读服务器上(从服务器,一般是多台),写的操作转到写的服务器上(主服务器,一般是一台,视数据量来看)。 3、mysql中间件服务mysql-proxy mysql-proxy是mysql官方提供的mysql中间件服务,上游可接入若干个mysql-client,后端可连接若干个mysql-server。 它使用mysql协议,任何使用mysql-client的上游无需修改任何代码,即可迁移至mysql

MySQL的MMM

你说的曾经没有我的故事 提交于 2020-02-07 03:01:38
参照原文:http://www.cnblogs.com/gomysql/p/3671896.html 简介 MMM(Master-Master replication manager for MySQL)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。 MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。对于那些对数据的一致性要求很高的业务,非常不建议采用MMM这种高可用架构。 MMM项目来自 Google: http://code.google.com/p/mysql-master-master 官方网站为: http://mysql-mmm.org 下面我们通过一个实际案例来充分了解MMM的内部架构,如下图所示。 具体的配置信息如下所示: 角色