mysql主主同步

MySQL主主同步

匿名 (未验证) 提交于 2019-12-02 22:02:20
一、环境 ? ? 机器A:192.168.31.152 ? ? 机器B:192.168.31.140 ? ? 系统:Ubuntu 16.04 ? ? 数据库:MySQL 5.7.22 二、Master配置 ? ? 1、机器A-Master配置 ? ? 1.1、修改配置文件 1.2、配置 ? ? 2、机器B-Master配置 2.1、修改配置文件 ? 2.2、配置 三、Slave配置 ? ? 1、机器A-Slave配置 #查看作为从节点的状态信息 由于此时从节点还没有启动,Slave_IO_State的值为空,Slave_IO_Running和Slave_SQL_Running线程为No表示也没有运行,然后启动Slave: 2、机器B-Slave配置 由于此时从节点还没有启动,Slave_IO_State的值为空,Slave_IO_Running和Slave_SQL_Running线程为No表示也没有运行,然后启动Slave: 四、验证 ? ? 1、在机器A上登录MySQL,并创建数据库sync_test: 创建user表: 插入一条数据: 查询结果: ? ? 2、在机器B上登录MySQL,验证同步结果: ? ? 查询数据库列表: 查询表列表: 查询数据: 五、多台(大于等于三台)主主同步: 前面说的是2台MySQL服务器,你也可以扩展到多台,实现方法类似? A -> D -> C-

MySQL主从同步与主主同步

匿名 (未验证) 提交于 2019-12-02 22:02:20
MySQL复制: 复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循坏,这些日志可以记录发送到从服务器的更新。当一个从服务器 连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知的更新。 需注意的是: (1)mysql支持哪些复制 a.基于语句的复制:在主服务器上执行的sql语句,在从服务器上执行同样的语句。mysql默认采用基于语句的复制,效率边角高。一旦发现没法精确复制时,会自动选着基于行的复制。 (2)mysql复制解决的问题 注意几点: log里;SQL线程负责从relay log日志里读出binlog内容,并更新到slave的数据库里,这样就能保证slave数据和 master数据保持一致了。 Mysql复制的流程图如下: 如上图所示: dump process。Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。 SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据

MYSQL双主模式,触发器(trigger)不可见问题

匿名 (未验证) 提交于 2019-12-02 22:02:20
MYSQL版本信息: Your MySQL connection id is 71851 Server version : 5.7 . 24 - log MySQL Community Server ( GPL ) 昨晚解决一个紧急问题,计划用MYSQL的触发器简单做两表的数据同步。 单机模式创建的触发器(trigger)可正常看到,在双主模式下执行SQL命令创建的触发器在Navicat下看不到,但是用show trigger可以看到。 在双主模式下,函数在Navicat下也是存在一些问题。 关于双主模式下trigger的详细描述 https://dev.mysql.com/doc/refman/5.7/en/replication-features-triggers.html 转载请标明出处: MYSQL双主模式,触发器(trigger)不可见问题 文章来源: MYSQL双主模式,触发器(trigger)不可见问题

MySQL集群搭建--多主模式

匿名 (未验证) 提交于 2019-12-02 21:59:42
MySQL集群搭建--多主模式 本文使用的是Galera搭建的MYSQL集群,实现的是每个MYSQL都是主服务器,不存在主从之分。 环境: 三台mysql5.7服务器。 安装mysql集群: 安装前准备: # echo ‘192.168.1.2 mysql1’ >>/etc/hosts # echo ‘192.168.1.4 mysql2’>>/etc/hosts # echo ‘192.168.1.7 mysql3’ >>/etc/hosts # echo 'net.ipv4.tcp_tw_recycle = 1' >>/etc/sysctl.conf # echo 'net.ipv4.tcp_tw_recycle = 1' >>/etc/sysctl.conf # sysctl -p 常规安装mysql5.7步骤(集群不可以使用这个方法): 先从官网下载一个mysql5.7的捆绑包,然后解压。 # tar -xvf mysql-5.7.22-1.el6.x86_64.rpm-bundle.tar # yum -y install mysql-community-common-5.7.22-1.el6.x86_64.rpm # yum -y install mysql-community-libs-5.7.22-1.el6.x86_64.rpm # yum -y install

MySQL主主同步方案

China☆狼群 提交于 2019-12-02 09:14:22
MySQL主主+Keepalived MySQL+DRBD+Heartbeat 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主主方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加mysql入口,增加高可用。不过多主需要考虑自增长ID问题,这个需要特别设置配置文件,比如双主,可以使用奇偶,总之,主之间设置自增长ID相互不冲突就能完美解决自增长ID冲突问题。 主主方案实现思路 1、 两台mysql都可读写,互为主备。默认只使用一台masterA负责数据的写入,另一台masterB备用处于备用状态; 2、 masterA是masterB的主库,masterB又是masterA的主库,它们互为主从; 3、 两台主库之间做高可用,可以采用keepalived等方案,使用VIP对外提供服务; 4、所有提供服务的从服务器与masterB进行主从同步(双主多从); 5、建议采用高可用策略的时候,masterA或masterB均不因宕机恢复后而抢占VIP(非抢占模式); 这样做可以在一定程度上保证主库的高可用,在一台主库down掉之后,可以在极短的时间内切换到另一台主库上,尽可能减少主库宕机对业务造成的影响,减少了主从同步给生产主库带来的压力; 但是也有几个不足的地方: masterB可能会一直处于空闲状态

mysql多实例双主部署

