视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MariaDB的GTID复制和多源复制
2020-11-09 07:50:51 责编:小采
文档

GTID就是全局事务ID(global transaction identifier ),最初由google实现,官方MySQL在5.6才加入该功能。GTID实际上是由UUID+TID

什么是GTID?

GTID就是全局事务ID(global transaction identifier ),最初由google实现,官方MySQL在5.6才加入该功能。GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。

什么是多源复制?

多源复制意味着一个服务器能从多个从服务器上复制。这是MariaDB 10.0的一个新特性。

实验系统:CentOS 6.6_x86_

实验前提:防火墙和selinux都关闭

实验说明:本实验共有3台主机,IP分配如拓扑

实验软件:mariadb-10.0.20

实验拓扑:

使用XtraBackup备份恢复MariaDB数据库

在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP)

MariaDB10.0实例部署和多源复制配置

MariaDB Proxy读写分离的实现

Linux下编译安装配置MariaDB数据库的方法

CentOS系统使用yum安装MariaDB数据库

安装MariaDB与MySQL并存

Ubuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10

[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB

一、准备工作

1.修改三台主机的名字,对应如下:

2.三台主机配置相同的hosts文件为如下内容:

3.安装mariadb:

tar xf mariadb-10.0.20-linux-x86_.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mariadb-10.0.20-linux-x86_ mysql
mkdir -pv /mydata/data
useradd -r mysql
chown -R mysql.mysql /mydata/data/
cd mysql/
chown -R root.mysql .
scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
cp support-files/my-large.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

4.修改配置文件:

vim /etc/my.cnf
--------------------------------->
[mysqld]
datadir = /mydata/data

5.创建虚拟机镜像(可选):

 为了试验不受干扰,做完GTID试验我会将三台主机恢复至初始状态。

二、GTID复制

1.将mysql1配置为master:

[mysqld]
server-id = 1
binlog-format=ROW
log-bin=/mydata/data/master-bin
log-slave-updates=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-threads=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-host=mysql1

2.将mysql2配置为slave:

[mysqld]
server-id = 2
binlog-format=ROW
log-bin=/mydata/data/mysql-bin
log-slave-updates=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-threads=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-host=mysql2

  3.将mysql3配置为slave:

[mysqld]
server-id = 3
binlog-format=ROW
log-bin=/mydata/data/mysql-bin
log-slave-updates=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-threads=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-host=mysql3

4.在master节点创建复制用户:

service mysqld start
/usr/local/mysql/bin/mysql
-------------------------------------------->
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'jason'@'192.168.19.%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

5.在两台slave节点同时操作:

service mysqld start
/usr/local/mysql/bin/mysql
------------------------------------------->
CHANGE MASTER TO MASTER_HOST='mysql1',MASTER_USER='jason',MASTER_PASSWORD='123456',MASTER_USE_GTID=slave_pos;
START SLAVE;

6.在slave节点查看状态:

SHOW SLAVE STATUS\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: mysql1
Master_User: jason
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master-bin.000007
Read_Master_Log_Pos: 321
Relay_Log_File: mysql2-relay-bin.000002
Relay_Log_Pos: 613
Relay_Master_Log_File: master-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
...
Using_Gtid: Slave_Pos

下载本文
显示全文
专题