mysql主从配置

mysql半同步复制实现

那年仲夏 提交于 2020-01-01 02:17:59
mysql半同步复制和异步复制的区别如上述架构图所看到的:在mysql异步复制的情况下。Mysql Master Server将自己的Binary Log通过复制线程传输出去以后,Mysql Master Sever就自己主动返回数据给client。而无论slave上是否接受到了这个二进制日志。在半同步复制的架构下。当master在将自己binlog发给slave上的时候。要确保slave已经接受到了这个二进制日志以后,才会返回数据给client。 对照两种架构:异步复制对于用户来说,能够确保得到高速的响应结构,可是不能确保二进制日志确实到达了slave上。半同步复制对于客户的请求响应略微慢点,可是他能够保证二进制日志的完整性。 以下来配置一个半同步复制实现的主从架构: 192.168.1.141为mysql的主server 192.168.1.142为mysql的从server 1.为mysql主server提供配置 编辑/etc/my.cnf,提供下面的配置 log_bin=index server_id=1 在主server上授权 # mysql> grant replication slave,replication client on user@'192.168.1.142' identified by "123456"; # mysql> flush

keepalived+mysql实现双主高可用

你。 提交于 2020-01-01 02:17:47
环境: DB1:centos6.8、mysql5.5、192.168.2.204 hostname:bogon DB2:centos6.8、mysql5.5、192.168.2.205 hostname:localhost.localdomain vip:192.168.2.33 一、先配置DB1和DB2的双主热备 1、分别在DB1和DB2上安装mysql,我这里是用的ansible自动部署 [root@www ansible]# ansible-playbook lnmp.yml PLAY [new] ********************************************************************* TASK [setup] ******************************************************************* ok: [192.168.2.205] ok: [192.168.2.204] TASK [mysql : Create backup folder] ******************************************** ok: [192.168.2.204] ok: [192.168.2.205] TASK [mysql : create log folder]

MySQL灾备切换

若如初见. 提交于 2020-01-01 02:12:36
1.1 配置mysql主从 主库IP:192.168.8.62 从库IP:192.168.8.65 主库IP:192.168.8.62 操作 mysql -uroot -p mysql> grant replication slave on *.* to tongbu@'192.168.8.65' identified by '123456'; mysql> show master status \G *************************** 1. row *************************** File: mysql-bin.000005 Position: 331 #拿到File 和Position #锁表 flush tables with read lock; 锁表 1.2 从库IP:192.168.8.65 操作 mysql> change master to master_host='192.168.8.62',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=331; mysql> start slave; mysql> show slave status \G #内容有这两给 YES Slave

Keepalived+MySQL实现高可用

旧城冷巷雨未停 提交于 2020-01-01 02:12:21
MySQL的高可用方案有很多,比如 Cluster , MMM , MHA , DRBD 等,这些都比较复杂,我前面的文章也有介绍。最近Oracle官方也推出了 Fabric 。有时我们不需要这么复杂的环境,这些方案各有优劣。有时简单的且我们能够hold住的方案才是适合我们的。比如MySQL Replication,然后加上各种高可用软件,比如 Keepalived 等,就能实现我们需要的高可用环境。 MySQL架构为master/slave,当master故障时,vip漂移到slave上。提供服务。当然也可以设置为双master,但是不是每个方案都是完美的。这里设置为双master有个问题需要注意,比如,当用户发表文章时,由于此时主机的压力很大时,假设落后2000秒,那么这台主机宕机了,另一台主机接管(vip漂移到从机上)时,因为同步延时大,用户刚才发表的文章还没复制过来,于是用户又发表了一遍文章,当原来的master修复好后,由于I/O和SQL线程还处于开启状态,因此还会继续同步刚才没有同步复制完的数据,这时有可能把用户新发表的文章更改掉。这里所以采用master/slave架构。在这种架构中,故障切换以后,采取手动操作的方式与新的master进行复制。 简单环境如下: master 192.168.0.100 slave 192.168.0.101 VIP 192.168.0

如何建立主从服务器

空扰寡人 提交于 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:48
1.mysql主从备份基本原理 mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器已经记录到的二进制日志,获取日志信息更新。通过设置在 Master 上的 binlog ,使其处于打开状态; Slave 通过一个 I/O 线程从 Master 上读取 binlog ,然后传输到 Slave 的中继日志中,然后使用 SQL 线程读取中继日志,并应用到自身数据库中,从而实现主从数据同步功能。 前提:mysql数据库主从数据库的版本最好一样,小版本编码不一样也可以,比如:5.7.20备份到5.7.11。 2.主数据库迁移 在做数据库主从备份之前,首先要确定需要备份的具体数据库,若该数据库为新建数据库,只有表结构,可导出主数据库的sql脚本,导入到从数据库中执行,使主数据库与从数据库的结构相同。 若该数据库已经存在存储信息,则需要锁定主数据库,暂时不让任何程序操作数据库,导出主数据库sql脚本,从数据库执行sql脚本,保证在做主从备份之前,主从数据库的结构,存储信息一致。也可采用Navicat Premium等数据库管理工具,直接做数据传输操作。如图: 3

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

mysql双主互备

拈花ヽ惹草 提交于 2020-01-01 01:47:44
mysql主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave),备服务器从主服务器同步数据,完成数据的备份。 【异步同步】 前提:2台服务器,主 192.168.1.101 备 192.168.1.102 1.首先主 备 服务的mysql配置的server的id必须不同,server_id是为了标识binlog,防止同步死循环。 #服务器ID,同个集群必须不同 server_id=1 #端口 port=63751 skip-name-resolve #binlog 过期时间,超过3天未修改的清除 expire_logs_days = 3 #binlog 的名称 log-bin=mysql-bin.log #同步的库排除mysql binlog-ignore-db=mysql #同步的库排除mysql replicate-ignore-db=mysql slave-skip-errors=all #id 的自增量 auto_increment_increment=2 #id 的开始 auto_increment_offset=1 #最大连接数 max_connections=1000 #编码 collation-server=utf8_unicode_ci init-connect=

mysql

╄→尐↘猪︶ㄣ 提交于 2020-01-01 01:47:02
tar压缩包安装 #查询mysql rpm -qa|grep mysql rpm -qa|grep -i mysql #删除 rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64 find / -name mysql yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 #mysql安装 1.解压压缩包 tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/software/ 2.修改文件夹名字 mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql 3.检查并创建用户和用户组 cat /etc/group | grep mysql cat /etc/passwd |grep mysql groupadd mysql useradd -r -g mysql mysql 4.创建data文件夹 mkdir data 5.授权目录和用户 chown -R mysql:mysql mysql/ chmod -R 755 mysql/ 6.安装并初始化 执行下面命令之前去/etc/目录下查看是否有my.cnf配置文件,如果有,删除或者修改名字备份起来