mysql主从配置

MySQL基于Amoeba实现读写分离

瘦欲@ 提交于 2019-12-01 12:31:12
在实际的生活环境中,如果对数据库的读和写都在同一个数据库服务中操作,无论是在安全性,高可用还是高并发等各个方面都不能完全满足实际需求的,因此一般来说都是通过主从复制的方式来同步数据,再通过读写分离来提升数据的高并发负载能力这样的方案来进行部署。 读写分离就是只在主服务器上写,只在从服务器上读,基本的原理是让主数据库处理事务性查询,而从数据库处理select查询,数据库复制被用来把事务性查询导致的改变更新同步到集群中的从数据库。 目前较为常见的MySQL读写分离方案有两种: 1.基于程序代码内部实现: 根据select,insert进行路由分类,是目前生产环境应用最广泛的,优点是性能好,因为在代码中实现,不需要增加额外的设备作为硬件开支,缺点是需要开发人员来实现,运维人员无从下手。 2.基于中间代码层实现: 代理一般位于客户端和服务器之间,代理服务器接到客户端请求后通过判断后转发到后端数据库,代表性程序: ( 1 ) mysql-proxy 为 mysql 开发早期开源项目,通过其自带的 lua 脚本进行 SQL 判断,虽然是 mysql 的官方产品,但是 mysql 官方不建议将其应用到生产环境。 ( 2 ) Amoeba (变形虫)由陈思儒开发,曾就职与阿里巴巴,该程序由 java 语言进行开发,阿里巴巴将其应用于生成环境,它不支持事物和存储过程。 通过程序代码实现 mysql

MySQL 数据备份与同步

泪湿孤枕 提交于 2019-12-01 12:24:35
转自:https://www.cnblogs.com/martinjinyu/articles/3750422.html 前段时间使用MySQL作为数据存储做了一个小项目。项目上线运行了几十天之后,数据已经越来越多,达到了100多M。用mysqldump每天备份全量数据然后传输到另外一台机器上这种方式进行数据备份,久而久之越来越慢。于是开始研究如何利用mysql的主 从同步功能实现自动备份。如果实现自动备份,主从服务器之间只需要在有数据更新时同步一点增量数据, 不会在备份时占用大量的CPU和内网的网络带宽资源了。介绍主从同步之前,还是先从基础的mysqldump备份开始讲起。 mysqldump mysqldump是mysql数据库提供的一个数据备份工具。顾名思义,mysqldump可以把mysql数据库导出成sql语句文件,并保存到磁盘上。 mysqldump 命令产生的.sql文件包含一系列SQL INSERT语句,可以用来进行数据恢复。 假定我们在星期日下午1点进行了备份,此时负荷较低。下面的命令可以完全备份所有数据库中的所有表: shell> mysqldump --single-transaction --all-databases > backup_sunday_1_PM.sql 使用mysqldump进行数据备份,至少有两个问题: 1 mysqldump运行时

mysql闪回工具--binlog2sql实践

一笑奈何 提交于 2019-12-01 11:49:01
DBA或开发人员,有时会误删或者误更新数据,如果是线上环境并且影响较大,就需要能快速回滚。传统恢复方法是利用备份重搭实例,再应用去除错误sql后的binlog来恢复数据。此法费时费力,甚至需要停机维护,并不适合快速回滚。也有团队利用LVM快照来缩短恢复时间,但快照的缺点是会影响mysql的性能。现在有不少好用而且效率又高的开源闪回工具如binlog2sql、mysqlbinlog_flashback,这些工具在工作中给DBA减轻了不少痛苦,以下针对binlog2sql的使用进行实践演练。 binlog2sql的用途: 数据快速回滚(闪回) 主从切换后数据不一致的修复 从binlog生成标准SQL,带来的衍生功能 安装binlog2sql前先安装git和pip: yum -y install epel-release yum -y install git python-pip 安装binlog2sql: git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql pip install -r requirements.txt MySQL的配置要开启以下选项: [mysqld] server_id = 1 log_bin = /var/log/mysql/mysql-bin.log max_binlog

mysql主从复制

跟風遠走 提交于 2019-12-01 10:20:14
一、实验环境 1、主服务器 MYSQL-master:192.168.200.111 MYSQL-slave1:192.168.200.112 MYSQL-slave2:192.168.200.113 2、所有主机安装mariadb [root@localhost ~]# yum -y install mariadb* [root@localhost ~]# systemctl start mariadb 3、所有服务器关闭防火墙和安全机制 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# iptables -F [root@localhost ~]# setenforce 0 二、建立时间同步环境 ,在主服务器上安装配置NTP时间同步服务器 1、在master上配置 安装时间服务器 [root@mysql-m ~]# yum -y install ntp 修改配置文件 [root@mysql-m ~]# vim /etc/ntp.conf //手动添加 server 127.127.1.0 fudge 127.127.1.0 stratum 8 启动NTP服务 [root@mysql-m ~]# systemctl start ntpd 2、在两个slave节点上配置(以slave1为例) [root

