mysql 主主结构_高性能mysql主主架构

(3)配置参数说明

server-id:ID值唯一的标识了复制群集中的主从服务器,因此它们必须各不相同。master_id必须为1到232–1之间的一个正整数值,slave_id值必须为2到232–1之间的一个正整数值。

log-bin:表示打开binlog,打开该选项才可以通过I/O写到Slave的relay-log,也是可以进行replication的前提;

binlog-do-db:表示需要记录进制日志的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

binlog-ignore-db:表示不需要记录二进制日志的数据库。如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项

replicate-do-db:表示需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项

replicate-ignore-db=mysql:表示不需要同步的数据库,如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db=mysql选项

log-slave-updates:配置从库上的更新操作是否写入二进制文件,如果这台从库,还要做其他从库的主库,那么就需要打这个参数,以便从库的从库能够进行日志同步

slave-skip-errors:在复制过程,由于各种原因导致binlog中的sql出错,默认情况下,从库会停止复制,要用户介入。可以设置Slave-skip-errors来定义错误号,如果复制过程中遇到的错误号是定义的错误号,便可以跳过。如果从库是用来做备份,设置这个参数会存在数据不一致,不要使用。如果是分担主库的查询压力,可以考虑。

sync_binlog=1 or N:sync_binlog的默认值是0,这种模式下,MySQL不会同步到磁盘中去。这样的话,MySQL依赖操作系统来刷新二进制日志binary log,就像操作系统刷其他文件的机制一样。因此如果操作系统或机器(不仅仅是MySQL服务器)崩溃,有可能binlog中最后的语句丢失了。

要想防止这种情况,你可以使用sync_binlog全局变量,使binlog在每N次binlog写入后与硬盘同步。当sync_binlog变量设置为1是最安全的,因为在crash崩溃的情况下,你的二进制日志binary log只有可能丢失最多一个语句或者一个事务。但是,这也是最慢的一种方式(除非磁盘有使用带蓄电池后备电源的缓存cache,使得同步到磁盘的操作非常快)。

即使sync_binlog设置为1,出现崩溃时,也有可能表内容和binlog内容之间存在不一致性。

auto_increment_offset和auto_increment_increment:auto_increment_increment和auto_increment_offset用于主-主服务器(master-to-master)复制,并可以用来控制auto_increment列的操作。两个变量均可以设置为全局或局部变量,并且假定每个值都可以为1到65,535之间的整数值。将其中一个变量设置为0会使该变量为1。

这两个变量影响auto_increment列的方式:auto_increment_increment控制列中的值的增量值,auto_increment_offset确定auto_increment列值的起点。

如果auto_increment_offset的值大于auto_increment_increment的值,则auto_increment_offset的值被忽略。

(4)服务器A和服务器B分别启动mysql服务

服务器A:

[root@shenma ~]# service mysqld restart

Shutting down MySQL..... SUCCESS!

Starting MySQL......................... SUCCESS!

服务器B:

[root@shenma1 ~]# service mysqld restart

Shutting down MySQL..... SUCCESS!

Starting MySQL........... SUCCESS!

(5)分别查看主备服务器状态

服务器A:

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.03 sec)

注:这里锁表的目的是为了生产环境中不让进新的数据,好让从服务器定位同步位置。同步完成后,记得解锁

mysql>unlock tables;

mysql> show master status \G;

*************************** 1. row ***************************

File: mysql-bin-1.000001

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.00 sec)

ERROR:

No query specified

服务器B:

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.07 sec)

mysql> show master status\G

*************************** 1. row ***************************

File: mysql-bin-2.000001

Position: 120

Binlog_Do_DB:

Binlog_Ignore_DB:

Executed_Gtid_Set:

1 row in set (0.07 sec)

(6)分别在服务器A、B上用change master语句指定同步位置

服务器A:

mysql> change master to

-> master_host='192.168.0.108',

-> master_user='repluser',

-> master_password='123456',

-> master_log_file='mysql-bin-2.000001',

-> master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.84 sec)

服务器B:

mysql> change master to

-> master_host='192.168.0.105',

-> master_user='repluser',

-> master_password='123456',

-> master_log_file='mysql-bin-1.000001',

-> master_log_pos=120;

