1. 程式人生 > >MariaDB用法——主從複製高可用

MariaDB用法——主從複製高可用

主從

在主節點實現

vim /etc/my.cnf

server_id=1

log_bin

innodb_file_per_table

重啟服務後生成新的二進位制日誌,舊的可以刪掉

systemctl restart mariadb

新增從伺服器同步使用者

mysql>grant replication slave on *.* to 使用者名稱@'IP或網段' identified by '密碼';

從節點

vim /etc/my.cnf

server_id=2

systemctl restart mariadb

新增主伺服器

可以檢視一下幫助

help change master to

change master to master_host='主伺服器IP',master_user='在主伺服器建立的使用者名稱',master_p

assword='密碼',master_port=埠,master_log_file='從哪個二進位制檔案同步',master_log_pos=具體位置

看下狀態

開啟複製

start slave

建立資料庫,檢視是否能同步

主伺服器建立資料庫

從伺服器檢視

主從複製

已有舊主,建立新從

建立從伺服器該配置檔案(參考上一實驗,只改配置檔案)

備份主伺服器

mysqldump -A -F --single-transaction --master-data=1 > /backup/all.sql

scp /backup/all.sql 從節點:/

更改備份檔案

匯入備份檔案

現在資料庫還是不同步的,需要開始同步一下

start slave;

從伺服器最好啟用read_only=ON禁止寫操作,防止誤操作。

級聯複製

準備四臺資料庫伺服器

主伺服器改配置建立賬號

級聯伺服器改配置檔案,必須新增三項

新增主伺服器並同步資料

檢視狀態

reset slave;

reset slave all;從伺服器清除所有二進位制日誌記錄,重新複製

建立主從使用者

從伺服器

連線級聯伺服器

檢視連線狀態

操作失誤時會導致如下報錯

表資料已存在

解決方法刪除庫重新同步

日誌異常

重新匯入日誌檔案change master to master_log_file='mariadb-bin.000001',master_log_pos=245;

賬號故障

排查賬號詳細故障並解決(密碼錯誤、許可權錯誤、使用者名稱錯誤等)

詳細故障可查詢報錯編號perror

半同步複製

主伺服器

啟用外掛

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

開啟半同步功能

從伺服器

相同操作

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

重新同步從伺服器開啟半同步

資料庫加密

CA伺服器

生成私鑰key

openssl genrsa 2048 > cakey.pem

自簽名檔案

openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650

生成主從伺服器的私鑰檔案和請求檔案兩個檔案(全部在CA伺服器上做)

主伺服器

openssl req -newkey rsa:2048 -days 365 -nodes -keyout master.key > master.csr

頒發證書

openssl x509 -req -in master.csr -CA cacert.pem -CAkey cakey.pem -set_serial 01 >master.crt

從伺服器

複製到主從伺服器並刪除不需要的檔案

主伺服器

從伺服器

授權mysql

主伺服器

加密成功

建立從登陸的加密賬號

grant replication slave on *.* to [email protected]'192.168.30.%' identified by '111111' require ssl;

從伺服器(可以使用同上操作)

測試連線

從伺服器做加密

已啟用

授權加密

CHANGE MASTER TO

MASTER_HOST='192.168.30.112',

MASTER_USER='tom',

MASTER_PASSWORD='111111',

MASTER_LOG_FILE='mariadb-bin.000002',

MASTER_LOG_POS=407,

MASTER_SSL=1,

MASTER_SSL_CA = '/etc/my.cnf.d/ssl/cacert.pem',

MASTER_SSL_CERT = '/etc/my.cnf.d/ssl/slave.crt',

MASTER_SSL_KEY = '/etc/my.cnf.d/ssl/slave.key';

開始同步

高可用

實戰:實現主從高可用MHA

環境:四臺主機

manager,master,slave1,slave2

1 準備

selinux ,iptables ,time

用manager主機做時間伺服器

yum -y install ntp

systemctl start ntpd

systemctl enable ntpd

其他伺服器用ntpdate IP(manager主機的IP)命令同步

搭建主從伺服器,步驟同上

主配置檔案

