一、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