-
2021-11-07 19:49:49
MySQL是互联网最常用的开源数据库产品,平常开发大都使用单机服务。而实际生产中,往往数据量很大,且对数据安全性要求也很高。单机必然不能满足。因此生产环境中,必须要搭建一套MySQL主从复制的架构,同时可以基于一些工具实现高可用架构。然后可以在此基础上,基于一些中间件实现读写分离架构,最后如果数据量非常大,还可以实现分库分表架构。
单机--》主从复制(高可用,自动切换)--》读写分离--》分库分表
搭建主从集群
主从架构的好处:可以缓解数据存储及访问的压力。
1、数据安全,主服务增加了数据备份
2、读写分离,大部分业务场景都是读多写少,当读的请求远远高于写请求时,可以将读请求由从服务来分担。主从架构只是实现读写分离的一个基础,实现读写分离还需要一些中间件来支持,如:ShardingSphere
3、故障转移-高可用,当MySQL主服务宕机后,可以由一台从服务切换为主服务,继续提供数据读写功能。为了实现MySQL自动主从切换,还需要依靠其他的中间件,e.g. MMM、MHA、MGR。
一般项目中,如果数据库访问压力没有那么大,读写分离不是必须要做的,但,主从架构和高可用架构规则是必须要搭建的。
同步的原理
MySQL服务的主从架构一般都是通过binlog日志文件来进行。即在主服务上打开binlog记录每一步的数据库操作,然后从服务上会有一个IO线程,负责跟主服务建立一个TCP连接,请求主服务将binlog传输过来。这时,主库上会有一个IO dump线程,负责通过这个TCP连接把binlog日志传输给从库的IO线程。接着从服务的IO线程会把读取到的binlog日志数据写入自己的relay日志文件中。然后从服务上另外一个线程会读取relay日志里的内容,进行操作重演,达到还原数据的目的。
MySQL的binlog不光可以用于主从同步,还可以用于缓存数据同步等场景。e.g. Canal可以模拟一个slave节点,先MySQL发起binlog同步,然后将数据落地到Redis、Kafaka等其他组件,实现数据实时流转。
搭建主从集群的两个必要条件:
1、双方MySQL版本必须一致(至少主服务的版本低于从服务)
2、两节点的时间需要同步
读写分离,需要限制用户写入数据,可以将从服务read_only设置为1(set global read_only=1;)。read_only=1只读模式,不会影响slave同步复制;
其他集群方式
为了提高整个集群的高可用能力,可以扩展出多主的集群,可以扩展出互为主从的互主集群,甚至是环形的主从集群,实现MySQL多活部署。
半同步复制
由于发送binlog是异步的,如果主服务宕机了,而从服务还没有备份到新执行的binlog,那就有可能会丢数据。半同步复制机制是一种介于异步复制和全同步复制之间的机制。主库在执行完客户端提交的事务后,并不是立即返回客户端响应,而是等待至少一个从库接收并写到relay log中,才会返回给客户端。MySQL在等待确认时,默认会等10秒,如果超过10秒没有收到ack,就会降级成为异步复制。半同步复制基于lib/plugin下的semisync_master.so和semisync_slave.so两个文件。
主从架构数据延迟
出现这个问题的根本在于:主服务数据都是多线程并发写入的,而从服务是单个线程慢慢拉取binlog,这中间有效率差。所以解决这个问题的关键就是要让从服务也用多线程并行复制binlog数据。MySQL5.7版本后,就已支持并行复制。将从服务slave_parallel_workers设置为一个大于0的数,然后把slave_parallel_type设置为LOGICAL_CLOCK。
MySQL高可用方案
MySQL主服务挂了,从服务无法自动切换成为主服务。需要借助第三方工具实现:MMM、MHA、MGR,三者共同点:
1、对主从复制集群中的Master节点进行监控
2、自动的对Master进行迁移,通过VIP
3、重新配置集群中的其他slave对新的Master进行同步
分库分表
微服务架构中,每个服务都分配一个独立的数据库,就是分库;而对一些日志表,按月拆分成不同的表,就是分表。
垂直分片:核心就是专库专用,按照业务将表进行归类,分布到不同的数据库或表中。
水平分片:又称横向分片,通过某个(几个)字段,根据某种规则将数据分散至多个库或表中,每个分片仅包含数据的一部分。
常用的分片策略:
取余\取模:数据存放均匀,但扩容非常麻烦
按照范围分片:好扩容,数据分布可能不均匀
按照时间分片:比较容易将热点数据区分出来
按照枚举值分片:如地区
按照字段前缀指定进行分区:自定义业务规则分片
水平分片从理论上突破了单机数据量处理的瓶颈,且扩展相对自由,是分库分表的标准解决方案。
一般在系统设计阶段就应该根据业务耦合松紧来确定垂直分库分表方案,数据量及访问量不是特别大的情况,首先考虑缓存、读写分离、索引技术。若数据量极大,且持续增长,再考虑水平分库分表方案。
分库分表引入的问题:
事务一致性问题,分布式事务
跨节点关联查询问题
跨节点分页、排序函数
主键避重问题
公共表处理,参数表、字典表,数据量小,保存到每个数据库
运维工作量
什么时候需要分库分表?
阿里开发手册建议,MySQL单表记录如果达到500w,或者单表容量达到2GB,一般就建议进行分库分表。
常见分库分表组件:shardingsphere、mycat、dble
更多相关内容 -
sqlserver主从集群部署方案.docx
2021-09-07 10:53:04以验证 -
单台windows搭建mongoDb主从集群
2019-06-01 04:54:54NULL 博文链接:https://ljlowkey.iteye.com/blog/2113520 -
Oracle Data Guard 12.2.0.1 主从集群图文部署手册.pdf
2021-12-01 14:31:40Oracle Data Guard 12.2.0.1 主从集群图文部署手册.pdf -
Docker+MySQL主从集群搭建
2022-04-14 09:54:16第一章 MySQL主从集群搭建 前言 本⽂主要讲解如何在本地搭建MySQL主从集群,采⽤Docker部署,mysql版本5.7。所以在搭建前可以 先学习⼀下Docker相关知识。 Docker教程参考 一、拉取镜像 # 拉取镜像 docker pull ...文章目录
第一章 MySQL主从集群搭建
前言
本⽂主要讲解如何在本地搭建MySQL主从集群,采⽤Docker部署,mysql版本5.7。所以在搭建前可以
先学习⼀下Docker相关知识。
一、拉取镜像
# 拉取镜像 docker pull mysql:5.7 # 查看镜像相关信息 docker images # 查看正在运⾏的镜像 docker ps
二、主库搭建
1.运⾏主库实例镜像
docker run --name mysql-master --privileged=true -v /usr/local/docker/mysql/master-data:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- /usr/local/docker/mysql路径是我本地挂载mysql⽬录,进⾏映射
- 3307指运行的端口
- MYSQL_ROOT_PASSWORD指运行的密码
- mysql:5.7指我刚刚拉下来的镜像
docker ps 9df6130f9189 mysql:5.7 "docker-entrypoint.s…" 6 hours ago Up About an hour 33060/tcp, 0.0.0.0:3307->3306/tcp, :::3307->3306/tcp mysql-master
2.mysql配置
2.1 进入容器
# 通过容器id⽅式,这⾥的id就是上⾯docker ps中展示的id docker exec -it 9df6130f9189 /bin/bash # 通过容器名称⽅式,这⾥的名称就是创建容器时指定的名称,也就是mysql-master docker exec -it mysql-master /bin/bash
2.2 下载vim
# 下载vim apt-get update apt-get install vim
2.3 修改配置⽂件
cd /etc/mysql vim mysq.cnf
2.4 添加配置信息
[mysqld] server-id=3307 ##⾃定义id号,不要重 log-bin=mysql-bin ##开启⼆进制⽇志
2.5 重新启动
service mysql restart docker start mysql-master
2.6 查看master节点binlog状态
# 进⼊容器 docker exec -it mysql-master /bin/bash # 连接mysql mysql -uroot -p123456 # 查看binlog状态 show master status;
2.7 记录File和Position信息
File表示主节点binlog⽇志⽂件的名称,Position表示数据的偏移量,表示从节点需要从mysqlbin.000002⽂件的10238位置开始同步数据。
File:mysql-bin.000002 Position:10238
2.8 创建账号
我们需要在主节点创建⼀个账号⽤来给从库做主从复制,并且赋予权限。
grant replication slave on *.* to 'test'@'%' identified by '123456'; flush privileges;
三、从库搭建
从库搭建跟主库搭建的过程类似,主要区别就是配置⽂件不同以及需要建⽴主从同步连接这个操作。
grant replication slave on *.* to 'test'@'%' identified by '123456'; flush privileges;
1.运⾏从库实例镜像
docker run --name mysql-slave --privileged=true -v /usr/local/docker/mysql/slave-data:/var/lib/mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
2.mysql配置
2.1 进⼊容器
docker exec -it mysql-slave /bin/bash
2.2 下载vim
# 下载vim apt-get update apt-get install vim
2.3 修改配置⽂件
cd /etc/mysql vim mysq.cnf
2.4 添加配置信息
[mysqld] server-id=3308 ##id号,⾃定义,不要重就⾏ log-bin=mysql-slave-bin ##开启⼆进制⽇志功能 relay_log=edu-mysql-relay-bin ##配置中继⽇志
2.5 重新启动
service mysql restart docker start mysql-master
2.6 配置master的连接
docker exec -it mysql-slave /bin/bash mysql -u root -p123456 change master to master_host='192.168.3.101', master_user='test', master_password='123456', master_port=3307, master_log_file='mysql-bin.000002', master_log_pos=5288, master_connect_retry=30;
master_host是主节点的ip地址,也就是我本机的ip地址;master_user和master_password是主节点创
建的账号密码,⽤来主从复制使⽤;master_port是主节点的端⼝;master_log_file是主节点的binlog⽇
志⽂件名;master_log_pos是主节点binlog⽇志偏移量;master_connect_retry主从同步连接失败多久
重试。2.7 查看连接状态
# \G是为了换⾏显示 show slave status \G; # 停⽌主从复制 stop slave # 开启 start slave;
当Slave_IO_Running和Slave_SQL_Running都是Yes表示主从成功配置完成。四、验证主从同步
使⽤mysql连接⼯具分别连接主库和从库,在主库中创建⼀个数据库,新建⼀张表,插⼊⼀条数据,然
后在从库中查看是否同步新增数据库、表和数据。
FAQ
⼀、主从同步Slave_IO_Running和Slave_SQL_Running为No.
如果是Slave_IO_Running为No,可以检查⼀下连接主节点的配置信息,ip、端⼝、⽤户名密码、权限、
binlog⽇志⽂件命令和偏移量等。
如果是Slave_SQL_Running为No,可以通过以下命令解决。stop slave; SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; start slave;
⼆、Docker启动mysql报错。
可以通过以下命令查看镜像命令进⾏排查。docker logs --since 30m CONTAINER_ID docker logs -f -t --tail ⾏数 容器名
-
mysql主从集群搭建
2022-04-30 00:25:05一般主从集群只会使用主Mysql,从机实际上只起到备份数据的作用,如果有读写分离可以分担一部分读的压力。 下面使用两台机器做一主一从的mysql主从集群搭建示例: 一、先分别安装mysql ## 创建部署目录 sudo mkdir -...主mysql开启binlog日志,创建同步用户;从机上配置同步用户并指定同步主机的binlog文件及起始位置即可使用同步用户同步主mysql的binlog日志,配置组成mysql主备集群。
主备集群上主机可以读写,但是从机只能读不能写,因为是单向同步。一般主从集群只会使用主Mysql,从机实际上只起到备份数据的作用,如果有读写分离可以分担一部分读的压力。
下面使用两台机器做一主一从的mysql主从集群搭建示例:
一、先分别安装mysql## 创建部署目录 sudo mkdir -p /opt/MPP sudo chown -R mysql:mysql /opt/MPP sudo chmod -R 751 /opt/MPP #复制安装包解压 tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz ## 创建mysql用户及属组 sudo groupadd mysql sudo useradd -r -g mysql mysql id mysql ## 创建数据目录并设置权限 #创建mysql数据目录 这里注意如果 sudo mkdir -p /data01/MPP/mysql/data sudo chown -R mysql: mysql /data01/MPP/mysql sudo chmod -R 775 /data01/MPP/ cd /opt/MPP/mysql-5.7.37-linux-glibc2.12-x86_64 sudo chmod -R 775 /opt/MPP/mysql-5.7.37-linux-glibc2.12-x86_64 cd /opt/MPP/mysql-5.7.37-linux-glibc2.12-x86_64 ## 初始化并记录密码 sudo bin/mysqld --initialize --user=mysql --basedir=/opt/MPP/mysql-5.7.37-linux-glibc2.12-x86_64 --datadir=/data01/MPP/mysql/data ## 开启ssl加密 sudo bin/mysql_ssl_rsa_setup --datadir=/data01/MPP/mysql/data ## 编辑配置文件 vi /etc/my.cnf [mysqld] datadir = /data01/MPP/mysql/data port = 3306 skip-name-resolve bind-address=0.0.0.0 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 log_timestamps=SYSTEM max_allowed_packet = 120M socket =/data01/MPP/mysql/mysql.sock character-set-server=utf8 default-time_zone = '+8:00' #主从机的server_id不能相同 server_id=1 #binlog与data放在不同的磁盘,以免binlog写满磁盘导致数据也无法写入 log-bin=/data12/MPP/mysql/arch/mysql-bin binlog-format=ROW expire_logs_days=120 relay_log_purge=off relay-log = /data12/MPP/mysql/relay/relay-bin relay_log_info_repository = table log_slave_updates= 1 log-bin-trust-function-creators=1 max_connections=50000 default-storage-engine = InnoDB [mysqld_safe] log-error = /tmp/mysql-error.log [client] port = 3306 socket=/data01/MPP/mysql/mysql.sock [mysqld_safe] pid-file=/data01/MPP/mysql/mysql93.pid #使用mysql用户启动,若启动失败根据异常日志分析,一般是目录缺少权限 sudo chmod 771 /data01/MPP/mysql sudo su - mysql /opt/MPP/mysql-5.7.37-linux-glibc2.12-x86_64/bin/mysqld_safe --defaults-file=/etc/my.cnf & #首次登陆修改密码 /opt/MPP/mysql-5.7.37-linux-glibc2.12-x86_64/bin/mysql -uroot -p ALTER USER 'root'@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER; -- 开启远程访问 use mysql; update mysql.user set host='%' where user='root'; flush privileges; exit; # 配置成服务 cd /opt/MPP/mysql-5.7.37-linux-glibc2.12-x86_64 sudo cp support-files/mysql.server /etc/init.d/mysql sudo chown mysql:mysql /etc/init.d/mysql #测试通过服务查看状态 sudo service mysql status
二、主从同步配置
# 主库配置,登录主mysql并创建同步用户repl并授权(仅需要REPLICATION权限) CREATE USER 'repl'@'10.37.62.94' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.37.62.94'; FLUSH PRIVILEGES; # 查看状态,bin-log的文件名和当前位置在从机同步配置中有用 show master status;
从机的my.cnf配置注意
从mysql和主mysql的配置基本相同,除了以下几个配置:
#从机server-id要和主机不同
server-id=2;
log_slave_updates=1
#开启同步函数
log_bin_trust_function_creators = 1配置同步
# 从机配置开启同步替换文件名和查询的位置; #设置主机master同步连接信息 change master to master_host='10.37.62.93', master_user='repl', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=2920; #启动同步 start slave; #查看同步状态 show slave status;
slave_IO_Running和Slave_SQL_Running都是Yes说明同步成功。
测试
从主机建表插入数据,然后进入从机查看数据是否同步。
-
mysql8主从集群配置
2021-11-18 16:10:48使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么...本文主要介绍mysql主从集群搭建通过读写分离解决高并发的场景前言
使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。本文主要介绍mysql主从集群搭建通过读写分离解决高并发的场景
一、环境准备
192.168.0.1 : master
192.168.0.2 : slave二、操作步骤
1.环境检查(主从节点执行)
rpm -qa | grep mariadb
若有安装mariadb,先进行卸载,lib可以保留 rpm -e --nodeps mariadb-server-5.5.68-1.el7.x86_64 mariadb-5.5.68-1.el7.x86_64
2.安装部署(主从节点执行)
上传并解压安装包 tar -xvf mysql-8.0.26-el7-x86_64.tar.gz -C /mysql mv /mysql/mysql-8.0.26-el7-x86_64/ /mysql/mysql
创建mysql用户并赋权 useradd mysql chown -R mysql:mysql /mysql/mysql/
创建mysql相关目录 test -d /data/mysql |mkdir -p /data/mysql test -d /data/tmp |mkdir -p /data/tmp test -d /data/log |mkdir -p /data/log
创建service服务 cp -a /mysql/mysql/support-files/mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql
添加环境变量 echo 'export PATH=$PATH:/mysql/mysql/bin:/mysql/mysql/lib' >> /etc/profile echo "export PATH" >> /etc/profile source /etc/profile
上传配置文件并替换 mv /etc/my.cnf /etc/my.cnf.bak mv /mysql/install/my.cnf /etc/ chown mysql:mysql /etc/my.cnf
my.cnf如图所示
从节点需修改server-id
切换mysql用户 su - mysql (注意 ‘-’ 的前后有空格)
初始化mysql,并记录生成的临时密码 /mysql/mysql/bin/mysqld --user=mysql --basedir=/mysql/mysql --datadir=/data/mysql/ --initialize
启动数据库 service mysql start
3.主节点权限设置(主节点执行)
用之前记录的临时密码登录登录 mysql -uroot -pxxxxxxx 执行sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; update mysql.user set host='%' where user='root'; flush privileges; create user 'repl'@'%' identified with 'mysql_native_password' by '新密码'; GRANT replication slave ON *.* TO 'repl'@'%'; GRANT replication client ON *.* TO 'repl'@'%'; flush privileges; show master status
4.从节点同步设置(从节点执行)
用之前记录的临时密码登录登录 mysql -uroot -pxxxxxxx 执行sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; update mysql.user set host='%' where user='root'; flush privileges; CHANGE MASTER TO MASTER_HOST='Master节点IP', MASTER_USER='repl', MASTER_PASSWORD='Master节点repl用户密码', MASTER_LOG_FILE='Mster节点show master status命令File值', MASTER_LOG_POS=Mster节点show master status命令Position值; start slave;
查看同步情况 show slave status\G;
两项都为yes则为同步成功
5.mysql开机自启动(主从节点执行)
用root用户执行 chmod +x /etc/rc.d/rc.local echo 'su - mysql -c "service mysql start"' >> /etc/rc.d/rc.local
到这里一个简单的案例基本就分析结束。感谢你的学习。
最后想一起交流技术的可以加我wx:
-
docker中安装mysql的主从集群
2022-04-03 12:37:41基于docker实现MySQL主从集群搭建,实现读写分离 01.为什么需要进行mysql的集群 MySQL 提供自带的主从同步功能,可以轻松实现读写分离,保证系统性能的稳定性和数据安全性。 02.MySQL主从配置原理 1.master会... -
Mysql Keeplived主从集群环境搭建
2018-06-14 14:37:26Mysql Keeplived主从集群环境搭建Mysql Keeplived主从集群环境搭建Mysql Keeplived主从集群环境搭建Mysql Keeplived主从集群环境搭建亲测可用文档一步一步来的 -
MySQL 数据库主从集群搭建
2022-02-12 16:03:163 将主服务器上的数据同步到从库中(主从集群只会同步创建集群之后的数据操作,对于原有的数据不会同步) 2 配置主数据库 修改配置文件 vim /etc/my.cnf 添加配置 [mysqld] log-bin=mysql-bin server-id=1 重启 ... -
使用Docker部署MySQL 5.7&8.0主从集群的方法步骤
2020-09-09 04:45:28主要介绍了使用Docker部署MySQL 5.7&8.0主从集群的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
Redis集群部署及Springboot架构下应用(主从集群模式)
2020-04-07 00:51:56集群方式及配置 基础配置集群配置: 后台运行(守护进程) daemonize yes 去除保护模式(允许远程访问) protected-mode no #去除绑定(远程访问) #bind 127.0.0.1 # 设置密码 requirepass red... -
redis数据库主从概念与设置主从集群详解【重点】
2021-12-06 21:11:35一文详解redis数据库主从概念与设置主从集群 -
Redis整合MySQL主从集群
2021-09-26 15:16:09Redis整合MySQL主从集群1、用Docker搭建MySQL主从集群1.1 拉取mysql镜像1.2 创建配置文件夹1.3 编写主服务器的配置文件信息1.4 启动mysql主服务器的容器1.5 观察主服务器状态1.6 配置mysql从服务器1.7 启动mysql从... -
Rabbitmq主从集群和镜像集群搭建
2021-08-26 09:57:35主从架构集群搭建 一、安装rabbitmq 百度网盘 链接:https://pan.baidu.com/s/1CfjjCL–G4TX9zzs-hzxNg 提取码:sq5z 这里有三个安装包 1、mq是使用erlang语言开发的,所以首先安装erlang-22.0.7-1.el7.x86_64包 rpm... -
windows redis 主从集群实例加哨兵集群
2018-08-24 17:55:58windows redis 主从集群实例加哨兵集群 相关使用博客 https://blog.csdn.net/weixin_42749765/article/details/82023029 -
redis主从集群 主挂掉 java怎样调用从
2021-03-06 06:26:40展开全部主从集群,原主数据32313133353236313431303231363533e59b9ee7ad9431333363383333库挂掉,选举出一个从数据库升格为主数据库,那么主数据库的IP和端口会变。要跟踪这个变化也行,但是很麻烦。幸运的是,可以... -
docker 搭建 MongoDB 单机主从集群
2021-08-17 12:00:14it mongo-db1 bash 进入bin目录 cd /usr/bin 进入mongodb ./mongo 初始化集群 这里的 192.168.0.117 是宿主机器 ip 地址,也可以是 docker0 网卡的 ip 地址 笔者这里使用宿主机器的 ip 地址 rs.initiate( { _id : ... -
MYSQ主从集群简单搭建的部署方案
2022-05-06 14:32:39自己练习学习搭建mysql主从集群,形成一份word便于记录和后续优化 -
MongoDB主从集群、副本集与分片集群
2020-08-15 10:54:09MongoDB主从集群、副本集与分片集群 一、主从复制 主从复制是MongoDB最常用的复制方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活.可用于备份,故障恢复,读扩展等. 最基本的设置方式就是建立一个主节点... -
33 Redis 主从集群中脑裂问题
2021-12-12 14:48:23在使用主从集群时,主从集群有 1 个主库、5 个从库和 3 个哨兵实例,在使用的过程中,发现客户端发送的一些数据丢失了,这直接影响到了业务层的数据可靠性。 这其实是主从集群中的脑裂问题导致的。脑裂是指在主从... -
Redis主从集群
2022-04-03 18:40:11主从第一次同步是全量同步,slave重启后同步,则执行增量同步。 全量同步: master将完整内存数据生成RDB,发送RDB到slave,后续命令则记录在repl_baklog,逐个发送给slave。 增量同步:slave提交自己的offset到... -
docker安装mysql主从集群(一主一从)
2021-10-11 03:21:421、安装docker 安装yum-utils: yum install -y yum-utils device-mapper-persistent-data lvm2 为yum源添加docker仓库位置: yum-config-manager --add... 安装docker: yum install docker-ce ...systemctl start doc -
MongoDB 主从复制(主从集群 )
2018-09-14 16:22:39主从复制(主从集群 ) 集群:多台计算机同时对外提供服务,从而达到负载均衡,理论概念可以参考《Nginx》。 主从复制是 MongoDB 最常用的复制方式,非常灵活,可用于备份、故障恢复、读扩展 等 。 最基本的设置... -
Kubernetes 完美部署MySQL主从集群
2020-07-23 15:58:16在Kubernetes中可以快速MySQL主从集群,但需要解决以下问题: MySQL主从节点关系自动建立; MySQL从节点Pod重新部署后复制关系自动恢复,且不会丢失数据。 我在K8S中测试MySQL主从遇到的坑 MySQL主节点初始化... -
redis主从集群搭建与容灾部署(哨兵sentinel)x_redis的多哨兵模式
2020-11-23 09:18:59PAGE / NUMPAGES Redis主从集群搭建及容灾部署哨兵 Redis主从集群搭建及容灾部署 哨兵sentinel 目录 1. Redis安装 2. Redis主从结构搭建 3. Redis容灾部署哨兵sentinel 4. Redis常见问题 5. 参考 redis安装 1.1. ... -
redis主从集群部署+哨兵模式并设置开机自启动及集成SpringBoot
2022-04-27 22:08:501、redis主从集群部署 2、redis一主两从哨兵集群部署 3、redis哨兵模式部署 4、redis哨兵模式设置开机自启动 5、SpringBoot集成redis集群部署 6、SpringBoot集成redis主从集群部署 7、SpringBoot集成redis哨兵部署 -
Postgresql主从集群流复制从无到有搭建(windows架构)
2020-08-27 11:22:03Postgresql主从集群流复制从无到有搭建(windows架构) 操作目录1.总体架构:2.环境:3.创建流复制环境搭建: 1.总体架构: 4台windows服务器架构图 2.环境: 1、 WindowsServier (windows10) 2、 postgres12.4 3... -
Redis哨兵机制--redis主从集群的高可用保证
2021-01-09 18:37:34Redis通过主从集群扩充主节点的读能力,同时又一定程度上保证数据的不丢失,但是主从集群由如下的问题: 1、如果主节点故障了,需要手动执行主从切换,没法保证高可用; 2、主从集群只能扩充读能力,并不能扩充主...