mysql 互为主备 宕机 数据丢失_Devops部署-mysql主备多从搭建
双主多从架构原理介绍
IP | 端口 | 账号 | 密码 | 服务名 |
---|---|---|---|---|
10.1.1.2 | 3306 | root/sync | abc123! | 数据库A |
10.1.1.3 | 3306 | root/sync | abc123! | 数据库B |
10.1.1.4 | 3306 | root/sync | abc123! | 数据库C |
1.两台mysql都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用;
2.masterA是masterB的主库,masterB又是masterA的主库,它们互为主从;
3.两台主库之间做高可用,可以采用MyCAT中间件暴露一个统一的服务给client,同时当2主任意一台宕机时,还能提供服务。宕掉的机器重启恢复之后,数据可以同步得到;
4.所有提供服务的从服务器与masterB进行主从同步(双主多从);
#创建目录 mkdir -p /home/docker-compose/mysql cd /home/docker-compose/mysql/ && mkdir data conf vi docker-compose.yml
version: '3.1'
services:mysql:restart: alwaysimage: mysql:5.7container_name: mysqlports:- 3306:3306environment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: abc123! ##密码command:--character-set-server=utf8mb4--collation-server=utf8mb4_general_ci--explicit_defaults_for_timestamp=true--lower_case_table_names=1--max_allowed_packet=128M--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"volumes:- ./data:/var/lib/mysql- ./conf:/etc/mysql/mysql.conf.d
进入目录
cd /home/docker-compose/mysql/conf
编写MySQL配置文件
vi mysqld.cnf
主节点1配置
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
default-time-zone='+8:00'
symbolic-links=0
server-id = 40
log-bin = mysql-bin
enforce_gtid_consistency = ON
gtid_mode = ON
auto_increment_increment=1
auto_increment_offset=1
log-slave-updates
sync_binlog=1
max_connections=1000
innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_page_size=32K
innodb_log_file_size=148M
主节点2配置
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
default-time-zone='+8:00'
symbolic-links=0
server-id = 66
log-bin = mysql-bin
enforce_gtid_consistency = ON
gtid_mode = ON
auto_increment_increment=2
auto_increment_offset=2
log-slave-updates
sync_binlog=1
max_connections=1000
innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_page_size=32K
innodb_log_file_size=148
启动mysql
docker-compose up -d
docker-compose down //直接删除容器
docker-compose stop //不删除容器
docker-compose start //直接启动
进入容器:
docker exec -it mysql /bin/bash
mysql -uroot -pabc123!
设置2个主节点的主从关系
查看10.1.1.2的日志信息:
File: mysql-bin.000005
Position: 1495
mysql> show master status G;
*************************** 1. row ***************************File: mysql-bin.000005Position: 1495Binlog_Do_DB: Binlog_Ignore_DB:
Executed_Gtid_Set: c83eb7e9-2556-11eb-b4ad-0242ac120002:20-21,
d52d0074-2556-11eb-93b5-0242ac120002:1-20
1 row in set (0.00 sec)ERROR:
No query specifiedmysql>
查看10.1.1.3的日志信息:
File: mysql-bin.000004
Position: 1796
mysql> show master status G;
*************************** 1. row ***************************File: mysql-bin.000004Position: 1796Binlog_Do_DB: Binlog_Ignore_DB:
Executed_Gtid_Set: c83eb7e9-2556-11eb-b4ad-0242ac120002:1-21,
d52d0074-2556-11eb-93b5-0242ac120002:20
1 row in set (0.00 sec)ERROR:
No query specifiedmysql>
在两个节点执行
create user 'sync'@'%' identified by 'password';
grant replication slave on *.* to sync;##Mysql复制错误error_code: 1045 Access denied for usergrant replication slave on *.* to 'sync'@'%' identified by 'password';flush privileges; //刷新MySQL的系统权限相关表,否则会无法用账号链接
修改master_host与master_log_file与master_log_pos三个值
#节点设置 需要同步的节点(主库节点)
#在10.1.1.2设置
FLUSH TABLES WITH READ LOCK;
change master to master_host='10.1.1.3',master_port=3306,master_user='sync',master_password='password',master_log_file='mysql-bin.000004',master_log_pos=1796;
UNLOCK TABLES;
#在10.1.1.3设置
FLUSH TABLES WITH READ LOCK;
change master to master_host='10.1.1.2',master_port=3306,master_user='sync',master_password='password',master_log_file='mysql-bin.000005',master_log_pos=1495;
UNLOCK TABLES;
开启主从复制 :
start slave;
检查
mysql> show slave status G;
*************************** 1. row ***************************Slave_IO_State: Waiting for master to send eventMaster_Host: 10.1.1.3Master_User: syncMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000004Read_Master_Log_Pos: 1796Relay_Log_File: a389ed970e74-relay-bin.000005Relay_Log_Pos: 822Relay_Master_Log_File: mysql-bin.000004Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table:
以下三项为正常
Slave_IO_State: Waiting for master to send event
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
未完待续
mysql 互为主备 宕机 数据丢失_Devops部署-mysql主备多从搭建相关推荐
- mysql主备删除备数据,mysql 互为主备 宕机 数据丢失_Devops部署-mysql主备多从搭建...
双主多从架构原理介绍 IP端口账号密码服务名 10.1.1.23306root/syncabc123!数据库A 10.1.1.33306root/syncabc123!数据库B 10.1.1.433 ...
- MySQL - 高可用性:少宕机即高可用?
MySQL - 高可用性:少宕机即高可用? 原文:MySQL - 高可用性:少宕机即高可用? 我们之前了解了复制.扩展性,接下来就让我们来了解可用性.归根到底,高可用性就意味着 "更少的宕机 ...
- mysql主从复制及主机宕机的解决方法
mysql主从复制及主机宕机的解决方法 文章目录 mysql主从复制及主机宕机的解决方法 概念 为什么需要主从复制 主从复制原理 主从搭建 删除mysql 开始搭建 Mysql主机宕机的解决方法 本篇 ...
- ODPS主备集群双向数据复制导致主备中心网络打爆问题
简介:ODPS主备集群双向数据复制导致主备中心网络打爆问题 1. 故障问题描述 客户现场发生了ODPS主备机房相互数据全量复制导致的主备中心网络被打爆的问题,严重影响了日常运行的ODPS任务.在ODP ...
- oracle主备机密码文件不同步,oracle主备同步问题
oracle主备同步 问题描述 ZABBIX近段时间某地区的DB备库同步异常,在后台查询主备是同步的 zabbix监控主备同步的语句为select round((sysdate-controlfile ...
- MySQL集群节点宕机,数据库脑裂!如何排障?
作者介绍 王晶,中国移动DBA,负责"移动云"业务系统的数据库集成架构设计.运维.优化等工作:擅长技术领域MySQL,获Oracle颁发的"MySQL DBA" ...
- GitHub 多次宕机的罪魁祸首竟是 MySQL?
整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 宕机时时有,但近期特别多.这边苹果服务器发生大规模宕机,导致 App Store.Apple Music.Books 等十几项服务中断,另 ...
- mysql 小型机_小型机宕机问题 - Oracle数据库管理 - ITPUB论坛-中国专业的IT技术社区...
最近客户主机每隔10天左右就会宕机,配置为P650+DS4300+3582,上面跑着oracle+webshere+tsm.宕机是,连接主机的显示器无反应,可以ping通主机,无法telnet及ftp ...
- bond的主备模式_centos 7.0双网卡主备和负载均衡模式配置(bond0)
网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡.在应用部署中是一种常用的技术,bond共有7中模式,mode 0-6,但是常用的模式有三种: mode=0:平衡 ...
最新文章
- oracle celient 作用,WebLogic Server 10.3 SSL配置及SSL协议传输的WebSevice调用.doc
- javaSE基础04
- 全屏插件fullsizable.js失效???
- Redhat下XFS的安装
- 管理 Active Directory 所必需的工具或技术
- unity2018关联不到vs_原尚股份VS.长久物流,整车物流和零部件物流,谁才是好生意?...
- mysql dcn_Mysql varchar(max)
- 如何在Java中实现线程池
- LeetCode 734. 句子相似性(哈希)
- mapreduce程序开发的一些总结
- 我与计算机作文450字,打电脑作文450字
- java验证码制作思路_Java实现验证码制作之一自己动手
- PPC丢失后,手机信息如何保护?(C#)
- 让IIS7支持SSI功能(用来支持shtml)的方法
- Altium Designer 17 安装方法及步骤
- EC6110M/T-Q21A/C/E-EC6108V9/V9C/V9U/V9A/V9E/V9I/V92/V97-V9C悦me/CA全系列包
- Steam帐号被盗怎么办
- 项目管理软件推荐:项目计划变更管理太方便了
- 将网络地图资源加载进Arcgis中
- IPFS技术系列之IPFS底层基础
热门文章
- 51单片机怎么显示当前时间_单片机初学者必看
- 后台接收数组_微信小程序如何与后台api接口进行数据交互(微信报修小程序源码讲解七)...
- win10安装net3.5不成功出现 0x8024402c_在移动硬盘中安装win10和macos双系统
- ajax修改按钮的html值,表格行的按钮AJAX后,怎么修改表格当前行的值
- mysql 跨库复制_Mysql跨数据库(在同一IP地址中)复制表
- java is开头版本解决_eclipse指定jdk版本启动,解决Version XXXX of the JVM is not
- 【编译原理】编译是怎么一个过程?
- oracle 分组排序后取第一条_关于oracle中位图索引的探讨:概念、原理、优缺点...
- 深度学习之卷积神经网络(7)池化层
- html php打开,html格式如何打开