mysql读写分离

MySQL主从复制备份

China☆狼群 提交于 2020-01-01 03:49:32
前言 数据库实时备份的需求很常见,MySQL本身提供了 Replication 机制,摘译官方介绍如下: MySQL Replication 可以将一个主数据库中的数据同步到一个或多个从数据库中。并且这个同步过程默认以异步方式工作,不需要保持主从数据库的实时连接(即允许连接中断)。同时允许自定义配置需同步的数据库及数据表。 MySQL Replication 的优点及应用场景如下: 1、通过 MySQL Replication 实现负载均衡与读写分离(主数据库仅更新,从数据库仅读取),提升数据库性能。 2、通过 MySQL Replication 实现数据的实时备份,保证数据安全。 3、通过 MySQL Replication 实现数据的离线分析(主数据库生成数据,从数据库分析计算不影响主数据库性能)。 4、数据分发。 MySQL Replication完整的官方文档请参阅: https://dev.mysql.com/doc/refman/5.7/en/replication.html 剑 http://www.cnblogs.com/wu-jian 工作原理 1、Master中的所有数据库变更事件写入Binary Log文件 2、当在Slave中执行“SLAVE START”命令时,开启Slave I/O Thread,并连接Master 3、Master侦测到Slave I

Mysql主从同步 读写分离

