> 데이터 베이스 > MySQL 튜토리얼 > Alibaba Cloud 및 Tencent Cloud에서 기존 마스터-슬레이브 복제 환경을 쉽게 설정하는 방법을 알려주는 튜토리얼

Alibaba Cloud 및 Tencent Cloud에서 기존 마스터-슬레이브 복제 환경을 쉽게 설정하는 방법을 알려주는 튜토리얼

巴扎黑
풀어 주다: 2017-07-17 09:38:50
원래의
2149명이 탐색했습니다.

MySQL 마스터-슬레이브 복제 환경은 모든 고가용성의 기반이라고 할 수 있습니다. 그 원리도 상대적으로 간단합니다. 먼저 마스터-슬레이브 복제의 원리를 이해해 보겠습니다.

Alibaba Cloud 및 Tencent Cloud에서 기존 마스터-슬레이브 복제 환경을 쉽게 설정하는 방법을 알려주는 튜토리얼
그림에는 7단계가 있지만 기억과 이해를 돕기 위해 단순화할 수 있습니다.

  1. 수정 및 쓰기 작업 수행 마스터에서 ;

  2. MySQL은 수정된 데이터를 binlog에 기록합니다.

  3. 슬레이브는 IO 스레드를 시작하여 마스터의 새 binlog를 로컬 릴레이 로그로 가져옵니다.

  4. 릴레이 로그를 재생합니다. 마스터에서 다운로드할 수 있습니다. 위의 수정 및 추가 작업은 슬레이브 시스템에서 다시 실행됩니다.

  5. 슬레이브도 일반 작업에 따라 로컬 binlog에 작업을 기록합니다.

하드웨어 환경

Alibaba Cloud와 Tencent Cloud의 Diaosi 머신을 각각 보유하고 있어 테스트용으로 사용하고 있습니다. 개인 정보 보호를 위해 IP를 교체했지만 작동에는 영향을 미치지 않습니다.

Host ip Port Version Master-Slave
Alibaba Cloud 192.168.1.100 3 306 MySQL5.7.14 Master
텐센트 클라우드 192.168.1.200 3306 MySQL5.7.18 Slave

/etc/my의 mysqld 옵션에서 binlog 설정 서버 ID를

활성화합니다. cnf 편집 후 다시 시작

[mysqld]
log-bin=mysql-bin
server-id=1003306
로그인 후 복사
/etc/init.d/mysql restart
로그인 후 복사

복제 전용 계정 만들기

mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slave;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.200';
로그인 후 복사

내보낸 데이터를 Tencent Cloud에 동기화

mysqldump를 사용하여 모든 데이터베이스 데이터를 내보냅니다. 또한 현재 binlog 파일과 위치가 백업 파일에 기록됩니다.

#防止DDL、写操作
mysql>FLUSH TABLES WITH READ LOCK;
shell>mysqldump -uroot -p --single-transaction --master-data=2 -A>back.sql
로그인 후 복사

다음 방법으로도 보실 수 있습니다:

root@localhost [mysql]>show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000045 |      939 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
로그인 후 복사

Unlock table

mysql> UNLOCK TABLES;
로그인 후 복사

원격으로 파일을 과거로 전송

데이터 파일이 너무 크거나 데이터 양이 많은 경우, percona의 xtrabackup을 이용하여 백업하실 수 있습니다. 압축한 후 전송하세요.

rsync back.sql root@192.168.1.200:/root
로그인 후 복사

슬레이브 작업

binlog 활성화 및 server-id 설정

/etc/my.cnf

[mysqld]
log-bin=mysql-bin
server-id=2003306
로그인 후 복사

mysqld 옵션에서 편집하세요. MASTER_LOG_FILE

MASTER_LOG_POS

는 현재

show master status

값입니다. 물론

more

를 사용하여 지정해야 하는 위치를 볼 수도 있습니다.

shell>mysqldump -uroot -p --databases t1 <back.sql><em> 여기에 있는 </em>MASTER_LOG_FILE<em> 및 </em>MASTER_LOG_POS<em> 값은 ​​​​단지 </em>마스터 상태 표시<em>입니다. 물론 </em>more를 사용하여 지정해야 하는 위치를 볼 수도 있습니다. <p></p>
<pre class="brush:php;toolbar:false">CHANGE MASTER TO MASTER_HOST='192.168.1.200',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000045',MASTER_LOG_POS=939;
로그인 후 복사
슬레이브 시작
shell>more back.sql
-- MySQL dump 10.13  Distrib 5.7.14, for linux-glibc2.5 (x86_64)
--
-- Host: localhost    Database: 
-- ------------------------------------------------------
-- Server version   5.7.14-log

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Position to start replication or point-in-time recovery from
--

CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000045', MASTER_LOG_POS=939;
로그인 후 복사
Slave_IO_Running 및 Slave_SQL_Running에 대해 이중 YES가 표시되면 일반적으로 문제가 없습니다. Verification이제 마스터에서 새 데이터베이스 생성, 새 데이터 테이블 생성, 출력 삽입 등을 수행하여 마스터-슬레이브가 유효한지 확인할 수 있습니다. 이 단계에서는 원하는 것은 무엇이든 할 수 있습니다!

위 내용은 Alibaba Cloud 및 Tencent Cloud에서 기존 마스터-슬레이브 복제 환경을 쉽게 설정하는 방법을 알려주는 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