Rumah > pangkalan data > tutorial mysql > Ringkasan dan susunan MySQL berdasarkan pembinaan tuan-hamba GTID

Ringkasan dan susunan MySQL berdasarkan pembinaan tuan-hamba GTID

WBOY
Lepaskan: 2022-08-26 20:44:15
ke hadapan
2495 orang telah melayarinya

Pembelajaran yang disyorkan: tutorial video mysql

Gunakan xtarbackup untuk menyegerakkan data, kemudian tetapkan master dan slave berdasarkan GTID.

1. Gunakan xtarbackup untuk membuat sandaran pangkalan data

1.1 Kelebihan

Gunakan xtarbackup untuk penyediaan awal master dan slave kerana xtarbackup membuat sandaran dan memulihkan data dengan sangat cepat, terutamanya sesuai untuk jumlah data Ia mempunyai sandaran pangkalan data yang besar, dan pemasangannya sangat mudah, dan penggunaannya juga sangat mudah.... (Bala, bala, saya tidak boleh mengada-ada).

1.2 Pemasangan

Pilih versi khusus mengikut situasi khusus anda. Hanya ikuti beberapa langkah ini untuk memasangnya. Bukankah ia sangat mudah...

# 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
Salin selepas log masuk

1.3 Gunakan

1.3.1 Sandaran biasa

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /data/backupMysql/
Salin selepas log masuk

1.3 .2 sandaran tar

(1), sandaran ke setempat

# 不压缩
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
Salin selepas log masuk

(2), sandaran ke jauh

# 不压缩
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
Salin selepas log masuk

(3), kaedah penyahmampatan

# 未经过压缩的文件解压
tar xvf mysql.tar -C /data

# 压缩过的文件解压
tar zxvf mysql.tar.gz -C /data
Salin selepas log masuk

1.3.3 sandaran xbstream

(1), sandaran ke setempat

# 不压缩
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
Salin selepas log masuk

(2), sandaran perlu dilakukan dari jauh

# 不压缩
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"
Salin selepas log masuk

(3), kaedah penyahmampatan

#### 未压缩的
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
Salin selepas log masuk

1.3.4 Pulihkan

Mula-mula nyahmampat pakej termampat sandaran asal ke direktori, dan kemudian laksanakan pernyataan berikut untuk memulihkan.

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /var/lib/mysql/backup/
Salin selepas log masuk

Nota: Anda boleh menggunakan alat skrin belah semasa sandaran, penyahmampatan dan pemulihan saya suka menggunakan skrin.

2. Penyegerakan data berdasarkan GTID

2.1 Konsep GTID

  • 1. Pengecam transaksi global: pengecam transaksi global.
  • 2. GTID sepadan dengan satu transaksi dan merupakan ID unik di peringkat global.
  • 3. GTID hanya dilaksanakan sekali pada pelayan untuk mengelakkan kekeliruan data atau ketidakkonsistenan tuan-hamba yang disebabkan oleh pelaksanaan berulang.
  • 4. GTID digunakan untuk menggantikan kaedah replikasi tradisional dan MASTER_LOG_FILE MASTER_LOG_POS tidak lagi digunakan untuk mendayakan replikasi. Sebaliknya, gunakan MASTER_AUTO_POSTION=1 untuk mula menyalin.
  • 5. Ia disokong bermula dari MySQL-5.6.5 dan akan dipertingkatkan selepas MySQL-5.6.10.
  • 6. Di bahagian hamba tradisional, binlog tidak perlu dihidupkan, tetapi dalam GTID, binlog di bahagian hamba mesti dihidupkan untuk merekodkan GTID yang dilaksanakan (wajib).

2.2 Komposisi GTID

GTID = source_id:transaction_id source_id: digunakan untuk mengenal pasti pelayan asal, iaitu server_uuid unik pelayan mysql Memandangkan GTID akan diluluskan kepada hamba, ia juga boleh digunakan Difahami sebagai ID sumber.

transaction_id: Ia ialah nombor jujukan transaksi yang telah diserahkan pada pelayan semasa Ia biasanya merupakan jujukan meningkat sendiri bermula dari 1. Satu nilai sepadan dengan satu transaksi.

Contoh: 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 Rentetan pertama ialah server_uuid pelayan, iaitu, 3E11FA47-71CA-11E1-9E33-C80AA29429 berikut 🎜>