别说谁变了你拦得住时间么 提交于 2020-01-01 03:41:24
Mysql 主从 同步 读写 分离 目录 一. 概述 4 二. 实验目的 4 三. 试验环境 4 四. 方案 说明 4 五.Mysql 主从同步配置 5 1. 安装与初始化数据库 5 2. 主从服务器均授予 MySQL 远程登录权限。 5 3. 主从同步配置 5 六.Amoeba 读写分离配置 13 1. Amoeba 下载安装 13 2. 安装 Java 13 3. 修改 amoeba 的配置文件 amoeba.xml 和 dbServers.xml 的配置。 14 4. 启动 amoeba 进行测试。 20 七.读写分离测试。 21 1. 写测试 21 2. 读测试 24 一. 概述 Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、 读写分离 、高可用性等需求。与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单)。 二. 实验目的 实际的生产环境中,由单台 Mysql 作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。通过主从同步( Master-Slave

mysql主从复制-linux版本

依然范特西╮ 提交于 2020-01-01 03:22:26
来自:http://www.osyunwei.com/archives/7269.html,改版 mysql主从复制 本文采用的是 centos6.5+mysql-5.6.23版本 之前在 windows7安装过主从复制,现在在linux实现主从复制 mysql安装方法: http://www.cnblogs.com/lin3615/p/4376224.html 配置: 配置MySQL主服务器(192.168.179.142) 从服务器两台(192.168.179.146,192.168.179.147) 数据库就以 test为例, // 从这里开始配置第一台从服务器 #建立一个MySQL主从数据库同步用户 lin3615,密码123456,并授予给192.168.179.146 登陆数据库,进入控制台 insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values('%','lin3615',password('123456'),'','',''); #刷新系统授权表 flush privileges; #授权用户lin3615 只能从 192.168.179.146 这个IP访问主服务器192.168.179.142上面的数据库 grant replication

mysql主从复制搭建

帅比萌擦擦* 提交于 2020-01-01 02:20:08
MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。 下图就描述了一个多个数据库间主从复制与读写分离的模型(来源网络): 在一主多从的数据库体系中,多个从服务器采用异步的方式更新主数据库的变化,业务服务器在执行写或者相关修改数据库的操作是在主服务器上进行的,读操作则是在各从服务器上进行。如果配置了多个从服务器或者多个主服务器又涉及到相应的负载均衡问题,关于负载均衡具体的技术细节还没有研究过,今天就先简单的实现一主一从的主从复制功能。 Mysql主从复制的实现原理图大致如下(来源网络): MySQL之间数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信,并监控master的二进制日志文件的变化,如果发现master二进制日志文件发生变化,则会把变化复制到自己的中继日志中,然后slave的一个SQL线程会把相关的“事件”执行到自己的数据库中,以此实现从数据库和主数据库的一致性,也就实现了主从复制。 实现MySQL主从复制需要进行的配置: 主服务器: 开启二进制日志

如何建立主从服务器

空扰寡人 提交于 2020-01-01 01:49:43
1. 2.  a、为什么需要读写分离?   一台服务器满足不了访问需要。数据的访问基本都是2-8原则。   b、怎么做?    不往从服务器去写了,那就要主上写的操作都要同步到从(主从同步)    (1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);    (2) slave将master的binary log events拷贝到它的中继日志(relay log);   (3) slave重做中继日志中的事件,将更改应用到自己的数据上。    把读的请求同步到从,把写的请求分发的主。(读写分离) 技术选型,myproxy 2.1 这里在一台计算机上模拟开启两台数据库服务,主从服务器配置好后如下图: 2.2 2.3 在该路径下D:\MySQL\MySQL Server 5.5_master\bin,执行如下命令:(cmd必须是在管理员模式下运行) mysqld --install MySQLXY --defaults-file="D:\MySQL\MySQL Server 5.5_master\my.ini" 安装服务 注意:MySQLXY是服务名称,可以任意取名称 defaults-file="D:\MySQL\MySQL Server 5.5_master\my.ini"是主数据库配置文件地址

专职DBA-MySQL主从异步复制

孤街浪徒 提交于 2020-01-01 01:49:26
专职DBA-MySQL主从异步复制 MySQL主从复制企业级应用场景 1.从服务器作为主服务器的实时数据备份。 2.主从服务器实现读写分离,从服务器实现负载均衡。 3.根据业务重要性对多个从服务器进行拆分访问。 MySQL主从读写分离实现方案 1.通过开发程序实现读写分离(需要程序支持) 2.通过开源的软件实现读写分离。 3.大型门户独立开发DAL层综合软件。 mysql主从复制原理重点小结: 1.主从复制是异步的逻辑的SQL语句级的复制。 2.复制时,主库有一个binlog dump线程,从库有两个线程,I/O线程和SQL线程。 3.从mysql 5.6起,slave从库的SQL线程可以是多个。 4.实现主从复制的必要条件是主库要开启记录binlog的功能。 5.用于复制的所有mysql节点配置中的server-id都不能相同。 6.binlog文件只记录对数据库有更改的SQL语句(来自主库内容的更改),不记录任何(select,show)查询以及未对数据库做出更改的语句。 链接克隆两台主机,模板机安装请参考install_linux_os.sh VMware克隆Centos6.4虚拟机网卡无法启动问题 # cat /etc/sysconfig/network-scripts/ifcfg-eth0 # sed -i '/UUID/d' /etc/sysconfig/network

mysql读写分离

爷,独闯天下 提交于 2020-01-01 01:48:14
首先server1,server2,配置好主从关系 在server3中; tar zxf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz -C /usr/local/ cd /usr/local/ ln -s mysql-proxy-0.8.5-linux-el6-x86-64bit/ mysql-proxy mkdir /usr/local/mysql-proxy/log mkdir /usr/local/mysql-proxy/etc cd mysql-proxy vim etc/mysql-proxy.conf user=root daemon=true keepalive=true log-level=info pid-file=/usr/local/mysql-proxy/log/mysql-proxy.pid log-file=/usr/local/mysql-proxy/log/mysql-proxy.log proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua proxy-address=172.25.8.3:3306 proxy-backend-addresses=172.25.8.1:3306 proxy-read

Linux下mysql主从配置

拈花ヽ惹草 提交于 2020-01-01 01:35:29
mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复 需要两台机器,安装mysql,两台机器要在相通的局域网内 主机A: 192.168.1.100 从机B:192.168.1.101 可以有多台从机 1、先登录主机 A mysql>GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’192.168.1.101‘ IDENTIFIED BY ‘123456’; 赋予从机权限,有多台丛机,就执行多次 2、 打开主机A的my.cnf,输入 server-id = 1 #主机标示,整数 log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写 read-only =0 #主机,读写都可以 binlog-do-db =test #需要备份数据,多个写多行 binlog-ignore-db =mysql #不需要备份的数据库,多个写多行 3、打开从机B的my.cnf,输入 server-id = 2 log_bin = /var/log/mysql/mysql-bin.log master-host =192.168.1.100 master-user =backup master-pass =123456 master-port =3306 master-connect-retry=60

mysql主从

放肆的年华 提交于 2020-01-01 01:30:23
目录 1.mysql简介 1.1 主从作用 3.1 mysql安装 3.2 mysql主从配置 3.2.1 确保从数据库与主数据库里的数据一样(两个里面都无数据) 3.2.2 在主数据库里创建一个同步账号授权给从数据库使用 3.2.3 配置主数据库 3.2.4 配置从数据库 3.2.5 测试验证 4.mysql主从配置 4.1确保从数据库与主数据库里的数据一样 4.1.2在主数据库里创建一个同步账号授权给从数据库使用 4.1.3配置主数据库 4.1.3 配置从数据库 4.1.4测试验证 1.mysql简介 在现代企业中,数据显得尤为重要,而存储数据的数据库选择又五花八门,但无论是何种数据库,均存在着一种隐患。 想几个问题: 用一台数据库存放数据,若此数据库服务器宕机了导致数据丢失怎么办? 业务量大了,数据多了,访问的人多了,一台数据库无法保证服务质量了怎么办? 1.1 主从作用 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务(这里的备份不是指数据库的备份,而是服务器的备份,相当于一台备用服务器) 1.2 主从形式 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的 多主一从---5.7开始支持 联级复制 2. 主从复制原理 主从复制步骤: 主库将所有的写操作记录到binlog日志中并生成一个log dump线程

mariadb/mysql高可用读写分离

家住魔仙堡 提交于 2020-01-01 01:29:25
第一步mariadb主从配置 第二步ProxySql读写分离 第三步keepalived高可用proxysql 第四步测试mysql读写分离高可用是否成功 第一步mariadb主从配置: 首先配置好mariadb主从同步,这里采用的一主两从,node1和node2为半同步复制,node1和node3为异步复制,也可以全部采用异步复制,根据业务需求配置即可 保证各服务器节点时间同步,可参考 时间同步设置方案 http://www.longma.tk/p=629 初始化环境 node1和 node2 ,为保证不受其它实验干扰,建议恢复至初始状态,新装的mariadb即可,不要有其它实验项目干扰 主服务器node1配置: 1 2 3 4 5 6 7 8 9 10 11 配置文件 vim / etc / my .cnf .d / server .cnf [ mysqld ] skip_name_resolve = ON innodb_file_per_table = ON server_id = 1 log_bin = mysql - bin systemctl start mariadb .service mysql > GRANT REPLICATION SLAVE , REPLICATION CLIENT ON * . * TO 'repluser' @ '172.18.43.%'