Query OK, 0 rows affected, 2 warnings (0.11 sec)

(7)分别在服务器A,B上启动从服务器线程

服务器A:

mysql> start slave;

Query OK, 0 rows affected (0.23 sec)

服务器B:

mysql> start slave;

Query OK, 0 rows affected (0.23 sec)

(8)分别在服务器A,B查看从服务器状态

服务器A:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.0.108

Master_User: repluser

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin-2.000001

Read_Master_Log_Pos: 120

Relay_Log_File: shenma-relay-bin.000002

Relay_Log_Pos: 285

Relay_Master_Log_File: mysql-bin-2.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

服务器B:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.0.105

Master_User: repluser

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin-1.000001

Read_Master_Log_Pos: 120

Relay_Log_File: shenma1-relay-bin.000002

Relay_Log_Pos: 285

Relay_Master_Log_File: mysql-bin-1.000001

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

(9)测试主主同步

服务器A:创建数据库wql

mysql> create database wql;

Query OK, 1 row affected (0.06 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

| wordpress          |

| wql                |

+--------------------+

6 rows in set (0.00 sec)

服务器B:查看是否同步wql数据库

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| test               |

| wql                |

+--------------------+

5 rows in set (0.07 sec)

(10)双向测试

服务器B:创建shenma库

mysql> create database shenma;

Query OK, 1 row affected (0.01 sec)

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| shenma             |

| test               |

| wql                |

+--------------------+

6 rows in set (0.00 sec)

服务器A:查看shenma库是否同步

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| shenma             |

| test               |

| wordpress          |

| wql                |

+--------------------+

7 rows in set (0.00 sec)务器的tmysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| shenma             |

| test               |

| wordpress          |

| wql                |

+--------------------+

7 rows in set (0.00 sec) ret gdf g

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/539671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决ios编译swift报错pcm was built: mtime changed

问题 编译ios工程失败时,其中的几个swift文件报以下错 /Users/tomes/code/project/xxx.swift File /Users/tomes/Library/Developer/Xcode/DerivedData/Spec-dgyhrnmgvfkjkqbboklnfgrudqip/Build/Products/Debug-iphoneos/xxxx.framework/Headers/xxxx.h has been…

AI工程师职业规划和学习路线完整版

AI工程师职业规划和学习路线完整版 如何成为一名机器学习算法工程师 成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能 力,这些能力中的每一项掌握起来都需要足够的努力和经验。而要成为一名合格的机器学习算法工程师&…

oracle 多个with as

主要看多个with的格式 [sql] view plaincopy WITH T3 AS ( SELECT T1.ID, T1.CODE1, T2.DESCRIPTION FROM TB_DATA T1, TB_CODE T2 WHERE T1.CODE1 T2.CODE ), T4 AS ( SELECT T1.ID, T1.CODE2, T2.DESCRIPTION FROM TB_DATA T1, TB_CODE T2 WHERE T1.C…

mysql主键 命中率_mysql主键问题

MySQL主键一. MySQL主键设计原则MySQL主键应当是对用户没有意义的。MySQL主键应该是单列的,以便提高连接和筛选操作的效率(当然复合主键是可以的,只是不建议)永远也不要更新MySQL主键MySQL主键不应包含动态变化的数据,如时间戳、创建时间列、…

Centos7常用命令[挂载文件系统]

Centos7常用命令[挂载文件系统]------------------------------------------------------------------------------# 挂载一个叫做hda2的盘-确定目录/mnt/hda2已经存在[rootlocalhost ~]# mount /dev/hda2 /mnt/hda2# 卸载一个叫做hda2的盘-先从挂载点/mnt/hda2退出[rootlocalh…

hadoop SecondNamenode

一、定义 * The Secondary Namenode is a helper to the primary Namenode. * The Secondary is responsible for supporting periodic checkpoints * of the HDFS metadata. The current design allows only one Secondary * Namenode per HDFs cluster. * The Secondary Nam…

Tensorflow Python API 翻译(sparse_ops)

作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 我的博客:请点击这里计划现将 tensorflow 中的 Python API 做一个学习,这样方便以后的学习。 原文链接该章介绍有关稀疏张量的API稀疏张量表示对于多维稀疏…

高性能mysql 小查询_高性能MySql进化论(十一):常见查询语句的优化

总结一下常见查询语句的优化方式1 COUNT1. COUNT的作用 COUNT(table.filed)统计的该字段非空值的记录行数 COUNT(*)或者是COUNT(not nullable field) 统计的是全表的行数如果要是统计全表记录数,COUNT(*)效率会比COUNT(not nullable fie…

ORA-01861: 文字与格式字符串不匹配

select to_date(20160401000000,yyyy-mm-dd) from dual; ---------- 报错:ORA-01861: 文字与格式字符串不匹配 原因:字符串20160401000000与要转换的格式 yyyy-mm-dd 格式不对。 20160401000000 是 yyyymmddhh24miss 格式的 -------- select to_da…

首席架构师徐海峰眼中的架构和出色的架构师

CSDN架构领域编辑采访了一些与会讲师,谈谈他们将在会上分享的内容、相关技术和程序人生,带你领略讲师风采。 本期我们采访的讲师是来自阅文集团首席架构师徐海峰,主要负责内容中心的网站架构和分布式存储、分布式计算工作。10年互联网开发经验…

java socket建立长连接_Java Web项目中使用Socket通信多线程、长连接的方法

很多时候在javaweb项目中我们需要用到Socket通信来实现功能,在web中使用Socket我们需要建立一个监听程序,在程序启动时,启动socket监听。我们的应用场景是在java项目中,需要外接如一个硬件设备,通过tcp通信&#xff0c…

hadoop-eclipse-plugin使用

下载hadoop安装包:http://www.carfab.com/apachesoftware/hadoop/common/hadoop-1.0.2/ 但是没有plugin,我到这个地方下载的:http://ishare.iask.sina.com.cn/f/23642243.html?fromlikecopy到你的eclipse_home的plugins下面。配置map/reduce…

hadoop eclipse plugin windows下载集合

收集了hadoop稳定版本的eclipse plugin for windows。资源分一律为0分 hadoop-eclipse-plugin-1.2.1.jar http://download.csdn.net/detail/zengmingen/9488180 hadoop-eclipse-plugin-2.2.0.jar http://download.csdn.net/detail/zengmingen/9488182 hadoop-eclipse-pl…

java 记事本界面_JAVA/GUI程序之记事本

自上半年JAVA课程结束后,再也没有看过JAVA了,最近不是很忙,又简单的看了看,本博客纯属记录学习过程,请大神们别笑,其中错误是难免的,毕竟是新手写的博客。下面就进入我们的正题吧,复…

104. Maximum Depth of Binary Tree

104. Maximum Depth of Binary Tree 题目 Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 解析 // Maximum Depth of Binary Tree class Solution { publ…

mapper-reducer word count 实例

统计一个文件里各单词的个数,假设这个文件很大。 原理如下图: 编写代码: WCMapper.java package zengmg.hadoop.mr.wordcount;import java.io.IOException;import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; …

java 远程调用url_使用Java的URL/HttpURLConnection进行远程调用(POST请求)

利用Java的HttpURLConnection进行远程url请求(调用远程接口)测试类:请求类型为json,以post方式请求,利用OutputStream写入数据实体类:public class User implementsSerializable {privateString name;privateString password;publicString ge…

LindDotNetCore~职责链模式的应用

回到目录 职责链模式 它是一种设计模块,主要将操作流程与具体操作解耦,让每个操作都可以设置自己的操作流程,这对于工作流应用是一个不错的选择! 下面是官方标准的定义:责任链模式是一种设计模式。在责任链模式里&…

MR程序的几种提交运行模式

MR程序的几种提交运行模式 本地模型运行 1/在windows的eclipse里面直接运行main方法,就会将job提交给本地执行器localjobrunner执行 ----配置path:D:\hadoop-2.7.2\bin ----配置hadoop_home:D:\hadoop-2.7.2 ----复制 hadoop.dll和winutil…

构件之法读书笔记04

我们前两周我们团队一起制作了一个大学生记账软件,但是我们没有对我们的软件进行测试,只要是这个功能能够顺利进行,我们就觉得OK。 其实,我认为我们的软件是有问题的,对于一些极限的操作能否完成,在各种环境…