아 리 클 라 우 드 서버 수 동 으로 mysql 쌍 기 열 비 를 실현 하 는 두 가지 방식
4743 단어 아 리 운서버mysql듀 플 렉 스 히트
1.열 백업 과 백업 의 차이
핫 백업 이란 High Available(HA)즉 고가 용 을 가리 키 며 백업 은 Backup,데이터 백업 의 일종 을 가리킨다.이것 은 두 가지 서로 다른 개념 이 고 대응 하 는 제품 도 두 가지 기능 적 으로 완전히 다른 제품 이다.열 백업 은 주로 업무 의 연속 성 을 보장 하고 실현 하 는 방법 은 고장 점 의 이전 이다.백업 의 주요 목적 은 데이터 손실 을 방지 하기 위해 복사 한 것 이기 때문에 백업 은 데이터 복구 가 응용의 고장 전이 가 아니 라 데이터 복 구 를 강조 한다.
2.쌍 기 열 비 는 무엇 입 니까?
이중 열 비 는 넓 은 의미 에서 볼 때 중요 한 서비스 에 대해 두 대의 서버 를 사용 하여 서로 백업 하고 같은 서 비 스 를 공동으로 집행 하 는 것 이다.한 서버 가 고장 이 났 을 때 다른 서버 가 서비스 임 무 를 맡 을 수 있어 인공 적 인 관여 가 필요 없 는 상황 에서 시스템 이 지속 적 으로 서 비 스 를 제공 할 수 있 도록 자동 으로 보장 한다.
협의 적 으로 볼 때 쌍 기 열 비 는 서로 백업 하 는 두 서버 를 사용 하여 같은 서 비 스 를 공동으로 수행 하 는 것 이다.그 중에서 한 호스트 는 작업 기(Primary Server)이 고 다른 호스트 는 백업 호스트(Standby Server)이다.시스템 의 정상 적 인 상황 에서 작업 기 는 응용 시스템 에 서 비 스 를 제공 하고 백업 기 는 작업 기의 운행 상황 을 감시 합 니 다(일반적으로 심장 박동 진단 을 통 해 작업 기 는 백업 기 가 정상 적 인지 검사 합 니 다).작업 기 에 이상 이 생 겨 응용 시스템 운영 을 지원 하지 못 할 때 백업 기 는 작업 기 를 주동 적 으로 관리 하고 관건 적 인 응용 서 비 스 를 계속 지원 합 니 다.시스템 의 끊 임 없 는 운행 을 보증 하 다.듀 플 렉 스 열 비 는 IT 핵심 서버,저장 소,네트워크 경로 교환 고장 에 대한 높 은 가용성 솔 루 션 을 겨냥 하고 있다.
자,다음은 아 리 클 라 우 드 서버 가 my sql 쌍 기 열 비 를 실현 하 는 것 을 소개 합 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
아 리 클 라 우 드 서버 는 keepalive 가상 ip 을 지원 하지 않 기 때문에 keepalive 를 통 해 my sql 의 이중 열 비 를 실현 할 수 없습니다.우리 가 있 는 이곳 에서 아 리 운 의 쌍 기 열 비 를 실현 하려 면 두 가지 방식 이 있다.
1.아 리 클 라 우 드 의 클 라 우 드 데이터베이스 고급 버 전 을 구 매 하여 라 이브 러 리 에서 메 인 라 이브 러 리 고장 에서 라 이브 러 리 로 자동 으로 전환 합 니 다.
2.여 기 는 주로 두 번 째 방식 을 말 합 니 다.두 대의 아 리 클 라 우 드 서버 는 각각 my sql 을 배치 하여 my sql 의 메 인 동기 화 를 실현 합 니 다.여기 서 my sql 의 주 동기 화 를 다시 말 하지 않 아 도 됩 니 다.여러분 은 스스로 바 이 두 를 할 수 있 습 니 다.필요 한 것 이 있 으 면 나중에 글 이 나 올 수 있 습 니 다.현재 my sql 메 인 동기 화 를 실현 했다 고 가정 하면 어떻게 처리 합 니까?
springboot 을 사용 하기 때문에 yml 파일 을 처리 하고 여러 사람 에 게 메 일 을 보 내야 합 니 다.여기 호스트 가 달 리 는 정시 작업,준비 장치 가 필요 하 다 면 그 에 맞 게 달 릴 수 있 습 니 다.
저 는 docker 를 사용 하여 배 치 된 my sql 이기 때문에 사용 한 것 입 니 다
docker ps
my sql 의 상 태 를 살 펴 보고 일반 배 치 된 것 이 ps 를 사용 하거나 my sql 에 직접 로그 인하 여 성공 적 으로 판단 할 수 있 습 니 다.
# 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()
총결산위 에서 말 한 것 은 소 편 이 소개 한 아 리 클 라 우 드 서버 가 수 동 으로 my sql 쌍 기 열 비 를 실현 하 는 두 가지 방식 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Centos 7 설정 Nginx - Aliyun ECSCentos 7 설정 Nginx, 자주 사용 하 는 nginx 작업, 시작 / 정지, 프 록 시, 역방향 프 록 시 설정 및 https ssl 443 설정 nginx 기 존 모듈 보기 configure argumen...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.