mysql 架构最简单用得也最多的的是主从,主主等,主从有个切换的问题,从库不可写,在主库一定的情况下,切换挺麻烦,这里可以用主主模式。

但是主主也有个问题,就是两边同时写有可能冲突,主键冲突,虽然可以用奇偶主键方式来解决,或者程序来做,但是增加了麻烦,这里用被动模式下的主主就方便多了。

两台服务器设置

1.两台服务器都设置上二进制日志和relay日志:

#给服务器命名一个id

server_id=140

#声明二进制日志的文件为mysql-bin.xxx

log-bin=mysql-bin

#二进制日志的格式:mixed/row/statement

binlog_format=mixed

#主主复制时都需要配置relay-log

relay-log=mysql-relay

2.都给对付赋权并设置对付对方为自己的主

20:GRANT replication slave ON *.* to 'repl'@'10.0.67.19' identified by '123456';

19:change master to master_host='10.0.67.20', master_user='repl', master_password='123456',master_port=3306, master_log_file='mysql-bin.000004', master_log_pos=1318;

19:GRANT replication slave ON *.* to 'repl'@'10.0.67.20' identified by '123456';

20:change master to master_host='10.0.67.19', master_user='repl', master_password='123456',master_port=3306, master_log_file='mysql-bin.000004', master_log_pos=1318;

3.开启slave:

start slave

4.查看slave状态

show slave status\G

被动模式下的主主复制:

1.概念:是指2台服务器地位一样,但其中一台为只读,并且业务中也只写某1台服务器;

2.好处:如果供写入的服务器出了故障,能迅速的切换到从服务器,或者出于检修等目的,把写入功能切换到另一台服务器也比较方便;

3.实现:在只读服务器的my.cnf中加入如下配置:read-only=on;

同步冲突问题:

摘录:

1.主主复制下一定要注意避免的问题,同步冲突,例:

create table stu (

id int primary key auto_increment.

)......

2台mysql地位相等, 假如2个请求同时到达2台服务器,请求的A节点stu的id为1,请求的B节点stu的id为1,此时就产生了同步冲突的问题;

2.解决方案:

让A服务器的主键通过奇数增长,B服务器的主键通过偶数增长;

A服务器:

set global auto_increment_increment = 2;    //每次自增步长

set global auto_increment_offset = 1;           //初始自增的数字

set session auto_increment_increment = 2;

set session auto_increment_offset = 1;

B服务器:

set global auto_increment_increment = 2;

set global auto_increment_offset = 2;

set session auto_increment_increment=2;

set session auto_increment_offset = 2;

注:auto-increment-increment 和auto-increment-offset要写到配置文件中,防止下次重启后失效;

注:如果后期需要加服务器,这个办法就有限制了

方法:我们可以在业务逻辑上来解决,比如在oracle有sequence序列,序列每次访问生成递增/递减的数据,以redis为例,我们可以专门构建一个 global:userid,每次PHP插入Mysql前,先 incr->global:userid,得到一个不重复的userid;

mysql被动模式下的主主配置的更多相关文章

  1. MySQL之RPM安装说明及配置

    1.查看当前系统是否安装过Linux rpm -qa | grep -i mysql 未安装无任何输出:安装会打印对应mysql的rpm安装包. 2.准备安装包: MySQL-client-5.5.4 ...

  2. CentOS 6.5 下MySql主从、主主配置

    参考网站: http://blog.csdn.net/faye0412/article/details/6280761 http://blog.csdn.net/kk185800961/article ...

  3. mysql数据库主从及主主复制配置演示

    实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有2台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 实验拓 ...

  4. mysql主主复制(双主复制)配置步骤

    以前我们介绍的都是主从复制,这里给各位介绍一个双主复制了,下面都希望两个主服务器数据自动复制的话可参考一下此文章.   MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任何一台 ...

  5. mysql 主主复制(双主复制)+ 配置KEEPALIVED实现热备

    binlog-do-db和replicate-do-db表示需要同步的数据库 binlog-ignore-db和replicate-ignore-db表示不需要同步的数据库 云端服务器为master配 ...

  6. mysql传统主从、双主复制+keepalived配置步骤

    mysql主从.主主复制(双主复制)配置步骤 一:MySQL复制: MySQL复制简介: 将master服务器中主数据库的ddl和dml操作通过二进制日志传到slaves服务器上,然后在master服 ...

  7. mysql的主从配置以及主主配置

    基础环境 系统:linuxmysql版本:5.5主服务器IP:192.168.1.101从服务器IP:192.168.1.102 1.主服务器(master)要打开二进制日志2.从服务器(slave) ...

  8. MySQL 主主同步配置和主从配置步骤

    ★预备知识 : 1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服 ...

  9. MySQL Replication, 主从和双主配置

    MySQL Replication, 主从和双主配置 MySQL的Replication是一种多个MySQL的数据库做主从同步的方案,特点是异步,广泛用在各种对MySQL有更高性能,更高可靠性要求的场 ...

随机推荐

  1. scrapy中Selector的使用

    scrapy的Selector选择器其实也可以用来解析,今天主要总结下css和xpath的用法,其实我个人最喜欢用css 以慕课网嵩天老师教程中的一个网页为例,python123.io/ws/demo ...

  2. hdu6127

    hdu6127 题意 二维平面上存在一些点,每个点都有权值,任意两点组成的线段的权值为这两点权值的乘积,选定一条经过原点的直线,问怎样使得它经过的线段的权值之和最大. 分析 题目等价于用一条直线将平面 ...

  3. ganglia笔记:rrds目录

    因为原来的rrds目录挂载的盘不够用了,所以想修改一下目录,遇到权限的问题. 在一个owner为user的目录下面新建了./ganglia/rrds目录,并且./ganglia及其子文件夹都修改为ga ...

  4. 【DFS】Codeforces Round #402 (Div. 2) B. Weird Rounding

    暴搜 #include<cstdio> #include<algorithm> using namespace std; int n,K,Div=1,a[21],m,ans=1 ...

  5. 十. 图形界面(GUI)设计6.文本框和文本区

    在图形界面中,文本框和文本区是用于信息输入输出的组件. 文本框 文本框(JTextField)是界面中用于输入和输出一行文本的框.JTextField类用来建立文本框.与文本框相关的接口是Action ...

  6. React Native之ES5/ES6语法差异对照表

    很多React/React Native的初学者都被ES6的问题迷惑:各路大神都建议我们直接学习ES6的语法(class Foo extends React.Component),然而网上搜到的很多教 ...

  7. linux-文件中行按照出现次数多少排序

    cat sorttest | sort | uniq -c | sort -k1 sorttest内容如下:

  8. Ubuntu 14 中 VirtualBox发生错误Kernel driver not installed (rc=-1908)

    宿主系统是Ubuntu 14,在VirtualBox中安装 CentOS 6.5 时,提示如下错误: Kernel driver not installed (rc=-1908) 网友提供的解决方案: ...

  9. 如何提高码农产量,基于ASP.NET MVC的敏捷开发框架之自定义表单开发随笔四

    “厂长,上一次我们讲过了工作流的整体规划,今天我要动手做啦!我想先把工作流的自定义表单做出来.” “好的,以前我做这方面的东西,我给你设计了一份表结构,你先拿去看看.” “厂长,是不是没发完,怎么就一 ...

  10. [Android 新特性] 谷歌发布Android Studio开发工具1.0正式版(组图) 2014-12-09 09:35:40

    Android Studio是谷歌于13年I/O大会推出的Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的Androi ...