返回顶部
首页 > 资讯 > 数据库 >Mysql怎么增加节点
  • 528
分享到

Mysql怎么增加节点

2024-04-02 19:04:59 528人浏览 泡泡鱼
摘要

本篇内容介绍了“Mysql怎么增加节点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们知道,一组优秀的集

本篇内容介绍了“Mysql怎么增加节点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们知道,一组优秀的集群环境有一个很必要的特性,那就是可拓展性。Group Replication的拓展性怎么样呢?我们设定如下几个场景,来看看Group Replicaiton是否方便拓展:
总执行的事务量较少,而且所有的binlog都保留完整。
总事务量较少,binlog只保留部分。
总事务量很大,binlog保留完整。
总事务量很大,binlog只保留部分。
我们在对以上几种场景进行分析
总事务量较少,binlog保留完整。那么我们可以直接应用所有binlog,来创建一个和现有环境相同的实例。
总事务量较少,binlog保留部分。此场景中binlog丢失,无法应用所有binlog来创建一个和现有环境相同的实例。那么我们要得到一个和现有环境相同的实例,只有复制一个现有环境中的实例,然后再将这个实例添加到集群。复制的方法我能想到的有如下几种:
mysqldump
xtrabackup
总事务量较多,binlog保留完整。我们可以和第一种环境一样,应用所有binlog来创建新实例。但是事务较多应用binlog需要非常多的时间。为了提高效率,我们还是采用复制实例的方式来创建新实例。
总事务较多,binlog只保留部分。这个场景和第二个场景差不多,我们也只能采用复制实例的方式来创建新的实例。

所以,除了第一个场景外,其它的最好还是备份前的的数据后,恢复到新的server上再开启同步,下面就做一下这个试验:


机器名        IP                        角色
qht131    172.17.61.131        primary  
qht132    172.17.61.132        secdnode1
qht133    172.17.61.133        secdnode2
qht134    172.17.61.134        secdnode3

1.检查当前mgr的状态:


mysql>  select * from perfORMance_schema.replication_group_members ;

±--------------------------±-------------------------------------±------------±------------±-------------+

| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |

±--------------------------±-------------------------------------±------------±------------±-------------+

| group_replication_applier | bb0dea82-58ed-11e8-94e5-000c29e8e89b | qht131      |        3306 | ONLINE       |

| group_replication_applier | bb0dea82-58ed-11e8-94e5-000c29e8e90b | qht132      |        3306 | ONLINE       |

| group_replication_applier | bb0dea82-58ed-11e8-94e5-000c29e8e91b | qht133      |        3306 | ONLINE       |

±--------------------------±-------------------------------------±------------±------------±-------------+
1
建立一个表做测试数据:


mysql> drop table  test_mgr;

Query OK, 0 rows affected (0.05 sec)

mysql> create table  test_mgr (c1 int(11) primary key);

Query OK, 0 rows affected (0.07 sec)

mysql> insert into test_mgr values(1);

Query OK, 1 row affected (0.01 sec)
1
将全库备份一下复制到目标新库:
[root@qht131 backup]# mysqldump -uroot -p --all-databases --triggers --routines --events --master-data=2 > dbdump.db
[root@qht131 backup]# scp dbdump.db 172.17.61.134:/u01/backup
1
备份之后再对数据库做一些操作:


mysql> insert into test_mgr values(2);

Query OK, 1 row affected (0.00 sec)

mysql>  insert into test_mgr values(3);

Query OK, 1 row affected (0.03 sec)

mysql> select * from  test_mgr;

±—+

| c1 |

±—+

|  1 |

|  2 |

|  3 |

±—+
1

2.qht134安装好数据库,将备份恢复过来:
[root@qht134 backup]# mysql -uroot -p < dbdump.db
3.配置my.cnf,配置文件注意server_id以及loose-group_replication_local_address和loose-group_replication_local_address。


[root@qht134 backup]# cat /etc/my.cnf

[client]

port = 3306

Socket = /u01/mysql/mysql.sock

[mysql]

no-auto-rehash

[mysqld]

socket = /u01/mysql/mysql.sock

character_set_server= utf8

init_connect= ‘SET NAMES utf8’

basedir= /usr/local/mysql

datadir= /u01/mysql

socket = /u01/mysql/mysql.sock

log-error= /u01/log/mysql/mysql_3306.err