2.3 Prinsip GTID

1 Apabila transaksi dilaksanakan dan diserahkan di bahagian perpustakaan utama, GTID dijana dan direkodkan dalam binlog bersama-sama.

2. Selepas binlog dipindahkan ke hamba dan disimpan dalam relaylog hamba, baca nilai GTID dan tetapkan pembolehubah gtid_next, yang memberitahu hamba nilai GTID seterusnya untuk dilaksanakan.

3. Benang sql memperoleh GTID daripada log geganti, dan kemudian membandingkan binlog pada bahagian hamba untuk melihat sama ada GTID wujud.

4. Jika terdapat rekod, ini bermakna transaksi GTID telah dilaksanakan, dan hamba akan mengabaikannya.

5. Jika tiada rekod, hamba akan melaksanakan transaksi GTID dan merekodkan GTID ke binlognya sendiri Sebelum membaca dan melaksanakan transaksi, ia akan terlebih dahulu menyemak bahawa sesi lain memegang GTID untuk memastikannya ia tidak dilaksanakan berulang kali.

6. Semasa proses penghuraian, ia akan dinilai sama ada terdapat kunci utama. Jika tidak, gunakan indeks sekunder Jika tidak, gunakan semua imbasan.

2.4 Kelebihan GTID

    1. Pelaksanaan failover yang lebih mudah, tidak perlu mencari log_file dan log_pos seperti sebelum ini.
  • 2. Lebih mudah untuk membina replikasi tuan-hamba.
  • 3. Lebih selamat daripada penyalinan tradisional.
  • 4. GTID adalah berterusan tanpa lubang, memastikan ketekalan data dan kehilangan sifar.
2.5 Proses pembinaan khusus

Untuk konfigurasi GTID, ubah suai terutamanya beberapa parameter penting yang berkaitan dengan ciri GTID dalam fail konfigurasi Versi mysql disyorkan untuk menjadi mysql-5.6. 5 atau ke atas.

2.5.1 Buka Gtid induk

Konfigurasi utama adalah seperti berikut:

[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
Salin selepas log masuk
2.5.2 Lakukan sandaran data pada induk

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
Salin selepas log masuk
2.5.3 Nyahmampat data yang disandarkan

tar zxvf /data/mysql.tar.gz -C /data/baskup
Salin selepas log masuk
2.5.4 Konfigurasikan fail konfigurasi hamba

[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
Salin selepas log masuk
2.5.5 Pulihkan data

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /data/backup
Salin selepas log masuk
2.5.6 Dapatkan nod GTID

more /data/backup/2018-02-08_15-03-18/xtrabackup_binlog_info
Salin selepas log masuk
2.5.7 Konfigurasikan tuan-hamba

(1), beri kuasa pada tuan

grant replication slave on *.* to slaveuser@&#39;192.168.1.7&#39;  identified by "c2xhdmV1c2Vy";
Salin selepas log masuk

(2), konfigurasikan pada hamba

stop slave;
SET GLOBAL gtid_purged="c5b5ffe7-ce66-11e7-9a19-00163e00013d:1-515758";
CHANGE MASTER TO MASTER_HOST=&#39;192.168.1.6&#39;,MASTER_PORT=3306,MASTER_USER=&#39;slaveuser&#39;,MASTER_PASSWORD=&#39;c2xhdmV1c2Vy&#39;,MASTER_AUTO_POSITION=1;
start slave;
Salin selepas log masuk

2.6 已运行经典复制mysql服务器转向GTID复制

  • a、按本文2.5.2描述配置参数文件;
  • b、所有服务器设置global.read_only参数,等待主从服务器同步完毕;  mysql> SET @@global.read_only = ON;
  • c、依次重启主从服务器;
  • d、使用change master 更新主从配置;mysql> CHANGE MASTER TO > MASTER_HOST = host,  > MASTER_PORT = port, > MASTER_USER = user,   > MASTER_PASSWORD = password,   > MASTER_AUTO_POSITION = 1;
  • e、从库开启复制  mysql> START SLAVE; f、验证主从复制

推荐学习:mysql视频教程

Atas ialah kandungan terperinci Ringkasan dan susunan MySQL berdasarkan pembinaan tuan-hamba GTID. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:jb51.net
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan