欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

阿里云服務(wù)器手動(dòng)實(shí)現(xiàn)mysql雙機(jī)熱備的兩種方式

 更新時(shí)間:2019年10月14日 09:16:10   作者:王墨語(yǔ)  
阿里云服務(wù)器由于不支持keepalive虛擬ip,導(dǎo)致無(wú)法通過(guò)keepalive來(lái)實(shí)現(xiàn)mysql的雙機(jī)熱備。我們這里要實(shí)現(xiàn)阿里云的雙機(jī)熱備有兩種方式。感興趣的朋友跟隨小編一起看看吧

一、概念

1、熱備份和備份的區(qū)別

  熱備份指的是:High Available(HA)即高可用,而備份指的是Backup,數(shù)據(jù)備份的一種。這是兩種不同的概念,應(yīng)對(duì)的產(chǎn)品也是兩種功能上完全不同的產(chǎn)品。熱備份主要保障業(yè)務(wù)的連續(xù)性,實(shí)現(xiàn)的方法是故障點(diǎn)的轉(zhuǎn)移。而備份,主要目的是為了防止數(shù)據(jù)丟失,而做的一份拷貝,所以備份強(qiáng)調(diào)的是數(shù)據(jù)恢復(fù)而不是應(yīng)用的故障轉(zhuǎn)移。

2、什么是雙機(jī)熱備? 

  雙機(jī)熱備從廣義上講,就是對(duì)于重要的服務(wù),使用兩臺(tái)服務(wù)器,互相備份,共同執(zhí)行同一服務(wù)。當(dāng)一臺(tái)服務(wù)器出現(xiàn)故障時(shí),可以由另一臺(tái)服務(wù)器承擔(dān)服務(wù)任務(wù),從而在不需要人工干預(yù)的情況下,自動(dòng)保證系統(tǒng)能持續(xù)提供服務(wù)。

  從狹義上講,雙機(jī)熱備就是使用互為備份的兩臺(tái)服務(wù)器共同執(zhí)行同一服務(wù),其中一臺(tái)主機(jī)為工作機(jī)(Primary Server),另一臺(tái)主機(jī)為備份主機(jī)(Standby Server)。在系統(tǒng)正常情況下,工作機(jī)為應(yīng)用系統(tǒng)提供服務(wù),備份機(jī)監(jiān)視工作機(jī)的運(yùn)行情況(一般是通過(guò)心跳診斷,工作機(jī)同時(shí)也在檢測(cè)備份機(jī)是否正常),當(dāng)工作機(jī)出現(xiàn)異常,不能支持應(yīng)用系統(tǒng)運(yùn)營(yíng)時(shí),備份機(jī)主動(dòng)接管工作機(jī)的工作,繼續(xù)支持關(guān)鍵應(yīng)用服務(wù),保證系統(tǒng)不間斷的運(yùn)行。雙機(jī)熱備針對(duì)的是IT核心服務(wù)器、存儲(chǔ)、網(wǎng)絡(luò)路由交換的故障的高可用性解決方案。

好,下面給大家介紹阿里云服務(wù)器實(shí)現(xiàn)mysql雙機(jī)熱備,具體內(nèi)容如下所示:

阿里云服務(wù)器由于不支持keepalive虛擬ip,導(dǎo)致無(wú)法通過(guò)keepalive來(lái)實(shí)現(xiàn)mysql的雙機(jī)熱備。我們這里要實(shí)現(xiàn)阿里云的雙機(jī)熱備有兩種方式:

1,購(gòu)買(mǎi)阿里云的云數(shù)據(jù)庫(kù)高級(jí)版,自帶從庫(kù),主庫(kù)故障自動(dòng)切換到從庫(kù)

2這里主要是講第二種方式,兩臺(tái)阿里云服務(wù)器,分別部署mysql,實(shí)現(xiàn)mysql的主主同步。這里就不著重講mysql的主主同步了,大家可以自行百度,有需要的,以后可能會(huì)出一篇文章。假設(shè)現(xiàn)在已經(jīng)實(shí)現(xiàn)了mysql主主同步的情況下,如何處理

因?yàn)槭褂玫氖莝pringboot,所以需要處理下yml文件,然后加了個(gè)發(fā)送郵件給多個(gè)人,這里主機(jī)跑的定時(shí)任務(wù),備機(jī)需要的話,也可以相應(yīng)的跑一下

因?yàn)槲沂鞘褂胐ocker部署的mysql,所以使用的docker ps 查看mysql的狀態(tài),如果普通部署的可以使用ps或者直接登錄mysql看能否成功來(lái)判斷

