ホームページ >データベース >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_idsource_id:元のサーバー、つまりmysqlサーバーの一意のserver_uuidを識別するために使用されます。スレーブに対しては、ソース ID としても使用できます。
transaction_id: 現在のサーバー上で送信されたトランザクションのシーケンス番号です。通常は 1 から始まる自己増加シーケンスです。1 つの値が 1 つのトランザクションに対応します。
例: 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 最初の文字列はサーバーのserver_uuid、つまり 3E11FA47-71CA-11E1-9E33-C80AA9429562 で、最後の 23 はtransaction_id#です
## 2.3 GTID の原理2. ビンログがスレーブに転送され、スレーブのリレーログに保存されたら、GTID の値を読み取り、gtid_next 変数を設定します。これにより、次に実行される GTID 値がスレーブに指示されます。
3. SQL スレッドはリレー ログから GTID を取得し、スレーブ側の binlog を比較して GTID が存在するかどうかを確認します。
4. レコードがある場合は、GTID を持つトランザクションが実行されたことを意味し、スレーブはそれを無視します。
5. レコードがない場合、スレーブは GTID トランザクションを実行し、GTID を自身の binlog に記録します。トランザクションを読み取って実行する前に、まず他のセッションが GTID を保持しているかどうかを確認します。繰り返し実行されることはありません。
6. 解析中に主キーがあるかどうかを判定し、ない場合はセカンダリインデックスを使用し、ない場合は全スキャンを使用します。
2.4 GTID
1. フェイルオーバーの実装が容易になり、以前のように log_file と log_pos を探す必要がありません。2.5.1 マスター Gtid を開きます
主な構成は次のとおりです:[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
2.5.2 マスターでデータのバックアップを実行します
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
grant replication slave on *.* to slaveuser@'192.168.1.7' identified by "c2xhdmV1c2Vy";
推荐学习:mysql视频教程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;
2.6 已运行经典复制mysql服务器转向GTID复制
以上がGTIDマスター・スレーブ構成に基づくMySQLの概要と整理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。