MYSQL 基于GTID的复制,MYSQLGTID复制彩民之家高手论

2019-09-20 06:10 来源:未知

start slave;

MYSQL 基于GTID的复制,MYSQLGTID复制

1.概述

从MYSQL5.6 开始,mysql开始支持GTID复制。

基于日志点复制的缺点:

从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致。

基于GTID复制:

1.从服务器会告诉主服务器已执行的事务的GTID值。

2.主库会告诉从哪些GTID事务没有被执行。

同一个事务在指定的从库执行一次。

什么是GTID

GTID即全局事务ID,器保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID.

GTID=source_id:transaction_id

source_id:是主库的server UUID,在数据目录的auto.cnf 文件中。

transaction_id: 从1开始的一个序列。

2.基于GTID复制的步骤

1.在主DB服务器上建立复制帐号。

和日志点是一样的。

2.配置主数据库服务器

bin_log =mysql-bin

server_id=1001

gtid_mode=on

enforce-gtid-consiste:强制事务一致性,保证事务的安全

  不能使用:

  1.create table 。。select

  2.在事务中使用create temporary table 建立临时表,使用关联更新事务表和非事务表。

log-slave-updates=on

在从服务器中记录从主服务器传过来的日志数据。

使用GTID 5.6 必须使用此参数,5.7可以不使用。

3.配置从服务器。

server_id=1002

relay_log=relay_log

gtid_mode=on

enforce-gtid-consistency

建议配置

read_only=on

保证从服务器数据安全性

master_info_reposistory=TABLE

relay_log_info_reposistory=TABLE

从服务器连接主服务器的信息和中继日志存放咱 master_info,和relay_log中。

4.初始化从服务器数据。

mysqldump --master-data=2 -single-transaction

xtarbackup –slave-info

记录备份时最后的事务GTID值。

导出数据

mysqldump --single-transaction --master-data=2 --triggers -routines --all-databases -uroot -p -P3308 >all2.sql

导入数据

mysql -uroot -p -P3309 < all2.sql

5.启动基于GTID的复制

change master to master-host=’主服务IP’,

master_user=’repl’,

master_password=’password’,

master_auto_position=1

change master to MASTER_HOST='192.168.1.106',
MASTER_PORT=3308,
MASTER_USER='repl',
MASTER_PASSWORD='repl',
master_auto_position=1;

 

start slave;

show slave status G;

彩民之家高手论坛 1

在启动slave时报错。

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

解决办法:

reset slave;重置slave

再启动 slave

start slave;

测试同步:

1.在主库创建一张表,插入记录。

2.在从库查询验证是否正确,经验证配置正确。

 

 

 

基于GTID的复制,MYSQLGTID复制 1.概述 从MYSQL5.6 开始,mysql开始支持GTID复制。 基于日志点复制的缺点: 从那个二进制日志的偏移量进行增...

从服务器连接主服务器的信息和中继日志存放咱 master_info,和relay_log中。

2.主库会告诉从哪些GTID事务没有被执行。

解决办法:

 

enforce-gtid-consistency

 

2.在从库查询验证是否正确,经验证配置正确。

修改 /etc/my.cnf

master_auto_position=1

 

gtid-mode=on

scp all.sql root@192.168.31.101:/jsaas 

show slave status G;

server_id=1002

 

master_password=’password’,

测试同步:

建议配置

 

保证从服务器数据安全性

2.基于GTID复制的步骤

GTID=source_id:transaction_id

 

 

后重启mysql 服务。

 

1.在主DB服务器上建立复制帐号。

 

grant all privileges  on *.* to repl@'192.168.31.%' identified by 'repl';

1.从服务器会告诉主服务器已执行的事务的GTID值。

从库导入数据

在主库执行命令

gtid-mode=on

 

 

同一个事务在指定的从库执行一次。

 

 

1.概述

create user repl@'192.168.31.%' identified by 'repl';

 

mysql -uroot -p  < all.sql

 

reset slave;重置slave

1.在主库创建一张表,插入记录。

 

 

5.启动基于GTID的复制

 

基于GTID复制:

 

master_info_repository=TABLE

mysqldump --single-transaction --master-data=2 --all-databases --triggers --routines --events -uroot -p  >all.sql

再启动 slave

transaction_id: 从1开始的一个序列。

什么是GTID

change master to master-host=’主服务IP’,

 @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty

 

 

 

 

GTID即全局事务ID,器保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID.

从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致。

 

  2.在事务中使用create temporary table 建立临时表,使用关联更新事务表和非事务表。

master_user=’repl’,

log_bin =on

从MYSQL5.6 开始,mysql开始支持GTID复制。

 

 

 

在启动slave时报错。

  1.create table 。。select

enforce_gtid_consistency:强制事务一致性,保证事务的安全

注意如果使用了基于事务点日志配置下面两种情况不能使用:

彩民之家高手论坛 2

source_id:是主库的server UUID,在数据目录的auto.cnf 文件中。

server_id=1001

ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository

4.初始化从服务器数据。

 

在命令行下执行命令:

relay_log_info_repository=TABLE

3.配置从服务器。

read_only=on

 

可以使用 scp 命令将数据从主库机器copy 到从库:

2.配置主数据库服务器

可能报错的情况:

start slave;

change master to MASTER_HOST='192.168.1.106',
MASTER_PORT=3308,
MASTER_USER='repl',
MASTER_PASSWORD='repl',
master_auto_position=1; 

MYSQL 基于GTID的复制,MYSQLGTID复制彩民之家高手论坛。从主库导出数据

基于日志点复制的缺点:

reset master;

log_bin=on

TAG标签:
版权声明:本文由彩民之家高手论坛发布于彩民之家高手论坛,转载请注明出处:MYSQL 基于GTID的复制,MYSQLGTID复制彩民之家高手论