mysql切换到从节点_从库转换成PXC集群的节点

环境介绍:

mysql 5.7版本

PXC集群两个节点:

10.9.21.179

10.9.21.178

从节点:

10.9.21.115(普通主从,数据库软件为普通版本,非集群版本)

现在的目的是要把10.9.21.115转换成PXC集群的节点,采用IST增量同步的方式来减小对PXC主库的影响;

疑问:

1.PXC 物理备份,可以直接使用普通的数据库软件加载打开吗?

可以,我从PXC使用innobackex备份,然后使用不同版本的mysql可以打开

2.PXC软件可以作为从库来运行吗,也就是说pxc集群软件可以作为单点的数据库运行吗?

可以,安装pxc软件,可以作为单点的模式运行!所以再向已有PXC集群添加节点的时候,可以

直接安装PXC的软件作为从库,然后直接修改配置文件进行IST即可!

3.普通版本数据库物理备份,可以被PXC集群加载吗?

可以,没试验,但是肯定可以;因为pxc软件可以作为单点的普通的数据库来运行!

4.给集群添加节点,新加的节点的数据库软件必要要版本一模一样吗?比如说主库5.7.27

那么新加的 必须是5.7.27?小版本号可以不一样吗?

小版本号没要求(5.7即可),但是建议保持一样!

整体思路:

首先找个相对空闲的时间点(因为如果比较繁忙的话,gcache中可能无法保留IST需要所有binlog

+key 的写集,进而不能进行增量同步),然后stop slave,然后由于从库是普通的版本数据库,所以需要先把从库数据库软件卸载,然后安装上对应主库版本的PXC软件,然后根据从库应用到的gtid点中的xid,写进从库的grastate.dat中,然后启动从库,自动进行IST加入到集群中;

(如果是就是为了增加节点,可以直接给从库安装PXC软件,然后修改my.cnf,进行IST,来实现增加节点的目的)

具体操作:

1.选择空闲的时间,停掉主从复制;

stop slave ,

2.确认从库已经应用完了reley log,这个很关键,必须要准确!

多次执行show master status;看看是否还在变化如果不变化了,如果不变化了,那么执行

使用mysqlbinlog工具格式化下最后一个reley log,看看最后的xid是不是show master status

中的最大的,具体如下所示,reley log中的最后一个xid为24,show master status 显示的从库应用到的最大的xid也是24 ,说明从库确实把reley log应用完了;

[root@beijing-fuli-hadoop-04 mysqldata]# mysqlbinlog -vv relay-log.000002 >relay-log2

[root@beijing-fuli-hadoop-04 mysqldata]# tail -n 20 relay-log2

# at 4071897

#191023 21:43:37 server id 10921178 end_log_pos 4073716 CRC32 0x4346f78f Query thread_id=7 exec_time=0 error_code=0

SET TIMESTAMP=1571838217/*!*/;

/*!40000 ALTER TABLE `lam_case_customer_tel` ENABLE KEYS */

/*!*/;

# at 4072048

#191023 21:45:20 server id 10921178 end_log_pos 4073781 CRC32 0x135eee62 GTID last_committed=20 sequence_number=21 rbr_only=no

SET @@SESSION.GTID_NEXT= '

103581fc-0aa3-ee16-5dcf-a9ba4a682594:24'/*!*/;

# at 4072113

#191023 21:45:20 server id 10921178 end_log_pos 4073933 CRC32 0x7ed4c26b Query thread_id=7 exec_time=0 error_code=0

SET TIMESTAMP=1571838320/*!*/;

SET @@session.foreign_key_checks=1, @@session.unique_checks=1/*!*/;

SET @@session.sql_mode=1411383296/*!*/;

DROP TABLE `lam_case_customer_tel` /* generated by server */

/*!*/;

SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;

DELIMITER ;

# End of log file

/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

root@localhost : (none) 22:11:29>show master status;

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

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

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

| mysql-bin.000001 | 4072005 | | |

103581fc-0aa3-ee16-5dcf-a9ba4a682594:1-24 |

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

注意:一定要在relay-log文件中找到最后一个xid,因为只有relay-log才是原汁原味的主库的binlog,

才能找到最后执行的xid(gtid)值,因为通过主从异步复制同步过来的事务,在从库binlog文件中的xid值

是按着从库自己的事务ID来计算,所以一般是都是不一样的(99.9%情况下不一样)

3.关闭从库,卸载mysql软件,安装相应的PXC软件

3.1:关闭

[root@beijing-fuli-hadoop-04 mysqldata]# /etc/init.d/mysql stop

Stopping mysqld: [ OK ]

3.2:备份配置文件,也可以不用备份,因为当你卸载的时候,会自动备份成

my.cnf_backup-20191023-2226这样的命名规范的文件!

[root@beijing-fuli-hadoop-04 mysqldata]# cp /etc/my.cnf /etc/my.cnf_bak

3.3:卸载mysql软件

[root@beijing-fuli-hadoop-04 mysqldata]# yum remove Percona*

如果卸载PXC 使用:yum remove Percona-XtraDB*

3.4:安装PXC软件:

[root@beijing-fuli-hadoop-04 mysqldata]#yum install -y Percona-XtraDB-Cluster-server-56

4.编辑从库的grastate.dat文件

将uuid修改成主PXC集群的wsrep_cluster_state_uuid参数的值,seqno修改为前面从库relay-log中的最后一个XId的值;

root@localhost : share_cuishou 22:31:37>show status like 'wsrep_cluster_state_uuid';

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

| Variable_name | Value |

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

| wsrep_cluster_state_uuid | efca7e03-f55c-11e9-a230-5645b597da6b |

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

1 row in set (0.00 sec)

[root@beijing-fuli-hadoop-01 mysqldata]# cat grastate.dat

# GALERA saved state

version: 2.1

uuid: efca7e03-f55c-11e9-a230-5645b597da6b

seqno: 24

safe_to_bootstrap: 0

5.编辑从库的配置文件(my.cnf),添加上必要的PXC集群的参数

需要注意的是:

1).wsrep_cluster_address 写上主集群中的某个节点的地址(我习惯把集群上节点都写上)

2).wsrep_cluster_name 写上集群的名字

3)wsrep_sst_donor 为主PXC集群的某一个读节点(尽量减少对线上的影响)

6.启动数据库

[root@beijing-fuli-hadoop-04 mysqldata]# /etc/init.d/mysql start

7.验证数据库是否正常:

至此添加节点完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值