MySQL基于Amoeba实现读写分离

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 10:17:13
读写分离应用分析: 在企业用户中,在大量的数据请求下,单台数据库将无法承担所有读写操作。解决方法: 配置多台数据库服务器以实现主从复制+读写分离。 1、基于程序代码内部实现 在代码中根据select、 insert 进行路由分类,这种方法目前生产环境中应用最广泛。优点是性能较好,因为在程序代码中实现,不需要增加额外的设备作为硬件开支。缺点是需要开发人员能来实现,运维人员无从下手。 2、基于中间代理层实现 代理一般位于客户端和服务器之间,代理服务器接到客户端请求后通过判断后转发到后端数据库。 常见的代理服务器: MySQL-Proxy Amoeba 实验环境: amoeba: 192.168.200.114 master:192.168.200.111 slave1:192.168.200.112 slave2:192.168.200.113 client:192.168.200.123 前提是主从服务器支持主从复制 配置amoeba服务器: 1.安装amoeba软件 准备好jdk-6u14-linux-x64.bin文件 2.给与该文件执行权限 chmod +x jdk-6u14-linux-x64.bin 3.执行该文件 ./jdk-6u14-linux-x64.bin 执行后会进入阅读模式,一直按回车,提示是否安装是输入yes 4.将文件移动 mv jdk1.6.0_14/

mysql主从备份案例—读写分离(异步主从)

徘徊边缘 提交于 2019-12-01 10:07:18
主备配置 主:MySQL 192.168.200.115 从:MySQL 192.168.200.116 从:MySQL 192.168.200.113 主: yum -y install ntp cp -p /etc/ntp.conf /etc/ntp.conf/origin vim /etc/ntp.conf-------------------------- server 127.127.1.0 fudge 127.127.1.0 startum 8------------------- /etc/init.d/ntpd start chkconfig ntpd on 从:yum -y install ntpdate ntpdate 192.168.200.115 ------------------------------------------------------------------------------------------------------------------ 主: vim /etc/my.cnf--------------------------- server-id = 1 log-bin=mysql-bin log-slave-updates=true------------------------------- 重启 /etc/init

MySQL-主从复制

坚强是说给别人听的谎言 提交于 2019-12-01 10:04:42
实验环境 MySQL-master:192.168.200.111 MySQL-slave1:192.168.200.112 MySQL-slave2:192.168.200.113 [root@localhost ~]# iptables -F [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0 建立时间同步环境,在主服务器上安装配置NTP时间同步服务器 [root@localhost ~]# yum -y install ntp [root@localhost ~]# vim /etc/ntp.conf 末行添加 server 127.127.1.0 fudge 127.127.1.0 startum 8 [root@localhost ~]# systemctl restart ntpd 在从服务器上同步时间 [root@localhost ~]# yum -y install ntpdate [root@localhost ~]# ntpdate 192.168.200.111 15 Oct 12:02:12 ntpdate[10406]: adjust time server 192.168.200.111 offset 0.008413 sec

mysql读写分离

只愿长相守 提交于 2019-12-01 10:03:29
搭建一个主从复制服务器:192.168.200.111(master) 192.168.200.112 (slave1)192.168.200.113(slave2) AMOEBA服务器:192.168.200.114 上传jdk-6u14-linux-x64.bin包 [root@localhost ~]# chmod +x jdk-6u14-linux-x64.bin [root@localhost ~]# ./jdk-6u14-linux-x64.bin [root@localhost ~]# mv jdk1.6.0_14/ /usr/local/java [root@localhost ~]# vim /etc/profile 添加五行: export JAVA_HOME=/usr/local/java export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin export AMOEBA_HOME=/usr/local/amoeba export PATH=$PATH:$AMOEBA_HOME/bin [root@localhost ~]# source /etc/profile [root

MySQL主从备份案例

試著忘記壹切 提交于 2019-12-01 10:01:56
实验环境 一主两从 MySQL-master 192.168.200.111 MySQL-slave1 192.168.200.112 MySQL-slave2 192.168.200.113 所有服务器关闭防火墙 所有服务器安装 yum -y install mariadb mariadb-server systemctl start mariadb 建立时间同步环境,在主服务器上安装配置NTP时间同步服务器 主:yum -y install ntpdate vim /etc/ntp.conf server 127.127.1.0 fudge 127.127.1.0 startum 8 systemctl start ntpd 修改配置文件:vim /etc/my.cnf [mysqld] server_id=1 log-bin=mysql-binlog log-slave-updates=true systemctl restart mariadb mysql 登录数据库 给从服务器授权 MariaDB [(none)]> grant replication slave on *.* to 'slave'@'192.168.200.%' identified by '123123'; MariaDB [(none)]> flush privileges; 配置从服务器 yum

PXC集群的概述及搭建

久未见 提交于 2019-12-01 09:51:15
目录 PXC集群的概述及搭建 PXC集群的简介 PXC集群主要由两部分组成: PXC的特性和优点: PXC的局限和劣势: PXC原理描述 mysql实例端口 在Centos部署基于Mysql高可用方案操作过程 新增节点加入Galera集群 PXC集群的概述及搭建 PXC集群的简介 Percona XtraDB Cluster(下文简称PXC集群)提供了MySQL高可用的一种实现方法。PXC集群以节点组成(推荐至少3节点,便于故障恢复,后面会讨论两节点的情况),每个节点都是基于常规的 MySQL/Percona Server,意味着你可以从集群中分离出某节点单独使用。集群中每个节点都包含完整的数据。 PXC集群主要由两部分组成: Percona Server with XtraDB和Write Set Replication patches(使用了Galera library,一个通用的用于事务型应用的同步、多主复制插件)。 PXC的特性和优点: ​ 1、同步复制 ​ 2、支持多主复制 ​ 3、支持并行复制 ​ 4、作为高可用方案,相比其他方案其结构和实施相对简单明了 PXC的局限和劣势: 1) 版本(5.6.20)的复制只支持InnoDB引擎,其他存储引擎的更改不复制。然而,DDL(Data Definition Language) 语句在statement级别被复制,并且