【数据库集群】之一主一从

这篇具有很好参考价值的文章主要介绍了【数据库集群】之一主一从。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、mysql集群概念

集群架构设计的三个维度:可用性、扩展性、一致性
所谓mysql集群就是把多台数据库集成在一起提供数据库服务。
集群的目的:
负载均衡:解决高并发
高可用HA:服务可用性
远程备灾:数据有效性

对于数据库之上的业务层来说,基于 MySQL 的主从复制集群,单点写入 Master ,在 event 同步到 Slave 后,读逻辑可以从任何一个 Slave 读取数据,以读写分离的方式,大大降低 Master 的运行负载,同时提升了 Slave 的资源利用。

二、mysql集群环境配置实验

1、全新的服务器安装全新的数据库(可以在vm中克隆比较快,克隆的服务器要没有安装好数据库,实验环境:mysql80)

yum install mysql-community-server --downloadonly
find / -iname “mysql” 查找在哪个位置,在/var/cache/dnf/下

解释:从mysql官网下载rpm,yum下载,为了节约时间,可以只下载先不安装,然后把下载的安装包传到其他服务器去安装下一台数据库。

出现这些软件包
[root@localhost packages]# ll
total 59700
-rw-r--r--. 1 root root  3669387 Dec 17 01:27 mysql-community-client-8.0.35-1.el9.x86_64.rpm
-rw-r--r--. 1 root root  1429852 Dec 17 01:27 mysql-community-client-plugins-8.0.35-1.el9.x86_64.rpm
-rw-r--r--. 1 root root   570718 Dec 17 01:27 mysql-community-common-8.0.35-1.el9.x86_64.rpm
-rw-r--r--. 1 root root  2381873 Dec 17 01:28 mysql-community-icu-data-files-8.0.35-1.el9.x86_64.rpm
-rw-r--r--. 1 root root  1518324 Dec 17 01:28 mysql-community-libs-8.0.35-1.el9.x86_64.rpm
-rw-r--r--. 1 root root 51552173 Dec 17 01:29 mysql-community-server-8.0.35-1.el9.x86_64.rpm
[root@localhost packages]# pwd
/var/cache/dnf/mysql80-community-22d3d3ecd3d92106/packages

[root@localhost packages]# scp ./* root@192.168.85.134:~/

传到对方服务器去安装

[root@localhost packages]# yum install *.rpm 安装mysql

自此两台数据库安装完成。

2、配置域名解析

[root@localhost ~]# vim /etc/hosts
192.168.85.133 master
192.168.85.134 slave
[root@localhost ~]# scp /etc/hosts 192.168.85.134:/etc/hosts

3、一主一从服务器的配置:

一、主服务器的配置:

给主服务器创建库表,插入一点数据。

mysql> create database master;
mysql> create table master.master_table(
    -> name varchar(10));
mysql> insert into master.master_table values("111");

主服务器开启二进制日志并设置好id,后来用来在集群中区分数据库。

[root@localhost ~]# vim /etc/my.cnf
log_bin
server-id=1
[root@localhost ~]# systemctl restart mysqld

创建复制用户(从服务器要想从主服务器去拷贝数据是需要身份的):

mysql> create user ‘rep’@‘192.168.85.%’ identified by ‘Liang@123’;
mysql> grant replication slave,replication client on . to
‘rep’@‘192.168.85.%’;

备份Master数据库中的数据:

[root@localhost ~]# mysqldump -uroot -pLiang@123 --all-databases --single-transaction --source-data=2 --flush-logs > date +%F-mysql-all.sql
在这个备份的过程会产生新的数据,去模拟一下插入数据,,后面用日志备份。

二、从服务器的配置:

注意:关闭防火墙和selinux
在从服务器测试是否能连接到主服务器的数据库:

[root@localhost ~]# mysql -urep -pLiang@123 -h master
成功

设置数据库序号,在集群中区分数据库

[root@localhost ~]# vim /etc/my.cnf
log_bin
server-id=2
[root@localhost ~]# systemctl restart mysqld

手动同步数据:

mysql>set sql_log_bin=0 设置临时二进制文件不启用

mysql> source /root/2023-12-17-mysql-all.sql; 还原数据库在集群开始之前的数据

开始设置主服务:

mysql> change master to
master_host=‘master’,master_user=‘rep’,master_password=‘Liang@123’,master_log_file=‘localhost-bin.000003’,master_log_pos=157;

这条命令配置好后,从服务器就会主动向主服务器去拷贝新数据。

启动从设备:
mysql> start slave;

这个时候这个实验算是完成了,主服务的数据一旦发生改变,从服务器的数据库也会更着更新😁

查看启动状态:
mysql> show slave status\G;

     Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    都是yes就非常欧克。

4、一主一从服务器的配置(自动协商二进制数据的位置)