萝らか妹 提交于 2019-12-02 02:41:18
本文引自公司技术文档,仅作为记录。 背景 有的时候需要进行数据库环境的隔离,以及节省服务器资源一台mysql安装多个数据库实例,一个实例下构建多个数据库​ 安装mysql yum -y install ncurses-devel cmake wget gcc gcc-c++ &&cd /usr/local/src && wget http://192.168.1.173:8000/mysql-5.6.23.tar.gz &&groupadd mysql && useradd mysql -g mysql ​在mysql解压包目录下,执行如下编译安装脚本:cd /usr/local/src &&rm -rf mysql-5.6.23 &&tar -zxvf mysql-5.6.23.tar.gz && cd mysql-5.6.23 &&rm -rf /etc/my.cnf /usr/local/mysql &&mkdir -p /usr/local/mysql /usr/local/mysql/mysql_data &&rm -rf CMakeCache.txt &&cmake . \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/usr/local/mysql/mysql_data \-DDEFAULT

MySQL主主同步方案

不羁的心 提交于 2019-12-01 19:52:19
MySQL 主主同步方案 l MySQL 主主 +Keepalived l MySQL+DRBD+Heartbeat 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用 mysql 主 主 方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加 mysql 入口,增加高可用。 不过多主需要考虑自增长 ID 问题,这个需要特别设置配置文件,比如双主,可以使用奇偶 ,总之,主之间设置自增长 ID 相互不冲突就能完美解决自增长 ID 冲突问题。 主主方案实现思路 1、 两台 mysql 都可读写,互为主备 。 默认只使用一台 masterA 负责数据的写入,另一台 masterB 备用 处于备用状态 ; 2、 masterA 是 masterB 的主库, masterB 又是 masterA 的主库,它们互为主从; 3、 两台主库之间做高可用 , 可以采用 keepalived 等方案 , 使用 VIP 对外提供服务; 4、 所有提供服务的从服务器与 masterB 进行主从同步(双主多从) ; 5、 建议采用高可用策略的时候, masterA 或 masterB 均不因宕机恢复后而抢占 VIP (非抢占模式); 这样做可以在一定程度上保证主库的高可用 , 在一台主库 down 掉之后 ,

Mycat读写分离(一主一从)

耗尽温柔 提交于 2019-12-01 19:33:22
Mycat读写分离(一主一从) 我们一共使用2个虚拟机,每个机器的作用如下: 主机名 IP 地址 任务角色 数据库 node1 192.168.1.121 Mycat, master MySQL node2 192.168.1.122 slave MySQL Mysql主服务器配置 第一步:修改/etc/my.cnf文件: 在[mysqld]段下添加: datadir=/var/lib/mysql 默认数据存储目录 server-id=1 主机唯一id log-bin=/var/lib/mysql/mysqlbin 启用二进制日志 log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid binlog-do-db=boot_security 设置需要复制的数据库 binlog-ignore-db=mysql 设置不要复制的数据库 binlog_format=STATEMENT 设置logbin格式 第二步:重启mysql服务 systemctl mysqld restart 第三步:建立帐户并授权slave mysql> GRANT REPLICATION SLAVE ON *.* TO 'sendcode'@'%' IDENTIFIED BY '123456'; #一般不用root帐号,“%

程序员面试中要注意什么 MySQL数据库表如何设计

▼魔方 西西 提交于 2019-12-01 16:26:25
序员面试中要注意什么?MySQL数据库表如何设计?如果要选择一门程序员必备的技能,那答案无疑是数据库,而MySQL是首选。很多企业在面试过程中会提问MySQL数据库表设计要注意什么,接下来千锋就给大家讲解一下。 MySQL相较于MSSQL SERVER和Oracle,是一款功能强大的小型数据库,能很好的满足千万级数据量的项目需要。注意,MySQL本身是没有可视化界面的,在Windows系统中你可以通过dos命令进行简单的连接和查看,在Linux系统下可以通过MySQL的命令进行连接查看。 MySQL支持很多种不同的数据类型,并且选择正确的数据类型对于获得高性能至关重要。在设计MySQL表时,你需要注意五点: 1、一定要设计主键 主键,又叫主关键字,用来唯一地标识表中的某一条记录。它能保证实体的完整性,加快数据库的操作速度,这一点很重要。主键使用自增最佳,这样每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如果不是自增主键,那么可能会在中间插入,就会引发页的分裂,产生很多表碎片。 2、字段命名最好避开保留字 在给字段命名的时候,要尽量避开关键字,以免出了问题而不好查找。虽然在以关键字命名的字段上加''可以不再报错,但保险起见,就不要这么设计。 3、表名长度尽可能短 表名称不要太长,Oracle限制字符为30个,如果有转数据库的需要

MySQL主主+Keepalived实现高可用

[亡魂溺海] 提交于 2019-12-01 15:32:47
在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用 mysql 主 主 方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动。因此,如果是双主或者多主,就会增加 mysql 入口,增加高可用。 不过多主需要考虑自增长 ID 问题,这个需要特别设置配置文件,比如双主,可以使用奇偶 , 总之,主之间设置自增长 ID 相互不冲突就能完美解决自增长 ID 冲突问题 主主方案实现思路 1、 两台 mysql 都可读写,互为主备 。 默认只使用一台 masterA 负责数据的写入,另一台 masterB 备用 处于备用状态 ; 2、 masterA 是 masterB 的主库, masterB 又是 masterA 的主库,它们互为主从; 3、 两台主库之间做高可用 , 可以采用 keepalived 等方案 , 使用 VIP 对外提供服务; 4 、 所有提供服务的从服务器与 masterB 进行主从同步(双主多从) ; 5 、 建议采用高可用策略的时候, masterA 或 masterB 均不因宕机恢复后而抢占 VIP (非抢占模式); 这样做可以在一定程度上保证主库的高可用 , 在一台主库 down 掉之后 , 可以在极短的时间内切换到另一台主库上 , 尽可能减少主库宕机对业务造成的影响,减少了主从同步给 生产 主库带来的压力; 实验步骤: