国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
mysql傳統(tǒng)主從配置與主從監(jiān)控

主從簡(jiǎn)介

在現(xiàn)代企業(yè)中,數(shù)據(jù)顯得尤為重要,而存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)選擇又五花八門,但無(wú)論是何種數(shù)據(jù)庫(kù),均存在著一種隱患。
當(dāng)數(shù)據(jù)規(guī)模非常大,讀寫量也很高時(shí),一臺(tái)數(shù)據(jù)庫(kù)已經(jīng)無(wú)法負(fù)擔(dān)全部讀寫任務(wù),就需要多臺(tái)數(shù)據(jù)庫(kù)同時(shí)運(yùn)作分擔(dān)負(fù)載。

主從作用

  • 實(shí)時(shí)災(zāi)備,用于故障切換
  • 讀寫分離,提供查詢服務(wù)
  • 備份,避免影響業(yè)務(wù)

主從形式

  • 一主一從
  • 主主復(fù)制
  • 一主多從(擴(kuò)展系統(tǒng)讀取的性能,讀在從庫(kù),寫在主庫(kù))
  • 多主一從(5.7開始支持)
  • 聯(lián)級(jí)復(fù)制

主從復(fù)制原理

主從復(fù)制步驟:

  1. 主庫(kù)將所有的寫操作記錄到binlog日志中并生成一個(gè)log dump線程,將binlog日志傳給從庫(kù)的I/O線程
  2. 從庫(kù)生成兩個(gè)線程,一個(gè)I/O線程,一個(gè)SQL線程
  3. I/O線程去請(qǐng)求主庫(kù)的binlog,并將得到的binlog日志寫到relay log(中繼日志) 文件中
  4. SQL線程,會(huì)讀取relay log文件中的日志,并解析成具體操作,來(lái)實(shí)現(xiàn)主從的操作一致,達(dá)到最終數(shù)據(jù)一致的目的

傳統(tǒng)主從弊端

互為主從時(shí),可能會(huì)由于循環(huán)寫導(dǎo)致數(shù)據(jù)失去一致性。

主從配置

需求:
搭建兩臺(tái)MySQL服務(wù)器,一臺(tái)作為主服務(wù)器,一臺(tái)作為從服務(wù)器,主服務(wù)器進(jìn)行寫操作,從服務(wù)器進(jìn)行讀操作

環(huán)境:

  • 主數(shù)據(jù)庫(kù)
    • CentOS7/RedHat7
    • IP-192.168.233.129
    • Hostname-Lynk
    • 有數(shù)據(jù)
  • 副數(shù)據(jù)庫(kù)
    • CentOS7/RedHat7
    • IP-192.168.233.247
    • Hostname-Hyrule
    • 無(wú)數(shù)據(jù)

主從復(fù)制配置步驟:

  1. 確保從數(shù)據(jù)庫(kù)與主數(shù)據(jù)庫(kù)里的數(shù)據(jù)一樣
  2. 在主數(shù)據(jù)庫(kù)里創(chuàng)建一個(gè)同步賬號(hào)授權(quán)給從數(shù)據(jù)庫(kù)使用
  3. 配置主數(shù)據(jù)庫(kù)(修改配置文件)
  4. 配置從數(shù)據(jù)庫(kù)(修改配置文件)

安裝數(shù)據(jù)庫(kù)

詳情請(qǐng)參考Mysql安裝

給從庫(kù)授權(quán)

#以下操作在主庫(kù)進(jìn)行mysql> CREATE USER 'repl'@'192.168.233.247' IDENTIFIED BY 'repl123';Query OK, 0 rows affected (0.00 sec)mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.233.247';Query OK, 0 rows affected (0.00 sec)

確保數(shù)據(jù)一致

#新開一個(gè)終端,對(duì)主庫(kù)鎖表,防止配置期間有其他人寫入,鎖表期間不能關(guān)閉終端或退出mysql交互式命令行mysql> FLUSH TABLES WITH READ LOCK;#全備主庫(kù)[root@lynk ~]# mysqldump -uroot -plynk123~ --all-databases > /opt/all-201902271419.sql#復(fù)制備份文件到從庫(kù)[root@lynk ~]# scp /opt/all-201902271419.sql root@192.168.233.247:/opt/#在從庫(kù)恢復(fù)主庫(kù)的備份[root@Hyrule ~]# mysql -uroot -plynk123~ < /opt/all-201902271419.sql 

配置主庫(kù)