这种不需要手动去指定从服务器学习新增主服务器的二进制数据位置,而是自动协商。
跟上面的实验差不多。
区别就是:
主从服务器都需要启动二进制日志,服务器ID,GTID

vim /etc/my.cnf
log_bin
server-id=1
gtid_mode=ON
enforce_gtid_consistency=1
从服务器也是一样,只是修改哈server-id就行

然后在从服务器中修改这个
mysql> change master to
master_host='master',master_user='rep',master_password='Liang@123',master_auto_position=1;

mysql> start slave;
这个实验就完成了,跟上个实验差不多。文章来源地址https://www.toymoban.com/news/detail-789549.html

到了这里,关于【数据库集群】之一主一从的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL运维15-一主一从读写分离

    读写分离,是把数据库的读和写分开操作,以应对不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效的减轻单台数据库的压力。 MySQL的主从复制是基于二进制(binlog)实现的 说明1:当主服务器的MySQL执行了DML,DDL语句之后,会将数据的变更写入到

    2024年02月04日
    浏览(42)
  • MySQL - 读写分离、一主一从、双主双从

    读写分离 ,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。 MyCat实现读写分离的话,主要通过两个组件来实现: ​ readHost、writeHost 读写分离它的前提是基于主从复制 主

    2024年02月07日
    浏览(39)
  • Docker搭建MySQL8.0主从复制(一主一从)

    宿主机使用的版本为 19045 的win10专业版,MySQL使用的是8.0+,Docker容器使用Linux。 略 修改Docker默认安装路径 安装包自己就提供了修改安装路径的功能,CMD中运行: “Docker Desktop Installer.exe” install --installation-dir= --installation-dir=path : changes the default installation location ( C:Program Fil

    2024年01月25日
    浏览(42)
  • MyBatis查询数据库之一(概念+创建项目+基础交互)

    目录 1.MyBatis是什么? 2.为什么学习MyBatis? 3. 怎么学 MyBatis 4.第⼀个MyBatis查询 4.1 添加MyBatis框架支持 4.1.1老项目添加MyBatis 4.1.2 新项目添加MyBatis 4.2 配置连接字符串和MyBatis 4.2.1 配置连接字符串 4.2.2 配置 MyBatis 中的 XML 路径 5. 使用 MyBatis 的操作模式操作数据库 5.1 添加实体类

    2024年02月13日
    浏览(52)
  • quarkus数据库篇之一:比官方demo更简单的基础操作

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《quarkus数据库篇》系列是《quarkus实战》的子系列,目标是与大家一起在quarkus框架下完成常用的数据库操作,如配置、增删改查、事物等 本篇敢号称 比官方demo更简单 ,是因为官方关于操作数据库的

    2024年02月13日
    浏览(41)
  • 大数据NoSQL数据库HBase集群部署

    目录 1.  简介 2.  安装 1. HBase依赖Zookeeper、JDK、Hadoop(HDFS),请确保已经完成前面 2. 【node1执行】下载HBase安装包 3. 【node1执行】,修改配置文件,修改conf/hbase-env.sh文件 4. 【node1执行】,修改配置文件,修改conf/hbase-site.xml文件 5. 【node1执行】,修改配置文件,修改conf/regi

    2024年02月08日
    浏览(54)
  • Moebius数据库多活集群

    数据库是信息化的基石,支撑着整个业务系统,发挥着非常重要的作用,被喻为“IT的心脏”。因此,让数据库安全、稳定、高效地运行已经成为IT管理者必须要面对的问题。数据库在底层架构层面需要满足以下几点建设要求: 安全和可靠 : 不能因为服务器的软硬件故障导致

    2023年04月10日
    浏览(52)
  • 达梦数据库主备集群

    按实际业务需求,选择合适的服务器,准备  3 台服务器 ,一台主库服务器,一台备库服务器,一台监视器服务器,服务器参数建议如下: 硬件 要求 物理内存 =16 GB 交换区 Swap 空间=物理内存 /tmp大小 1000 MB 网络 物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡

    2024年01月16日
    浏览(39)
  • 大数据NoSQL数据库HBase集群部署——详细讲解~

    HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。 和Redis一样,HBase是一款KeyValue型存储的数据库。 不过和Redis设计方向不同 Redis设计为少量数据,超快检索 HBase设计为海量数据,快速检索 HBase在大数据领域应用十分广泛,现在我们来在node1、node2、node3上部署H

    2024年02月11日
    浏览(48)
  • 项目练习:构建读写分离的数据库集群

    目录 一、目标实现 二、项目准备 三、项目实施 1.配置基础环境 1.1修改主机名 1.2配置3台群集虚拟机的/etc/hosts文件 1.3.配置网卡 1.4.配置本地yum源 2.部署Mycat中间件服务 2.1安装KDJ环境 3.部署MariaDB主从数据库集群服务 3.1安装MariaDB服务 3.2初始化MariaDB数据库 3.3配置数据库集群主

    2024年02月02日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包