pid-file= /u01/mysql/mysqld.pid

lower_case_table_names = 1

sql_mode= STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

secure-file-priv = /u01/backup

server-id=10004

log_bin = /u01/mysql/mysql_bin

#skip-grant-tables

#innodb_flush_log_at_trx_commit=1

#sync_binlog=1

#expire_logs_days=10

#max_binlog_size=1073741824

#autocommit=off

#long_query_time=15

#slow_query_log=on

log_slave_updates = ON

relay_log_info_repository = TABLE

master_info_repository = TABLE

transaction_write_set_extraction = XXHASH64

binlog_format = ROW

binlog_checksum = NONE

enforce_gtid_consistency = ON

gtid_mode = ON

loose-group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"

loose-group_replication_start_on_boot=off

loose-group_replication_local_address= "172.17.61.134:33060"

loose-group_replication_group_seeds= "172.17.61.131:33060,172.17.61.132:33060,172.17.61.133:33060,172.17.61.134:33060"

loose-group_replication_bootstrap_group= off
1
 重启数据库
1


[root@qht134 mysql]# service mysql start

Starting MySQL…                                           [  OK  ] 
1
4.修改原有节点的memeber信息:
在qht131,qht132,qht133以分别执行:


mysql>  set global group_replication_group_seeds=‘172.17.61.131:33060,172.17.61.132:33060,172.17.61.133:33060,172.17.61.134:33060’;

Query OK, 0 rows affected (0.02 sec)
1
5.在新节点上建立复制用户


mysql> set sql_log_bin=0;

Query OK, 0 rows affected (0.00 sec)

mysql>  create user mgruser@’%’ identified by ‘mgruser’;

ERROR 1396 (HY000): Operation CREATE USER failed for ‘mgruser’@’%'
1


mysql> set sql_log_bin=1;

Query OK, 0 rows affected (0.00 sec)
1
对了,复制用户的信息都已经从mysqldump中恢复了过来,所以就不用重新建立了。
如果新节点不是备份恢复过来的,则需要重新建立复制用户。
6.安装复制插件以及启动新的复制节点
  mysql> install plugin group_replication soname ‘group_replication.so’;  #先show plugins;检查一下有没有安装好复制插件,如已安装好的话则跳过此步骤


mysql> change master to

    -> master_user=‘mgruser’,

    -> master_passWord=‘mgruser’

    -> for channel ‘group_replication_recovery’;

Query OK, 0 rows affected, 2 warnings (0.04 sec)

mysql> start group_replication;

Query OK, 0 rows affected (3.40 sec)
1
7.查询点节状态:


mysql> select * from performance_schema.replication_group_members ;

±--------------------------±-------------------------------------±------------±------------±-------------+

| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |

±--------------------------±-------------------------------------±------------±------------±-------------+

| group_replication_applier | bb0dea82-58ed-11e8-94e5-000c29e8e89b | qht131      |        3306 | ONLINE       |

| group_replication_applier | bb0dea82-58ed-11e8-94e5-000c29e8e89c | qht134      |        3306 | ONLINE       |

| group_replication_applier | bb0dea82-58ed-11e8-94e5-000c29e8e90b | qht132      |        3306 | ONLINE       |

| group_replication_applier | bb0dea82-58ed-11e8-94e5-000c29e8e91b | qht133      |        3306 | ONLINE       |

±--------------------------±-------------------------------------±------------±------------±-------------+

4 rows in set (0.04 sec)
1
发现qht134已成功加入了复制群组。


mysql> select * from test_mgr;

±—+

| c1 |

±—+

|  1 |

|  2 |

|  3 |

±—+

3 rows in set (0.00 sec)
1
数据也同步到了最新的状态。
8.后续操作
为了下次qht131,qht132,qht133重启后的gr配置仍然有效,需要修改my.cnf的配置:
oose-group_replication_group_seeds= "172.17.61.131:33060,172.17.61.132:33060,172.17.61.133:33060,172.17.61.134:33060"
1
这样保证在重启数据库后,GR的配置是最新的。

“Mysql怎么增加节点”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql怎么增加节点

