mysql 마스터-슬레이브 지연을 해결하는 방법
MySQL에 내장된 복제 기능은 대규모 고성능 애플리케이션을 구축하기 위한 기반입니다. MySQL 데이터를 여러 시스템에 배포합니다. 이 분산 메커니즘은 특정 MySQL 호스트의 데이터를 다른 호스트 슬레이브에 복사하고 이를 다시 실행함으로써 달성됩니다.
복제 중에 하나의 서버는 마스터 역할을 하고 하나 이상의 다른 서버는 슬레이브 역할을 합니다. 마스터는 바이너리 로그 파일에 업데이트를 기록하고 파일 인덱스를 유지하여 로그 회전을 추적합니다. 이러한 로그는 슬레이브 서버로 전송된 업데이트를 기록합니다. 슬레이브가 마스터에 연결되면 슬레이브가 로그에서 읽은 마지막 성공적인 업데이트 위치를 마스터에 알립니다. 슬레이브 서버는 그 이후 발생한 모든 업데이트를 수신한 다음 마스터 서버가 업데이트를 알릴 때까지 차단하고 기다립니다.
mysql 마스터-슬레이브 복제 문제:
- 기본 데이터베이스가 다운되면 데이터가 손실될 수 있습니다
- 슬레이브 라이브러리에는 SQL Thread가 하나만 있고, 메인 라이브러리는 쓰기 부담이 커서 복제가 지연될 가능성이 높습니다
답변: MySQL 데이터베이스의 마스터-슬레이브 동기화 지연 원리에 대해 이야기할 때 mysql 데이터베이스의 마스터-슬레이브 복제 원칙부터 시작해야 합니다. Mysql의 마스터-슬레이브 복제는 기본 데이터베이스가 binlog를 생성하는 작업입니다. 모든 DDL 및 DML에 대해 Binlog는 시퀀스 쓰기이므로 슬레이브의 Slave_IO_Running 스레드는 로그를 가져오기 위해 메인 라이브러리로 이동하며 슬레이브의 Slave_SQL_Running 스레드는 모든 작업을 구현합니다. 슬레이브에서 기본 라이브러리의 DDL 및 DML 작업. DML 및 DDL의 IO 작업은 순차적이지 않고 무작위이므로 비용이 매우 높습니다. 슬레이브에 대한 다른 쿼리도 잠금 경합을 일으킬 수 있습니다. Slave_SQL_Running도 단일 스레드이므로 DDL 카드 마스터를 10번 실행해야 합니다. 분 후에 모든 후속 DDL은 계속하기 전에 이 DDL의 실행이 완료될 때까지 기다리므로 지연이 발생합니다. 어떤 친구들은 "메인 라이브러리의 동일한 DDL도 10분 동안 실행해야 합니다. 슬레이브가 지연되는 이유는 무엇입니까?"라고 묻습니다. 대답은 마스터는 동시에 실행할 수 있지만 Slave_SQL_Running 스레드는 실행할 수 없다는 것입니다.
답변: 메인 라이브러리의 TPS 동시성이 높을 때 생성된 DDL 수가 슬레이브의 SQL 스레드 하나가 감당할 수 있는 범위를 초과하여 지연이 발생합니다. 물론 슬레이브와 함께 잠금 대기가 발생할 수도 있습니다. 큰 쿼리 문.
답변: 슬레이브 동기화 지연을 줄이는 가장 간단한 솔루션은 아키텍처를 최적화하고 기본 라이브러리의 DDL이 빠르게 실행되도록 노력하는 것입니다. sync_binlog=1, innodb_flush_log_at_trx_commit = 1 및 기타 설정과 같이 높은 데이터 보안을 갖는 기본 라이브러리가 작성된다는 사실도 있지만 슬레이브에는 이러한 높은 데이터 보안이 필요하지 않습니다. binlog를 끄십시오. innodb_flushlog를 0으로 설정하여 SQL 실행 효율성을 높일 수도 있습니다. 다른 하나는 메인 라이브러리보다 좋은 하드웨어 장치를 슬레이브로 사용하는 것입니다.
1. 네트워크 지연
2. 마스터로드
3. 슬레이브 로드
일반적인 접근 방식은 여러 슬레이브를 사용하여 읽기 요청을 분산시킨 다음 다른 작업 없이 백업에만 이러한 슬레이브의 전용 서버를 사용하여 '실시간' 요구 사항을 최대한 달성하는 것입니다.
–slave-net-timeout=초
매개변수 의미: 슬레이브가 기본 데이터베이스에서 로그 데이터를 읽지 못한 경우 연결을 다시 설정하고 데이터를 얻기까지 기다리는 시간
Slave_net_timeout의 단위는 초입니다. 기본 설정은 3600초
입니다.
|slave_net_timeout 3600
–마스터-연결-재시도=초
매개변수 의미: 마스터-슬레이브 연결을 다시 설정할 때 연결 설정에 실패할 경우 재시도하는 데 걸리는 시간입니다.
마스터-연결-재시도 단위는 초입니다. 기본 설정은 60초입니다
일반적으로 위의 2개 매개변수를 구성하면 네트워크 문제로 인한 마스터-슬레이브 데이터 동기화 지연을 줄일 수 있습니다
위 내용은 mysql 마스터-슬레이브 지연을 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Centos와 Ubuntu의 주요 차이점은 다음과 같습니다. Origin (Centos는 Red Hat, Enterprise의 경우, Ubuntu는 Debian에서 시작하여 개인의 경우), 패키지 관리 (Centos는 안정성에 중점을 둡니다. Ubuntu는 APT를 사용하여 APT를 사용합니다), 지원주기 (Ubuntu는 5 년 동안 LTS 지원을 제공합니다), 커뮤니티에 중점을 둔다 (Centos Conciors on ubuntu). 튜토리얼 및 문서), 사용 (Centos는 서버에 편향되어 있으며 Ubuntu는 서버 및 데스크탑에 적합), 다른 차이점에는 설치 단순성 (Centos는 얇음)이 포함됩니다.

