>  기사  >  데이터 베이스  >  MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?

MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?

PHPz
PHPz앞으로
2023-05-27 17:43:251757검색

    1. MySQL 마스터-슬레이브 복제

    일반적인 마스터-슬레이브 아키텍처:

    • 마스터 1개와 슬레이브 1개: 마스터 1개, 슬레이브 1개

    • 마스터 1개와 슬레이브 1개 : 하나의 마스터 , 다중 슬레이브

    자세한 내용은 아래 그림을 참조하세요.

    MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?

    MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?

    구현 세부사항

    MySQL 마스터-슬레이브 동기화를 수행할 때 기본 구현 세부 사항은 무엇입니까? 추후 마스터-슬레이브 지연 원인 분석 및 최적화 방안을 마련하기 위해 이론적 준비를 하여야 한다.

    MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?

    요약하면 MySQL의 마스터-슬레이브 복제는 다음과 같습니다. 비동기 단일 스레드.

    • 슬레이브Master上 1 个IO线程,负责向Slave传输 binary logbinlog

    • Slave上 2 个线程:IO 线程执行SQL的线程,其中:

      • IO线程:将获取的日志信息,追加到relay log上;

      • 执行SQL的线程:检测到relay log中内容有更新,则在Slave上执行sql;

    特别说明:MySQL 5.6.3 开始支持「多线程主从复制」,一个数据库一个线程多个数据库多个线程

    바이너리 로그(binlog) 전송을 담당하는 마스터IO 스레드 1개

    Slave에는 IO 스레드SQL 실행 스레드라는 2개의 스레드가 있으며 그 중

      IO 스레드: 획득한 로그 정보를 릴레이 로그에 추가합니다. MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?

      SQL을 실행하는 스레드: 릴레이 로그의 내용이 업데이트된 것을 감지하면 슬레이브 SQL에서 실행됨

      특별 참고 사항: MySQL 5.6.3은 "멀티 스레드마스터-슬레이브 복제를 지원하기 시작합니다. ", 데이터베이스하나의 스레드, 여러 데이터베이스여러 스레드일 수 있습니다.

      • 마스터와 슬레이브 간 마스터-슬레이브 복제 프로세스 완료:

      • 2. 슬레이브 추가
      • 요구 사항:
      • 현재 마스터에 데이터베이스 ucenter가 있고 슬레이브를 추가해야 합니다. 에 (현재 노예가 있습니다)

      분석:

      전날 4시에 데이터베이스 백업이 있습니다.

      기존 ucenter 슬레이브가 있습니다

      binlog의 시점을 찾는 것이 핵심

      작업:

      1 슬레이브 머신에 슬레이브 정보를 구성하고, mysql을 수정합니다. cfg 구성 및 슬레이브 데이터베이스 다시 시작

      [mysqld]에

      replicate-do-db = ucenter     #同步的数据库名字
      slave-skip-errors=all         #同步是忽略错误
      server-id       = 1112        #和master与其他slave保持不通

      추가 2. 전날 데이터베이스의 백업을 찾아서 새 슬레이브 머신에 복사하고 데이터베이스를 가져옵니다

      [root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G    ucenter_20171102.sql

      3. binlog 타임스탬프 찾기 (Key point)

      마스터에서 binlog를 찾아보세요

      [root@Ucenter /data/mysqldata]# ll -t *bin*
      -rw-rw---- 1 mysql mysql   30709744 Nov  2 21:32 mysql-bin.000268
      -rw-rw---- 1 mysql mysql        171 Nov  2 19:41 mysql-bin.index
      -rw-rw---- 1 mysql mysql 1021101094 Nov  2 19:41 mysql-bin.000267
      -rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266
      -rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265
      -rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264
      -rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263
      -rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262
      -rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261
      -rw-rw---- 1 mysql mysql 1073742184 Oct  7 09:49 mysql-bin.000260

      내 백업 시간이 2일 4시부터 시작이니 2일 4시 이전에 pos를 검색해야겠네요 mysql-bin.000267 위치 지정을 시작합니다

      [root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep &#39;3:59:&#39; |grep -v &#39;13:59:&#39;
      #171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824386335 Query    thread_id=3023086386    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar
      #171102 3:59:58 server id 21323 end_log_pos 824386698 Query    thread_id=3023086386    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824387706 Query    thread_id=3023086388    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar
      #171102 3:59:58 server id 21323 end_log_pos 824388209 Query    thread_id=3023086388    exec_time=0    error_code=0
      #171102 3:59:58 server id 21323 end_log_pos 824388534 Query    thread_id=3023086398    exec_time=0    error_code=0
      그래서 위치 지정이 끝나면 end_log_pos 824388534

      MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?4. 다른 슬레이브에서 master.info를 확인합니다

      🎜
      [root@LeduPass02/data/mysqldata]# cat master.info 
      15
      mysql-bin.000268
      11367810
      192.168.100.70
      omsync
      om@123
      3306
      60
      0
      
      0
      0
      🎜🎜5. 슬레이브에서 동기화를 구성합니다🎜🎜🎜 슬레이브에 마스터에 연결하는 방법을 알려주는 슬레이브 관련 설정, 여기에는 호스트 주소, 로그인 자격 증명 등이 포함됩니다. 🎜
      [root@ucenter_slave /data]# mysql
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 6
      Server version: 5.1.51-Community-Server-log Source
      
      Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
      This software comes with ABSOLUTELY NO WARRANTY. This is free software,
      and you are welcome to modify and redistribute it under the GPL v2 license
      
      Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.
      
      mysql (none)>change master to master_host=&#39;192.168.100.70&#39;,master_port=3306,master_user=&#39;omsync&#39;,master_password=&#39;om@123&#39;,master_log_file=&#39;mysql-bin.000267&#39;,master_log_pos=824388534;
      🎜🎜슬레이브 열기🎜🎜
      mysql (none)>start slave;
      🎜🎜슬레이브 상태 보기: 🎜🎜🎜🎜🎜

    위 내용은 MYSQL에서 슬레이브 데이터베이스를 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제