什么是GTID?GTID就是全局事务ID(global transaction identifier ),最初由google实现,官方MySQL在5.6才加入该功能。GTID实际上是由UUID+TID组成的。其中UUID是一个MySQL实例的唯一标识。TID代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。什么是多源复制?多源复制意味着一个服务器能从多个从服务器上复制。这是MariaDB 10.0的一个新特性。实验系统:CentOS 6.6_x86_64实验前提:防火墙和selinux都关闭实验说明:本实验共有3台主机,IP分配如拓扑实验软件:mariadb-10.0.20实验拓扑:使用XtraBackup备份恢复MariaDB数据库 http://www.linuxidc.com/Linux/2015-07/120296.htm在 CentOS/RHEL/Scientific Linux 6 下安装 LAMP (Apache with MariaDB and PHP) http://www.linuxidc.com/Linux/2013-07/86755.htmMariaDB10.0实例部署和多源复制配置 http://www.linuxidc.com/Linux/2015-03/115368.htmMariaDB Proxy读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htmLinux下编译安装配置MariaDB数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htmCentOS系统使用yum安装MariaDB数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm安装MariaDB与MySQL并存 http://www.linuxidc.com/Linux/2014-11/109047.htmUbuntu 上如何将 MySQL 5.5 数据库迁移到 MariaDB 10 http://www.linuxidc.com/Linux/2014-11/109471.htm
[翻译]Ubuntu 14.04 (Trusty) Server 安装 MariaDB http://www.linuxidc.com/Linux/2014-12/110048htm一、准备工作1.修改三台主机的名字,对应如下:2.三台主机配置相同的hosts文件为如下内容:3.安装mariadb:tar xf mariadb-10.0.20-linux-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mariadb-10.0.20-linux-x86_64 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 on4.修改配置文件:vim /etc/my.cnf
--------------------------------->
[mysqld]
datadir = /mydata/data5.创建虚拟机镜像(可选): 为了试验不受干扰,做完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=mysql12.将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=mysql34.在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 STATUSG
*************************** 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
SHOW GLOBAL VARIABLES LIKE "%gtid%";
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| gtid_binlog_pos | 0-1-3 |
| gtid_binlog_state | 0-1-3 |
| gtid_current_pos | 0-1-3 |
| gtid_domain_id | 0 |
| gtid_ignore_duplicates | OFF |
| gtid_slave_pos | 0-1-3 |
| gtid_strict_mode | OFF |
+------------------------+-------+7.测试,在master节点创建数据库,并在其他两个节点进行查看:CREATE DATABASE jjj; //主节点创建数据库
SHOW DATABASES; //从节点查看可以看到两台从服务器都可以正常复制主服务器的数据了,试验成功。下面进行多源复制的实验,我将所有主机恢复虚拟快照至原始状态。
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-08/121048p2.htm
如何在 Redis 实现 Lua 脚本事务?ORA-12154: TNS: 无法解析指定的连接标识符 解决相关资讯 MariaDB多源复制 MariaDB的GTID复制
- MariaDB多源复制环境搭建(多主一 (今 16:54)
| - MariaDB10.0实例部署和多源复制配 (03/23/2015 19:39:28)
|
本文评论 查看全部评论 (0)