本文链接: https://lsjlt.com/news/59559.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mysql怎么增加节点
    本篇内容介绍了“Mysql怎么增加节点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!我们知道,一组优秀的集...
    99+
    2024-04-02
  • react怎么动态增加节点
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么动态增加节点?React-动态插入节点组件引入组件后,可以通过调用方式来插入显示组件 KmcDialog.showInstance = f...
    99+
    2023-05-14
    React
  • 12c RAC增加节点
    在上一篇文章《Oracle VM上实施Oracle 12cR2 RAC》,我们在Oracle VM虚拟化平台上创建了一个2节点的RAC集群。现在我们把2节点集群扩展到3节点集群,即新增一个节点3。 ...
    99+
    2024-04-02
  • Oracle 11G RAC 增加节点
    集群中增加节点大致分为 4 个步骤:前期准备阶段、新节点加入集群(安装 GI 软件)、新节点安装 DB 软件、给新节点分配实例。 一 . ...
    99+
    2024-04-02
  • 如何增加redis的节点
    增加redis节点的示例:通过add-node命令进行增加即可:cd /usr/local/redis/redis/src //进入redis目录./src/redis-cli --cluster add-node 172.26.237.8...
    99+
    2024-04-02
  • python增加xml文件节点
    from xml.etree.ElementTree import ElementTree,Element tree=ElementTree() tree.parse('D://myself.xml') #下面主要是在根目录里加一级目...
    99+
    2023-01-31
    节点 文件 python
  • Redis集群如何增加节点与删除节点
    这篇文章将为大家详细讲解有关Redis集群如何增加节点与删除节点,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  查看集群启动情况:ps -ef | grep redis...
    99+
    2024-04-02
  • jquery中如何增加子节点
    这篇文章主要讲解了“jquery中如何增加子节点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery中如何增加子节点”吧! ...
    99+
    2024-04-02
  • jquery如何增加兄弟节点
    这篇文章主要讲解了“jquery如何增加兄弟节点”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery如何增加兄弟节点”吧! ...
    99+
    2024-04-02
  • react如何给树增加节点
    这篇文章主要介绍“react如何给树增加节点”,在日常操作中,相信很多人在react如何给树增加节点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react如何给树增加节点”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-07-05
  • react如何动态增加节点
    本篇内容介绍了“react如何动态增加节点”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!react动态增加节点的方法:1、通过“KmcDia...
    99+
    2023-07-04
  • OpenResty + Lua 动态增加 Zuul 节点
    隐忧  在 Spring Cloud 微服务架构体系中,所有请求的前门的网关 Zuul 承担着请求转发的主要功能,对后端服务起着举足轻重的作用。当业务体量猛增之后得益于 Spring Cloud 的横向扩展能力,往往加节点、加机器就可以使得...
    99+
    2023-06-04
  • oracle12cR2如何增加节点删除节点挽救集群
    这篇文章主要介绍了oracle12cR2如何增加节点删除节点挽救集群,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数据库版本:[oracle...
    99+
    2024-04-02
  • hadoop集群增加节点要注意什么
    确保新节点具有与现有节点相同的配置和操作系统版本,以确保集群的一致性和稳定性。 在添加新节点之前,确保为新节点分配适当的资源...
    99+
    2024-03-05
    hadoop
  • redis动态增加节点的方法是什么
    Redis动态增加节点的方法有两种,分别是使用Redis Sentinel和使用Redis Cluster。1. 使用Redis S...
    99+
    2023-08-24
    redis
  • hadoop集群增加节点的方法是什么
    Hadoop集群增加节点的方法通常有以下几个步骤: 准备新节点:首先需要准备一台新的服务器作为新增节点,确保该服务器满足Hado...
    99+
    2024-03-05
    hadoop
  • RAC11G怎么添加节点
    本篇内容主要讲解“RAC11G怎么添加节点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“RAC11G怎么添加节点”吧! 1. ...
    99+
    2024-04-02
  • redis5集群扩容-增加主从节点
    回顾上节redis cluster集群入门已经搭建完成的集群节点 b3363a81c3c59d57143cd3323481259c044e66d2 192.168.8.196:5006@15006 slav...
    99+
    2024-04-02
  • mongodb 分片 缩减和增加 configsvr 节点
    分片新增configsvrMongoDB需要1或3个configsver实例,否则不能启动 1.从原配置服务(21000)导出config库并导入新的配置服务(21001,21002): ...
    99+
    2024-04-02
  • jquery如何在前面增加子节点
    这篇“jquery如何在前面增加子节点”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jqu...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作