婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 阿里云服務器手動實現mysql雙機熱備的兩種方式

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

熱門標簽:銅陵防封電銷卡 美國反騷擾電話機器人 騰訊地圖標注提升 悟空科技電話機器人 真人語音電話機器人 怎么在地圖標注位置生成圖片 400電話可以免費申請嗎 福建外呼系統定制化 電銷卡外呼系統供應商

一、概念

1、熱備份和備份的區別

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

2、什么是雙機熱備? 

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

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

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

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

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

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

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

因為我是使用docker部署的mysql,所以使用的docker ps 查看mysql的狀態,如果普通部署的可以使用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 = '' # 發送方郵箱
passwd = '' # 填入發送方郵箱的授權碼
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 '已經連接備機,無需切換'
   else:
    switch_mysql()
 else:
  print 'mysql is broken, switch standby machine'
  flag = judge_mysql_string()
  if flag:
   print '已經連接備機,無需切換'
  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主機故障,已經切換到備機,請查看主機問題,及時修復,如需切換回去,' \

 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()

總結

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

您可能感興趣的文章:
  • 阿里云服務器手動實現mysql雙機熱備的兩種方式
  • 阿里云ECS云服務器(linux系統)安裝mysql后遠程連接不了(踩坑)
  • 阿里云esc服務器Docker部署單節點Mysql的講解
  • 阿里云云服務器mysql密碼找回的方法
  • 使用navicate連接阿里云服務器上的mysql
  • Mysql數據庫雙機熱備難點分析
  • Mysql 數據庫雙機熱備的配置方法
  • mysql雙機熱備份的實現步驟

標簽:白銀 武威 云浮 臨汾 湖北 聊城 烏海 湖南

巨人網絡通訊聲明:本文標題《阿里云服務器手動實現mysql雙機熱備的兩種方式》,本文關鍵詞  阿里,云,服務器,手動,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《阿里云服務器手動實現mysql雙機熱備的兩種方式》相關的同類信息!
  • 本頁收集關于阿里云服務器手動實現mysql雙機熱備的兩種方式的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 平邑县| 五大连池市| 通渭县| 涿鹿县| 宁远县| 中江县| 磐安县| 阜康市| 枣庄市| 抚顺县| 庆安县| 九龙城区| 称多县| 克东县| 台中县| 镶黄旗| 曲麻莱县| 呼图壁县| 江永县| 福安市| 德庆县| 虎林市| 牟定县| 长沙县| 恩施市| 高安市| 鲁甸县| 综艺| 宜黄县| 固始县| 成安县| 灯塔市| 秀山| 沾化县| 黑龙江省| 乌什县| 扎兰屯市| 延安市| 拉孜县| 东莞市| 都兰县|