一、MySQL集群需求分享
1、抽象:功能模块
把基础的写成通用
服务部署也要抽象出来模块
redis内存有的多,有的少,可以config set在线更改
redis 安装、配置、启动
mysql 安装、配置(my.cnf可以统一 目录默认配置可以统一)
master: server_id 1111
slave: server_id 2222
二、mysql 主从实现思路
2.1 mysql-install.sls 安装 配置 初始化
把基础的写成通用
2.2 my.cnf配置不同-server id
my.cnf不一样的数据include,线上十几个mysql集群,我很多业务需要用我就include
1、按类型分的场景
我只有四台机器
2、按业务分
业务很大,每个业务都是不同的东西
2.3 创建主从同步用户
所有MySQ主从一样好不好?
没有从没关系就是创建一个用户而已
2.4 master上获取binlog 和 pos值
show master status
2.5 slave上
change master && start slave
2.6 检查主从状态
GRANT replication slave on
二、MySQL集群配置实战
1、没有按照官方的是按照自己的cmd.run
虽然推荐你使用他自己写的模块,但有的时候用它的写的反而复杂了,那你就要勇敢的放弃
很多时候绕就是因为你对需求理解的不够深刻,针对不同的服务做不一样的选择
2、目录结构
[root@saltstack mysql]# pwd
/srv/salt/prod/modules/mysql
[root@saltstack mysql]# tree -L 2
.
├── files
│ ├── mariadb-server-master.cnf
│ ├── mariadb-server-slave.cnf
│ └── my.cnf
├── install.sls
├── master.sls
└── slave.sls
3、安装
[root@saltstack mysql]# cat install.sls
mysql-install:
pkg.installed:
- pkgs:
- mariadb
- mariadb-server
mysql-config:
file.managed:
- name: /etc/my.cnf
- source: salt://modules/mysql/files/my.cnf
- user: root
- group: root
- mode: 644
4、master.sls
[root@saltstack mysql]# cat master.sls
include:
- modules.mysql.install
master-config:
file.managed:
- name: /etc/my.cnf.d/mariadb-server.cnf
- source: salt://modules/mysql/files/mariadb-server-master.cnf
- user: root
- group: root
- mode: 644
master-service:
service.running:
- name: mariadb
- enable: True
5、slave.sls
[root@saltstack mysql]# cat slave.sls
include:
- modules.mysql.install
slave-config:
file.managed:
- name: /etc/my.cnf.d/mariadb-server.cnf
- source: salt://modules/mysql/files/mariadb-server-slave.cnf
- user: root
- group: root
- mode: 644
slave-service:
service.running:
- name: mariadb
- enable: True
6、mariadb-server-master.cnf
[root@saltstack files]# cat mariadb-server-master.cnf
[mysqld]
log_bin=mysqlbin
server_id=1111
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
7、mariadb-server-slave.cnf
[root@saltstack files]# cat mariadb-server-slave.cnf
[mysqld]
log_bin=mysqlbin
server_id=2222
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid