MySQL 5.7 的多源复制
来源:互联网 发布:网络集线器价格 编辑:程序博客网 时间:2024/06/05 04:55
近日ORACLE发布几个新的功能在最新的Mysql5.7.2的版本上,由此有了此篇文章。大多数的改善是在数据库性能和复制相关的功能上,这个新版本会带给我们不可思议的效果。
在这篇文章里,我将要用一些简单的步奏来尝试了解这新的多源复制工作原理以及我们怎样进行自己的测试。需要说明的是,这还是一个开发版本,不是给生产环境准备的。因此这篇文章是打算给那些想了解此新功能的人,看看它是如何在应用中工作的,都是在临时环境中进行相关操作。
你要爪子
翻译于 15天前
0人顶
顶 翻译的不错哦!
其它翻译版本(1)什么是多源复制?
首先,我们需要清楚 multi-master 与multi-source 复制不是一样的. Multi-Master 复制通常是环形复制,你可以在任意主机上将数据复制给其他主机。
Multi-source 是不同的. MySQL在这个新版本中修复了一个复制限制 , 这限制是一个从站只能有一个主站. 这是一个在我们设计复制环境中的限制因素,也有一些极客使它正常工作了。但是现在有一个官方的解决办法了。所以。简单的说, Multi-Source 意味着一个从站能有一个以上主站. 现在, 像下图一样的复制环境是可能的:
这将帮助我们创建一些复制的层次结构,这在过去是不可能的。 举个例子,你可以 将一个从站放在你的办公室里。在办公室里从所有主站中复制数据传播到世界各地。
你要爪子
翻译于 15天前
1人顶
顶 翻译的不错哦!
它是怎么工作的呢?
现在我们有了通信渠道的概念,每一个通信渠道都是一个从服务器从主服务器获得2进制日志的链接。这意味着每个通信渠道都得有一个IO_THREAD .我们需要运行不同的 “CHANGE MASTER” 命令, 对于每一个主服务器。我们需要用到 “FOR CHANNEL”这个参数来提供通信链接的名字。
1
CHANGE MASTER MASTER_HOST=
'something'
, MASTER_USER=...
FOR
CHANNEL=
"name_of_channel"
;
很容易. 有一个单一的先决条件。从服务器需要在mysql5.6上配置安全功能,这意味着信息通常包含在主服务器上。信息或日志应该在一个表中,让我们开始配置吧
你要爪子
翻译于 15天前
2人顶
顶 翻译的不错哦!
来个例子!
首先你需要下载测试版的mysql。点这个链接:下载.
我们需要有一个从服务器和两个主服务器的沙箱环境. 我不会细节的说明怎样配置server_id, binary logs 和 replication users.我假设已经配置好了。 如果你不知道怎么做。你可以看这个链接
首先,我们在从服务器上实现事故安全功能。
1
master_info_repository=
TABLE
;
2
relay_log_info_repository=
TABLE
;
1
slave > change master
to
master_host=
"127.0.0.1"
, master_port=12047, master_user=
"msandbox"
,master_password=
"msandbox"
for
channel=
"master1"
;
2
slave > change master
to
master_host=
"127.0.0.1"
, master_port=12048, master_user=
"msandbox"
,master_password=
"msandbox"
for
channel=
"master2"
;
1
slave > start slave
for
channel=
"master1"
;
2
slave > start slave
for
channel=
"master2"
;
1
slave > show slave status\G
2
Empty
set
(0.00 sec)
01
slave > SHOW SLAVE STATUS
FOR
CHANNEL=
"master1"
\G
02
*************************** 1. row ***************************
03
Slave_IO_State: Waiting
for
master
to
send event
04
Master_Host: 127.0.0.1
05
Master_User: msandbox
06
Master_Port: 12047
07
Connect_Retry: 60
08
Master_Log_File: mysql-bin.000002
09
Read_Master_Log_Pos: 232
10
Relay_Log_File: squeeze-relay-bin-master1.000003
11
Relay_Log_Pos: 395
12
Relay_Master_Log_File: mysql-bin.000002
13
Slave_IO_Running: Yes
14
Slave_SQL_Running: Yes
15
[...]
1
slave > SHOW PROCESSLIST;
2
+
----+-------------+-----------------------------------------------------------------------------+
3
| Id |
User
| State |
4
+
----+-------------+-----------------------------------------------------------------------------+
5
| 2 | system
user
| Waiting
for
master
to
send event |
6
| 3 | system
user
| Slave has
read
all
relay log; waiting
for
the slave I/O thread
to
update
it |
7
| 4 | system
user
| Waiting
for
master
to
send event |
8
| 5 | system
user
| Slave has
read
all
relay log; waiting
for
the slave I/O thread
to
update
it |
9
+
----+-------------+-----------------------------------------------------------------------------+
1
master1 >
create
database
master1;
2
master2 >
create
database
master2;
3
slave > show databases
like
'master%'
;
4
+
--------------------+
5
|
Database
(master%) |
6
+
--------------------+
7
| master1 |
8
| master2 |
9
+
--------------------+
正常工作了。看起来很简单!
你要爪子
翻译于 15天前
1人顶
顶 翻译的不错哦!
结论
这个新的multi-source功能使在过去需要一些复杂操作创建的复制环境变得简单了。当然,你应用程序可以考虑这个新的特性设计和开发,使用 multi-master, multi-source都需要特别注意,不要把你的数据都弄乱了。
在每一个新的版本中,mysql的复制功能给我们更多的配置,性能和设计的可能性。所有这些新功能都可以结合起来。在你新(老)的功能中增加复制功能,你的复制环境会更加出色。举个例子:你可以配置GTID 可以用 multi-threaded slave per schema或 intra-database.
- MySQL 5.7 的多源复制
- MySQL 5.7 的多源复制
- MySQL 5.7 的多源复制
- mysql 5.7的多源复制搭建
- MySQL 5.7 的多源复制
- 【数据库】MySQL 5.7 的多源复制
- MySQL 5.7的多源复制
- Mysql 5.7多源复制
- MySQL 5.7.9的多源复制
- MySQL 5.7多源复制功能的应用
- mysql多源复制
- MySQL多源复制
- MySQL 5.7多源复制实践
- mysql主从复制GTID binglog 多源复制 多线程复制
- MySQL(7)-多源复制
- mysql 5.7传统复制到gtid复制的在线切换
- 性能提升利器:MySQL 5.7多源主从复制的独特性
- MySQL 5.7的半同步复制
- apache允许浏览特定的虚拟目录
- 转载 跑跑的漂移技术
- 辨认N73行水货
- 一句话经典2007版
- 利用Apache实现禁止图片盗链
- MySQL 5.7 的多源复制
- 详解8步高级操作!让笔记本速度快1…
- 老婆看过来
- MYSQL远程连接速度慢的解决方法
- 吵架综合技巧研究
- 文本区域控件中如何保留回车和空格…
- 大文件上传
- 简短的文史经典
- php跳转页面