[root@lynk ~]# vim /etc/my.cnf#在[mysqld]后添加如下內(nèi)容(已有的內(nèi)容不要改變)datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock#啟用binlog日志log-bin=mysql-bin#數(shù)據(jù)庫(kù)服務(wù)器唯一標(biāo)識(shí)符,主庫(kù)的server-id值必須比從庫(kù)的大server-id=1symbolic-links=0log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid #結(jié)束主庫(kù)鎖表狀態(tài),只要退出另一個(gè)終端中mysql交互式命令行就行了mysql> quit#重啟mysql服務(wù)[root@lynk ~]# systemctl restart mysqld#查看主庫(kù)狀態(tài)[root@lynk ~]# mysql -uroot -plynk123~ -e 'show master status;'mysql: [Warning] Using a password on the command line interface can be insecure.+------------------+----------+--------------+------------------+-------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000001 |    23912 |              |                  |                   |+------------------+----------+--------------+------------------+-------------------+

配置從庫(kù)

[root@Hyrule ~]# vim /etc/my.cnf#添加如下內(nèi)容server-id=2relay-log=mysql-relay-bin#重啟從庫(kù)[root@Hyrule ~]# systemctl restart mysqld#配置主從復(fù)制mysql> CHANGE MASTER TO    -> MASTER_HOST='192.168.233.129',    -> MASTER_USER='repl',    -> MASTER_PASSWORD='repl123',    -> MASTER_LOG_FILE='mysql-bin.000001',    -> MASTER_LOG_POS=23912;Query OK, 0 rows affected, 2 warnings (0.04 sec)mysql> start slave;Query OK, 0 rows affected (0.02 sec)mysql> show slave status \G#確保以下兩項(xiàng)是Yes             Slave_IO_Running: Yes            Slave_SQL_Running: Yes

測(cè)試驗(yàn)證

#在主庫(kù)中新建一個(gè)庫(kù)或表,在從庫(kù)中查看是否有主庫(kù)中新建的表

主從監(jiān)控

zabbix可以滿足很多監(jiān)控需求,其自定義監(jiān)控尤其強(qiáng)大,主從監(jiān)控就是通過(guò)配置zabbix自定義監(jiān)控實(shí)現(xiàn)的。
請(qǐng)先部署zabbix,可以參考zabbix簡(jiǎn)介與部署

#在從庫(kù)添加一個(gè)mysql用戶密碼配置文件[root@Hyrule ~]# vim /root/.my.cnf[client]user=rootpassword=mysql登錄密碼[root@Hyrule ~]# chmod 755 /root

在客戶端進(jìn)行如下操作:

[root@localhost Hyrule]# vim /usr/local/etc/zabbix_agentd.conf#修改UnsafeUserParameters=1#在最后添加UserParameter=<key>,<shell command>,如UserParameter=check_delay,/scripts/mysql_delay.shUserParameter=check_status,/scripts/mysql_status.sh#重啟客戶端[root@Hyrule001 ~]# pkill zabbix[root@Hyrule001 ~]# zabbix_agentd#編寫監(jiān)控延遲的腳本[root@Hyrule ~]# mkdir /scripts[root@Hyrule ~]# vim /scripts/mysql_delay.sh#!/bin/bashmaster_log_pos=$(mysql -e 'show slave status \G;'|egrep "Read_Master_Log_Pos"|awk '{print $NF}')exec_log_pos=$(mysql -e 'show slave status \G;'|egrep "Exec_Master_Log_Pos"|awk '{print $NF}')echo "$[$master_log_pos-$exec_log_pos]"[root@Hyrule001 Hyrule]# chown zabbix.zabbix /scripts/mysql_delay.sh [root@Hyrule001 Hyrule]# chmod 777 /scripts/mysql_delay.sh 
#編寫監(jiān)控運(yùn)行狀態(tài)的腳本[root@Hyrule ~]# vim /scripts/mysql_status.sh#!/bin/bashIO_status=$(mysql -e 'show slave status \G;'|egrep "Slave_IO_Running"|awk '{print $NF}'|grep "Yes"|wc -l)SQL_status=$(mysql -e 'show slave status \G;'|egrep "Slave_SQL_Running"|awk '{print $NF}'|grep "Yes"|wc -l)if [ $[$IO_status+$SQL_status] -eq 2 ];thenecho 0elseecho 1fi[root@Hyrule001 Hyrule]# chown zabbix.zabbix /scripts/mysql_status.sh [root@Hyrule001 Hyrule]# chmod 777 /scripts/mysql_status.sh 

添加監(jiān)控項(xiàng)、觸發(fā)器和報(bào)警媒介





配置報(bào)警媒介詳見zabbix監(jiān)控配置與郵件告警的郵件告警章節(jié)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MySQL主從復(fù)制配置步驟如何操作?linux運(yùn)維
什么是MySQL主從復(fù)制讀寫分離,看這篇就夠了
MySQL主從數(shù)據(jù)庫(kù)同步延遲問題解決
Mysql數(shù)據(jù)庫(kù)主從心得整理
性能提升利器:MySQL 5.7多源主從復(fù)制的獨(dú)特性
mysql數(shù)據(jù)庫(kù)從庫(kù)同步延遲的問題
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服