兩個從配置檔案server_id編號不同

新增賬號

start slave

四個主機實現ssh key驗證同上

建立一個授權賬號

安裝MHA

manager主機兩個包都安裝,其他只安裝node

在manager節點

下載軟體包

https://code.google.com/archive/p/mysql-master-ha/

yum install mha4mysql-manager-0.56-0.el6.noarch.rpm mha4mysql-node-0.56-0.el6.noarch.rpm

建立MHA的配置檔案

[server default]

user=mhauser

password=111111

manager_workdir=/data/mastermha/app1/

manager_log=/data/mastermha/app1/manager.log

remote_workdir=/data/mastermha/app1/

ssh_user=root

repl_user=repluser

repl_password=111111

ping_interval=1

[server1]

hostname=192.168.30.112

candidate_master=1

[server2]

hostname=192.168.30.113

candidate_master=1

[server3]

hostname=192.168.30.114

6 在manager節點上

masterha_check_ssh --conf=/etc/mastermha/app1.cnf 檢測ssh

masterha_check_repl --conf=/etc/mastermha/app1.cnf 檢測複製情況

masterha_manager --conf=/etc/mastermha/app1.cnf 啟動mha(在伺服器的tty上執行,不要遠端執行)

驗證

複製功能

主:

從:

MHA測試

主伺服器宕機

切換完成

切換完成

實驗:實現Gelera cluster

三臺主機(太簡單了,不想截圖)

1 yum安裝

[mariadb]

name = MariaDB

baseurl = https://mirrors.tuna.tsinghua.edu.cn/mariadb/mariadb-5.5.60/yum/centos7-amd64/

gpgcheck=0

安裝

yum -y install MariaDB-Galera-server

更改配置檔案,三臺相同

啟動第一個節點

啟動其他節點

檢視狀態

驗證

相關推薦

MariaDB用法——主從複製可用

主從 在主節點實現 vim /etc/my.cnf server_id=1 log_bin innodb_file_per_table 重啟服務後生成新的二進位制日誌,舊的可以刪掉

15.7,哨兵叢集 redis-sentinel主從複製可用

redis-sentinel主從複製高可用   Redis-Sentinel Redis-Sentinel是redis官方推薦的高可用性解決方案,當用redis作master-slave的高可用時,如果master

MariaDB的備份與主從可用實踐

1、編寫指令碼,支援讓使用者自主選擇,使用mysqldump還是xtraback全量備份。 [root@test-centos7-node1 scripts]# cat chose_backup_mysql.sh #!/bin/bash # #*******************************

基於DR模式的keepalived主從模式可用架構搭建

linuxkeepalived高可用一:架構圖示2.keepalived是什麽?Keepalived的作用是檢測服務器的狀態,如果有一臺web服務器宕機 ,或工作出現故障,Keepalived將檢測到,通過VRRP協議,將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常後 K

drbd+mariadb+corosync+pacemaker構建可用,實現負載均衡

drbd mysql 高可用DRBD DRBD是由內核模塊和相關腳本而構成,用以構建高可用性的集群 drbd 工作原理:DRBD是一種塊設備,可以被用於高可用(HA)之中.它類似於一個網絡RAID-1功能。當你將數據寫入本地 文件系統時,數據還將會被發送到網絡中另一臺主機上。以相同的形式記錄在

redis主從+keepalived 可用 自動切換

redis主從高可用一環境介紹 master: 172.168.1.69slave : 172.168.1.57 VIP 172.168.1.253 虛擬IP 二。設計思路: 當 Master 與 Slave 均運作正常時, Master負責服務,Slave負責Standby; 當

初識MariaDB之7——MHA可用

mysql mariadb mha 一、背景介紹在傳統的MySQL一主一從或一主多從結構中,主節點存在單點故障隱患,為了解決該故障,進而引入了MHA高可用的方式。MHA由manager和node兩部分組成,manager可以安裝在一個獨立的服務器上或非master角色的MySQL服務器上,1個ma

PGSQL主從+keepalived可用配置