CentOS 설치 단계 : ISO 이미지를 다운로드하고 부팅 가능한 미디어를 실행하십시오. 부팅하고 설치 소스를 선택하십시오. 언어 및 키보드 레이아웃을 선택하십시오. 네트워크 구성; 하드 디스크를 분할; 시스템 시계를 설정하십시오. 루트 사용자를 만듭니다. 소프트웨어 패키지를 선택하십시오. 설치를 시작하십시오. 설치가 완료된 후 하드 디스크에서 다시 시작하고 부팅하십시오.

Centos는 중단되었으며 대안은 다음과 같습니다. 1. Rocky Linux (Best Compatibility); 2. Almalinux (Centos와 호환); 3. Ubuntu 서버 (구성 필수); 4. Red Hat Enterprise Linux (상업용 버전, 유료 라이센스); 5. Oracle Linux (Centos 및 Rhel과 호환). 마이그레이션시 고려 사항은 호환성, 가용성, 지원, 비용 및 커뮤니티 지원입니다.

Docker Desktop을 사용하는 방법? Docker Desktop은 로컬 머신에서 Docker 컨테이너를 실행하는 도구입니다. 사용 단계는 다음과 같습니다. 1. Docker Desktop 설치; 2. Docker Desktop을 시작하십시오. 3. Docker 이미지를 만듭니다 (Dockerfile 사용); 4. Docker Image 빌드 (Docker 빌드 사용); 5. 도커 컨테이너를 실행하십시오 (Docker Run 사용).

Docker는 Linux 커널 기능을 사용하여 효율적이고 고립 된 응용 프로그램 실행 환경을 제공합니다. 작동 원리는 다음과 같습니다. 1. 거울은 읽기 전용 템플릿으로 사용되며, 여기에는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함합니다. 2. Union 파일 시스템 (Unionfs)은 여러 파일 시스템을 스택하고 차이점 만 저장하고 공간을 절약하고 속도를 높입니다. 3. 데몬은 거울과 컨테이너를 관리하고 클라이언트는 상호 작용을 위해 사용합니다. 4. 네임 스페이스 및 CGroup은 컨테이너 격리 및 자원 제한을 구현합니다. 5. 다중 네트워크 모드는 컨테이너 상호 연결을 지원합니다. 이러한 핵심 개념을 이해 함으로써만 Docker를 더 잘 활용할 수 있습니다.

Centos가 중단 된 후 사용자는 다음과 같은 조치를 취할 수 있습니다. Almalinux, Rocky Linux 및 Centos 스트림과 같은 호환되는 분포를 선택하십시오. Red Hat Enterprise Linux, Oracle Linux와 같은 상업 분포로 마이그레이션합니다. Centos 9 Stream : 롤링 분포로 업그레이드하여 최신 기술을 제공합니다. Ubuntu, Debian과 같은 다른 Linux 배포판을 선택하십시오. 컨테이너, 가상 머신 또는 클라우드 플랫폼과 같은 다른 옵션을 평가하십시오.

대 코드 시스템 요구 사항 : 운영 체제 : Windows 10 이상, MacOS 10.12 이상, Linux 배포 프로세서 : 최소 1.6GHz, 권장 2.0GHz 이상의 메모리 : 최소 512MB, 권장 4GB 이상의 저장 공간 : 최소 250MB, 권장 1GB 및 기타 요구 사항 : 안정 네트워크 연결, Xorg/Wayland (LINUX)

실패한 Docker 이미지 빌드에 대한 문제 해결 단계 : Dockerfile 구문 및 종속성 버전을 확인하십시오. 빌드 컨텍스트에 필요한 소스 코드 및 종속성이 포함되어 있는지 확인하십시오. 오류 세부 사항에 대한 빌드 로그를보십시오. -표적 옵션을 사용하여 계층 적 단계를 구축하여 실패 지점을 식별하십시오. 최신 버전의 Docker Engine을 사용하십시오. -t [image-name] : 디버그 모드로 이미지를 빌드하여 문제를 디버깅하십시오. 디스크 공간을 확인하고 충분한 지 확인하십시오. 빌드 프로세스에 대한 간섭을 방지하기 위해 Selinux를 비활성화하십시오. 커뮤니티 플랫폼에 도움을 요청하고 Dockerfiles를 제공하며보다 구체적인 제안을 위해 로그 설명을 구축하십시오.
