最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

阿里云服務器手動實現(xiàn)mysql雙機熱備的兩種方式

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

一、概念

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

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

2、什么是雙機熱備? 

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

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

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

阿里云服務器由于不支持keepalive虛擬ip,導致無法通過keepalive來實現(xiàn)mysql的雙機熱備。我們這里要實現(xiàn)阿里云的雙機熱備有兩種方式:

1,購買阿里云的云數(shù)據(jù)庫高級版,自帶從庫,主庫故障自動切換到從庫

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

因為使用的是springboot,所以需要處理下yml文件,然后加了個發(fā)送郵件給多個人,這里主機跑的定時任務,備機需要的話,也可以相應的跑一下

因為我是使用docker部署的mysql,所以使用的docker ps 查看mysql的狀態(tài),如果普通部署的可以使用ps或者直接登錄mysql看能否成功來判斷

# coding: utf8
import subprocess
from email.mime.text import MIMEText
import smtplib
import os
#因為這里用的Java的springboot,如果切換備機,需要修改部分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)連接備機,無需切換'
   else:
    switch_mysql()
 else:
  print 'mysql is broken, switch standby machine'
  flag = judge_mysql_string()
  if flag:
   print '已經(jīng)連接備機,無需切換'
  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主機故障'
 info = 'mysql主機故障,已經(jīng)切換到備機,請查看主機問題,及時修復,如需切換回去,' \
 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é)

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

相關文章

  • Mysql索引分類及其使用實例詳解

    Mysql索引分類及其使用實例詳解

    數(shù)據(jù)庫的索引就像一本書的目錄,能夠加快數(shù)據(jù)庫的查詢速度,MYSQL索引有四種PRIMARY、INDEX、UNIQUE、FULLTEXT,?其中PRIMARY、INDEX、UNIQUE是一類,F(xiàn)ULLTEXT是一類,本文給大家介紹Mysql索引分類及其使用實例,感興趣的朋友一起看看吧
    2022-07-07
  • MySQL重啟之后無法寫入數(shù)據(jù)的問題排查及解決

    MySQL重啟之后無法寫入數(shù)據(jù)的問題排查及解決

    客戶在給系統(tǒng)打補丁之后需要重啟服務器,數(shù)據(jù)庫在重啟之后,read_only 的設置與標準配置 文件中不一致,導致主庫在啟動之后無法按照預期寫入,所以本文給大家介紹了MySQL重啟之后無法寫入數(shù)據(jù)的問題排查及解決,需要的朋友可以參考下
    2024-05-05
  • MySQL全文檢索的實現(xiàn)示例

    MySQL全文檢索的實現(xiàn)示例

    全文搜索是一種在文本字段中查找關鍵詞的功能。在MySQL中,我們可以使用全文搜索來提高查詢的效率,本文主要介紹了MySQL全文檢索的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-04-04
  • mysql 8.0.16 壓縮包安裝配置方法圖文教程

    mysql 8.0.16 壓縮包安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 8.0.16 壓縮包安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法

    MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法

    這篇文章主要介紹了MySQL出現(xiàn)SQL Error (2013)連接錯誤的解決方法,2013錯誤主要還是在于用戶的授權(quán)問題,需要的朋友可以參考下
    2016-06-06
  • MySQL中的交叉連接、自然連接和內(nèi)連接查詢詳解

    MySQL中的交叉連接、自然連接和內(nèi)連接查詢詳解

    這篇文章主要介紹了MySQL中的交叉連接、自然連接和內(nèi)連接查詢,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 解決mysql報錯You must reset your password using ALTER USER statement before executing this statement問題

    解決mysql報錯You must reset your password&nb

    文章介紹了在Linux系統(tǒng)中解決MySQL 5.7及以上版本root用戶密碼過期無法登錄的問題方法,以及如何處理系統(tǒng)權(quán)限表mysql.user結(jié)構(gòu)錯誤的問題
    2024-11-11
  • 實例詳解mysql子查詢

    實例詳解mysql子查詢

    這篇文章主要介紹了mysql子查詢的相關資料,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-09-09
  • 關于MySQL表中沒有主鍵時如何找到重復的數(shù)據(jù)

    關于MySQL表中沒有主鍵時如何找到重復的數(shù)據(jù)

    這篇文章主要來和探討一下關于MySQL表中沒有主鍵時,該如何找到重復的數(shù)據(jù),文中的示例代碼講解詳細,具有一定的參考價值,需要的可以了解一下
    2023-06-06
  • MySQL刪除了記錄不生效的原因排查

    MySQL刪除了記錄不生效的原因排查

    這篇文章主要介紹了MySQL刪除了記錄不生效的原因排查,幫助大家解決MySQL刪除語句不生效的問題,感興趣的朋友可以了解下
    2020-11-11

最新評論

乡宁县| 栾城县| 芦溪县| 舒兰市| 耒阳市| 南部县| 海口市| 潼南县| 友谊县| 清苑县| 图木舒克市| 巨野县| 黄山市| 乌苏市| 德令哈市| 阿鲁科尔沁旗| 光泽县| 将乐县| 旬邑县| 东乌| 都江堰市| 新竹县| 麟游县| 黎川县| 泾川县| 达州市| 黄浦区| 桦甸市| 苍山县| 砚山县| 安义县| 资中县| 井陉县| 龙海市| 吴川市| 延寿县| 琼结县| 湘阴县| 岗巴县| 纳雍县| 靖安县|