bash virtual scrip send 模擬 sta rac nopreempt timeout 環境說明:主機與IP:192.168.11.177 主庫192.168.11.180 備庫 192.168.11.210 VIP 系統:centos7.2PGSQL9

基於Redis Sentinel的Redis叢集(主從&Sharding)可用方案

本文主要介紹一種通過Jedis&Sentinel實現Redis叢集高可用方案,該方案需要使用Jedis2.2.2及以上版本(強制),Redis2.8及以上版本(可選,Sentinel最早出現在Redis2.4中,Redis2.8中Sentinel更加穩定),Red

mariadb配置主從複製

本文章是通過docker建立了兩個mariadb的容器,主要是記錄,方便以後使用..... 1、master配置 a、修改/etc/my.cnf檔案 [mysqld] server-id=1 log_bin=master-bin binlog-ignore-db=mys

redis --redis主從可用,叢集

安裝redis,見上一篇這裡寫連結內容 redis主從複製 修改redis主配置檔案 master(server5): #bind 172.25.40.5 protected-mode no slave(server6): #bind 172.25

基於jedis、redis-sentinel的redis主從可用、sharding架構

最近專案上需要對Redis(目前redis用的是2.8版本)做高可用、叢集等優化,就擴充套件了jedis客戶端(MasterSlaveJedis、MasterSlaveJedisPool、ShardedMasterSlaveJedis、ShardedMasterSlaveJ

mariadb叢集,主從複製,主從切換,資料告警

1.mariadb叢集是基於wsrep的配置,目的是為了一個機器掛了,其它機器還是正常動作的,配置好後,如果先關閉了第一個節點,或者第一個節點掛掉,就必須要更改gcomm://地址了,將該地址指向叢集中資料為最新的ip地址。非第一節點的,如果掛掉,再次啟動會同步最新的資料。

MariaDB實現主從複製

MySQL之父Widenius先生離開了Sun之後,覺得依靠Sun/Oracle來發展MySQL,實在很不靠譜,於是決定另開分支,這個分支的名字叫做MariaDB。 MariaDB跟MySQL在絕大多數方面是相容的,對於開發者來說,幾乎感覺不到任何不同。目前Ma

3. MariaDB設定主從複製

翻譯人員: 鐵錨 翻譯日期: 2013年12月25日 主從複製包含兩個步驟: 在 master 主伺服器(組)上的設定,以及在 slave 從屬伺服器(組)上的設定. 配置主伺服器 master如果沒有啟用,則需要 啟用二進位制日誌.給 master 設定唯一的  se

使用MMM實現MySQL雙主複製可用

一、MMM簡介 1. 概述         MMM(Master-Master replication manager for MySQL)是一套支援雙主故障切換和雙主日常管理的指令碼程式。MMM使用Perl語言開發,主要用來監控和管理MySQL Master-Maste

Mariadb主從複製的讀寫分離

  首先我們來回顧下代理的概念,所謂代理就是指的是一端面向客戶端,另外一端面向服務端,代理客戶端訪問服務端,我們把這種代理叫正向代理;代理服務端響應客戶端我們叫做反向代理,這個我們在之前nginx系列部落格中闡述過這樣的概念;不管是正向代理還是反向代理他們都是代理,他們都有一個共同點就是代表一端(客戶端/服務

MySQL可用--主從複製與讀寫分離

一、Mysql高可用概念  二、MySQL主從複製原理  叢集目的,減輕單臺伺服器壓力 三、MySQL主從複製配置 實際操作mysql伺服器叢集,主從複製的過程 master   192.168.230.128 slav

可用Redis(八):Redis主從複製

1.Redis複製的原理和優化 1.1 Redis單機的問題 1.1.1 機器故障 在一臺伺服器上部署一個Redis節點,如果機器發生主機板損壞,硬碟損壞等問題,不能在短時間修復完成,就不能處理Redis操作了,這就是單機可能存在的問題 同樣的,伺服器正常執行,但是Redis主程序發

MySQL可用架構設計(主從複製

1、MySQL複製功能提供分擔讀負載   複製解決了什麼問題?      1、 實現在不同伺服器上的資料分佈           利用二進位制日誌增量進行