집 >데이터 베이스 >MySQL 튜토리얼 >GTID 마스터-슬레이브 구성을 기반으로 한 MySQL의 요약 및 배열
추천 학습: mysql 비디오 튜토리얼
xtarbackup을 사용하여 데이터를 동기화한 다음 GTID를 기반으로 마스터와 슬레이브를 설정합니다.
xtarbackup은 데이터를 매우 빠르게 백업하고 복원하므로 마스터와 슬레이브의 사전 준비에 xtarbackup을 사용합니다. 이는 특히 대용량 데이터베이스 백업에 적합합니다. 데이터가 있고 설치가 매우 빠릅니다. 간단하고 사용하기 쉽습니다.... (말도 안 돼요, 말도 안 돼요).
특정 상황에 따라 특정 버전을 선택하세요. 다음 단계에 따라 설치하세요. 매우 간단하지 않나요...
# rpm -Uvh https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-3.noarch.rpm # yum list | grep percona # yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL # rpm -Uvh ftp://rpmfind.net/linux/epel/6/x86_64/libev-4.03-3.el6.x86_64.rpm # yum install percona-xtrabackup –y
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /data/backupMysql/
(1)을 사용하고 로컬에 백업
# 不压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=tar /data/backupMysql/>/data/mysql.tar # 压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=tar /data/backupMysql/ | gzip >/data/mysql.tar.gz
(2), 원격으로 백업
# 不压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=tar /data/backupMysql/ | ssh root@192.168.1.7 \ "cat - >/data/mysql.tar # 压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=tar /data/backupMysql/ | | ssh root@192.168.1.7 \ "gzip >/data/mysql.tar.gz
(3), 압축 해제 방법
# 未经过压缩的文件解压 tar xvf mysql.tar -C /data # 压缩过的文件解压 tar zxvf mysql.tar.gz -C /data
(1), 로컬로 백업
# 不压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=xbstream /data/backupMysql/>/data/mysql.xbstream # 压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=xbstream --compress /data/backupMysql/ >/data/mysql_compress.xbstream
(2), 백업 원격으로 진행해야 합니다
# 不压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=xbstream /data/backupMysql/| ssh root@192.168.1.7 "xbstream -x -C /backup/stream" # 压缩 innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=xbstream --compress /data/backupMysql/ | ssh root@192.168.1.7 "xbstream -x -C /backup/stream"
(3), 압축 해제 방법
#### 未压缩的 xbstream -x < mysql.xbstream -C /data #### 压缩过的 # 1、先解压xbstream xbstream -x < mysql_compress.xbstream -C /data # 2、再解压qp压缩格式 for bf in `find . -iname "*\.qp"`; do qpress -d $bf $(dirname $bf) && rm $bf; done 注:如果xtrabackup版本大于2.1.4,可以直接通过以下方式解压第二步。 innobackupex --decompress /data
먼저 원본 백업 압축 패키지를 디렉터리에 압축 해제한 후 다음 명령문을 실행하여 복원합니다.
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /var/lib/mysql/backup/
참고: 백업, 압축 해제 및 복구 과정에서 분할 화면 도구를 사용할 수 있습니다. 저는 화면을 사용하는 것을 좋아합니다.
GTID = source_id:transaction_id source_id: 원본 서버, 즉 mysql 서버의 고유한 server_uuid를 식별하는 데 사용됩니다. GTID는 슬레이브에 전달되므로 다음과 같이 이해될 수도 있습니다. 소스 ID입니다.
transaction_id: 현재 서버에 제출된 트랜잭션의 시퀀스 번호입니다. 일반적으로 1부터 시작하여 자체 증가하는 시퀀스입니다. 하나의 값은 하나의 트랜잭션에 해당합니다.
예: 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 첫 번째 문자열은 서버의 server_uuid, 즉 3E11FA47-71CA-11E1-9E33-C80AA9429562이고 마지막 23은 transaction_id입니다
1. 메인 라이브러리 측에서 트랜잭션이 실행되어 제출되면 GTID가 생성되어 binlog에 기록됩니다.
2. binlog가 슬레이브로 전송되어 슬레이브의 Relaylog에 저장된 후 GTID 값을 읽고 슬레이브에 실행할 다음 GTID 값을 알려주는 gtid_next 변수를 설정합니다.
3. SQL 스레드는 릴레이 로그에서 GTID를 얻은 다음 슬레이브 측의 binlog를 비교하여 GTID가 존재하는지 확인합니다.
4. 기록이 있으면 GTID의 트랜잭션이 실행되었음을 의미하며 슬레이브는 이를 무시합니다.
5. 기록이 없으면 슬레이브는 GTID 트랜잭션을 실행하고 GTID를 자체 binlog에 기록합니다. 트랜잭션을 읽고 실행하기 전에 먼저 다른 세션이 GTID를 보유하고 있는지 확인하여 실행되지 않는지 확인합니다. 자꾸.
6. 파싱 과정에서 기본 키가 있는지 판단합니다. 없으면 보조 인덱스를 사용합니다.
GTID 구성은 주로 구성 파일에서 GTID 기능과 관련된 몇 가지 중요한 매개변수를 수정하는 것입니다. mysql 버전은 mysql-5.6.5 이상을 권장합니다.
기본 구성은 다음과 같습니다.
[mysqld] #GTID: server_id=135 #服务器id gtid_mode=on #开启gtid模式 enforce_gtid_consistency=on #强制gtid一致性,开启后对于特定create table不被支持 #binlog log_bin=master-binlog log-slave-updates=1 binlog_format=row #强烈建议,其他格式可能造成数据不一致 #relay log skip_slave_start=1
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --stream=tar /data/backupMysql/ | | ssh root@192.168.1.7 \ "gzip >/data/mysql.tar.gz
tar zxvf /data/mysql.tar.gz -C /data/baskup
[mysqld] #GTID: gtid_mode=on enforce_gtid_consistency=on server_id=143 #binlog log-bin=slave-binlog log-slave-updates=1 binlog_format=row #强烈建议,其他格式可能造成数据不一致 #relay log skip_slave_start=1
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /data/backup
more /data/backup/2018-02-08_15-03-18/xtrabackup_binlog_info
(1), master
grant replication slave on *.* to slaveuser@'192.168.1.7' identified by "c2xhdmV1c2Vy";
(2)에서 승인 슬레이브 구성
stop slave; SET GLOBAL gtid_purged="c5b5ffe7-ce66-11e7-9a19-00163e00013d:1-515758"; CHANGE MASTER TO MASTER_HOST='192.168.1.6',MASTER_PORT=3306,MASTER_USER='slaveuser',MASTER_PASSWORD='c2xhdmV1c2Vy',MASTER_AUTO_POSITION=1; start slave;
推荐学习:mysql视频教程
위 내용은 GTID 마스터-슬레이브 구성을 기반으로 한 MySQL의 요약 및 배열의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!