# coding: utf8
import subprocess
from email.mime.text import MIMEText
import smtplib
import os
#因?yàn)檫@里用的Java的springboot,如果切換備機(jī),需要修改部分yml文件
YML_PATH = ''
NEW_YML = ''
msg_from = '' # 發(fā)送方郵箱
passwd = '' # 填入發(fā)送方郵箱的授權(quán)碼
msg_to = []
def check_mysql():
 res = subprocess.Popen('docker ps |grep mysql', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
 stdout, stderr = res.communicate()
 if stdout:
  res_status = subprocess.Popen("docker ps |grep mysql| awk '{print $7}'", stdout=subprocess.PIPE,
          stderr=subprocess.PIPE, shell=True)
  out, err = res_status.communicate()
  if out.strip() == "Up":
   print 'mysql is ok'
  else:
   print 'mysql is broken, switch standby machine'
   flag = judge_mysql_string()
   if flag:
    print '已經(jīng)連接備機(jī),無(wú)需切換'
   else:
    switch_mysql()
 else:
  print 'mysql is broken, switch standby machine'
  flag = judge_mysql_string()
  if flag:
   print '已經(jīng)連接備機(jī),無(wú)需切換'
  else:
   switch_mysql()
def switch_mysql():
 print '---copy yml----'
 subprocess.call('cp {} {}'.format(NEW_YML, YML_PATH), shell=True)
 subprocess.call('docker restart tomcat', shell=True)
 subject = 'mysql主機(jī)故障'
 info = 'mysql主機(jī)故障,已經(jīng)切換到備機(jī),請(qǐng)查看主機(jī)問(wèn)題,及時(shí)修復(fù),如需切換回去,' \
 content = '<html><meta charset="UTF-8"><body><p style="color: red">{}</p> </body></html>'.format(info)
 send_email(subject, content)
 print '----end switch---'
def send_email(subject, content):
 msg = MIMEText(content, 'html', 'utf-8')
 msg['Subject'] = subject
 msg['From'] = msg_from
 msg['To'] = ','.join(msg_to)
 try:
  s = smtplib.SMTP_SSL("smtp.qq.com", 465)
  s.login(msg_from, passwd)
  s.sendmail(msg_from, msg_to, msg.as_string())
 except Exception as e:
  print e
 finally:
  s.quit()
def judge_mysql_string():
 with open(os.path.join(YML_PATH, 'application.yml'),'r') as f:
  res = f.read()
  if 'your ip' in res:
   return True
  else:
   return False
check_mysql()

總結(jié)

以上所述是小編給大家介紹的阿里云服務(wù)器手動(dòng)實(shí)現(xiàn)mysql雙機(jī)熱備的兩種方式,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • MySQL表的碎片整理和空間回收的方法

    MySQL表的碎片整理和空間回收的方法

    本文主要介紹了MySQL表的碎片整理和空間回收的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 一條慢SQL語(yǔ)句引發(fā)的改造之路

    一條慢SQL語(yǔ)句引發(fā)的改造之路

    這篇文章主要給大家介紹了關(guān)于一條慢SQL語(yǔ)句引發(fā)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • MySQL外鍵創(chuàng)建失敗1005原因匯總

    MySQL外鍵創(chuàng)建失敗1005原因匯總

    MySQL外鍵創(chuàng)建失敗1005原因有很多,本文整理了一些,希望對(duì)大家有所幫助
    2014-01-01
  • MySQL InnoDB行記錄存儲(chǔ)結(jié)構(gòu)分析

    MySQL InnoDB行記錄存儲(chǔ)結(jié)構(gòu)分析

    工作中我們基本上都是用MySQL的InnoDB存儲(chǔ)引擎,但是大家有去了解過(guò)它的底層存儲(chǔ)結(jié)構(gòu)嗎,想必絕大部分人不知道或者說(shuō)不知道怎么查相關(guān)知識(shí),剛好來(lái)看這篇文章就對(duì)了
    2023-07-07
  • MySQL性能優(yōu)化之路---修改配置文件my.cnf

    MySQL性能優(yōu)化之路---修改配置文件my.cnf

    mysql數(shù)據(jù)庫(kù)的優(yōu)化,算是一個(gè)老生常談的問(wèn)題了,網(wǎng)上也有很多關(guān)于各方面性能優(yōu)化的例子,今天我們要談的是MySQL 系統(tǒng)參數(shù)的優(yōu)化即優(yōu)化my.cnf文件
    2014-06-06
  • MySQL中常見(jiàn)關(guān)鍵字的用法總結(jié)

    MySQL中常見(jiàn)關(guān)鍵字的用法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了MySQL中常見(jiàn)關(guān)鍵字的用法,例如GROUP BY、ORDER BY和LIMIT,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-09-09
  • MySQL中的窗口函數(shù)使用及說(shuō)明

    MySQL中的窗口函數(shù)使用及說(shuō)明

    這篇文章主要介紹了MySQL中的窗口函數(shù)使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 自用mysql自帶命令實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份還原的方法

    自用mysql自帶命令實(shí)現(xiàn)數(shù)據(jù)庫(kù)備份還原的方法

    本文章介紹了都是mysql常用的命令一些數(shù)據(jù)導(dǎo)入導(dǎo)出的命令了,只要我們撐握這些命令就可以方法快速的給我們的數(shù)據(jù)庫(kù)進(jìn)行備份還原了
    2012-04-04
  • MySQL5.7.23解壓版安裝教程圖文詳解

    MySQL5.7.23解壓版安裝教程圖文詳解

    這篇文章主要介紹了MySQL5.7.23解壓版安裝教程圖文詳解,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • MySQL查看數(shù)據(jù)庫(kù)狀態(tài)命令詳細(xì)講解

    MySQL查看數(shù)據(jù)庫(kù)狀態(tài)命令詳細(xì)講解

    在工作中,有時(shí)候我們需要了解MySQL服務(wù)器的狀態(tài)信息,下面這篇文章主要給大家介紹了關(guān)于MySQL查看數(shù)據(jù)庫(kù)狀態(tài)命令的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03

最新評(píng)論