日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談MySQL8.0 異步復(fù)制的三種方式

瀏覽:50日期:2023-10-10 17:19:28

本實(shí)驗(yàn)中分別針對空庫、脫機(jī)、聯(lián)機(jī)三種方式,配置一主兩從的mysql標(biāo)準(zhǔn)異步復(fù)制。只做整服務(wù)器級別的復(fù)制,不考慮對個(gè)別庫表或使用過濾復(fù)制的情況。

實(shí)驗(yàn)環(huán)境

[root@slave2 ~]# cat /etc/hosts192.168.2.138 master192.168.2.192 slave1192.168.2.130 slave2mysql> select version();+-----------+| version() |+-----------+| 8.0.16 |+-----------+1 row in set (0.00 sec)

一、空庫

1.查看主庫二進(jìn)制信息

mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000004 | 155 | | | |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)

2.在主庫上建立復(fù)制用戶

mysql> create user ’repl’@’%’ identified with mysql_native_password by ’wwwwww’;Query OK, 0 rows affected (0.03 sec)mysql> grant replication client,replication slave on *.* to ’repl’@’%’;Query OK, 0 rows affected (0.04 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

3.在從庫創(chuàng)建主庫信息

mysql> stop slave;mysql> change master to master_host=’192.168.2.138’, master_port=3306, master_user=’repl’, master_password=’wwwwww’, master_log_file=’mysql-bin.000004’, master_log_pos=155;Query OK, 0 rows affected, 2 warnings (0.00 sec)mysql> start slave;Query OK, 0 rows affected (0.00 sec)mysql> show slave statusG

剛才我們并沒有在從庫上建立repl用戶,但由于create user語句是在起始位置點(diǎn)后執(zhí)行的,因此可以正常復(fù)制到從庫,查詢mysql.user表即可確認(rèn)。

sql> select * from mysql.user where user=’repl’G

二、脫機(jī)

如果數(shù)據(jù)庫已經(jīng)存在應(yīng)用數(shù)據(jù),但允許一個(gè)可接受的脫機(jī)時(shí)間窗口做復(fù)制,這種場景下常用的做法是先直接將主庫的數(shù)據(jù)目錄整體拷貝到從庫,再啟動復(fù)制。具體步驟如下。

1.在master節(jié)點(diǎn)創(chuàng)建測試庫和測試表

CREATE DATABASE test;Query OK, 1 row affected (0.04 sec)mysql> USE test;Database changedmysql> CREATE TABLE t(id int(10));Query OK, 0 rows affected (0.09 sec)mysql> INSERT INTO t VALUES (111);Query OK, 1 row affected (0.05 sec)mysql> INSERT INTO t VALUES (222);Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO t VALUES (333);Query OK, 1 row affected (0.00 sec)

2.在主庫創(chuàng)建復(fù)制用戶

mysql> create user ’repl’@’%’ identified with mysql_native_password by ’wwwwww’;Query OK, 0 rows affected (0.03 sec)mysql> grant replication client,replication slave on *.* to ’repl’@’%’;Query OK, 0 rows affected (0.04 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)

3.停止復(fù)制的所有實(shí)例,在master、slave1、slave2分別執(zhí)行

[root@master ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin[root@master ~]# mysqladmin -hlocalhost -uroot -pwwwwww shutdown

4.復(fù)制數(shù)據(jù)至slave1、slave2

[root@master data]# cd /data[root@master data]# scp -r mysql/ slave1:/data/[root@master data]# scp -r mysql/ slave2:/data/

5.在slave1、slave2從庫執(zhí)行命令,刪除auto.cnf文件

[root@slave1 mysql]# cd /data/mysql[root@slave1 mysql]# rm -rf auto.cnf[root@slave2 mysql]# cd /data/mysql[root@slave2 mysql]# rm -rf auto.cnf

6.重啟實(shí)例,在三個(gè)節(jié)點(diǎn)都需要執(zhí)行

[root@master data]# service mysqld startStarting MySQL.. SUCCESS!

7.在主庫查看二進(jìn)制日志

mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000005 | 155 | | | |+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)

8.在slave1、slave2從庫執(zhí)行命令

mysql> stop slave;Query OK, 0 rows affected (0.01 sec)mysql> change master to master_host=’192.168.2.138’, master_port=3306, master_user=’repl’, master_password=’wwwwww’, master_log_file=’mysql-bin.000005’, master_log_pos=155;Query OK, 0 rows affected, 2 warnings (0.02 sec)mysql> start slave;Query OK, 0 rows affected (0.03 sec)mysql> show slave statusG

9.在slave1、slave2從庫執(zhí)行命令查看庫和表是否同步過來

mysql> use test;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> show tables;+----------------+| Tables_in_test |+----------------+| t |+----------------+1 row in set (0.00 sec)mysql> select * from t;+------+| id |+------+| 111 || 222 || 333 |+------+3 rows in set (0.00 sec)

三、mysqldump聯(lián)機(jī)

脫機(jī)建立復(fù)制的需求太過理想化,大多數(shù)情況下,復(fù)制是被要求在不影響線上業(yè)務(wù)的情況下,聯(lián)機(jī)創(chuàng)建的,而且還要求對線上庫的影響越小越好。例如,復(fù)制過程化中對主庫加鎖會影響對主庫的訪問,因此通常是不被允許的。這種場景下有兩種備選的復(fù)制方案:使用mysqldump程序或使用如XtraBackup的第三方工具。這兩種方案有各自的適用場合。使用mysqldump聯(lián)機(jī)建立復(fù)制的過程如下。

1.在主庫創(chuàng)建測試的數(shù)據(jù)庫和表

mysql> CREATE DATABASE test;Query OK, 1 row affected (0.04 sec)mysql> use test;Database changedmysql> CREATE TABLE t(id int(10));Query OK, 0 rows affected (0.10 sec)mysql> INSERT INTO t VALUES(111);Query OK, 1 row affected (0.09 sec)mysql> INSERT INTO t VALUES(222);Query OK, 1 row affected (0.00 sec)mysql> INSERT INTO t VALUES(333);Query OK, 1 row affected (0.05 sec)mysql> INSERT INTO t VALUES(444);Query OK, 1 row affected (0.00 sec)

2.在主庫創(chuàng)建復(fù)制用戶

mysql> create user ’repl’@’%’ identified with mysql_native_password by ’wwwwww’;Query OK, 0 rows affected (0.01 sec)mysql> grant replication client,replication slave on *.* to ’repl’@’%’;Query OK, 0 rows affected (0.01 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)

3.在slave1、slave2從庫創(chuàng)建主庫信息

mysql> change master to master_host=’192.168.2.138’, master_port=3306, master_user=’repl’, master_password=’wwwwww’;Query OK, 0 rows affected, 2 warnings (0.04 sec)

4.在slave1、slave2從庫使用mysqldump命令復(fù)制數(shù)據(jù)

[root@slave2 ~]# mysqldump --single-transaction --all-databases --master-data=1 --host=192.168.2.138 --user=root --password=wwwwww --apply-slave-statements | mysql -uroot -pwwwwww -hlocalhostmysql: [Warning] Using a password on the command line interface can be insecure.mysqldump: [Warning] Using a password on the command line interface can be insecure.

參數(shù)說明

?single-transaction參數(shù)可以對Innodb表執(zhí)行非鎖定導(dǎo)出。此選項(xiàng)將事務(wù)隔離模式設(shè)置為REPEATABLE READ,并在轉(zhuǎn)儲數(shù)據(jù)之前向服務(wù)器發(fā)送START TRANSACTION SQL語句。它僅適用于Innodb等事務(wù)表,因?yàn)樗鼤诎l(fā)出START TRANSACTION時(shí)轉(zhuǎn)儲數(shù)據(jù)庫的一致狀態(tài),而不會阻塞任何應(yīng)用程序。因此這里假定:1. 所有的應(yīng)用數(shù)據(jù)表都使用Innodb引擎。2. 所有系統(tǒng)表數(shù)據(jù)在備份過程中不會發(fā)生變化。

?master-data參數(shù)會導(dǎo)致轉(zhuǎn)儲輸出包含類似 CHANGE MASTER TO MASTER_LOG_FILE=‘binlog.000004’, MASTER_LOG_POS=1480; 的SQL語句,該語句指示主庫的二進(jìn)制日志坐標(biāo)(文件名和位置)。如果選項(xiàng)值為2,則CHANGE MASTER TO語句將寫為SQL注釋,因此僅提供信息,不會執(zhí)行。如果參數(shù)值為1,則該語句不會寫為注釋,并在重新加載轉(zhuǎn)儲文件時(shí)執(zhí)行。如果未指定選項(xiàng)值,則默認(rèn)值為1。

?apply-slave-statements參數(shù)會在CHANGE MASTER TO語句之前添加STOP SLAVE語句,并在輸出結(jié)尾處添加START SLAVE語句,用來自動開啟復(fù)制。

通過管道操作符,導(dǎo)出導(dǎo)入一步進(jìn)行,不需要中間落盤生成文件。

5.在從庫確認(rèn)復(fù)制狀態(tài)

mysql> show slave statusG

6.在從庫查看庫和表是否復(fù)制成功

use test;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select * from t;+------+| id |+------+| 111 || 222 || 333 || 444 || 555 |+------+5 rows in set (0.00 sec)

mysqldump方式的優(yōu)點(diǎn)是可以進(jìn)行部分復(fù)制,如在配置文件中定義replicate-do-table=db1.*,則用這種方法可以只復(fù)制db1庫而忽略其它復(fù)制事件。缺點(diǎn)是由于mysqldump會生成主庫轉(zhuǎn)儲數(shù)據(jù)的SQL語句,實(shí)際是一種邏輯備份方式所以速度較慢,不適用于大庫。

四、XtraBackup聯(lián)機(jī)復(fù)制

聯(lián)機(jī)建立復(fù)制的另一種可選方案是使用XtraBackup。XtraBackup是Percona公司的開源項(xiàng)目,用以實(shí)現(xiàn)類似Innodb官方的熱備份工具InnoDB Hot Backup的功能,它支持在線熱備份,備份時(shí)不影響數(shù)據(jù)讀寫。到目前為止,最新的版本為Percona XtraBackup 8.0.6,可以從https://www.percona.com/downloads/下載安裝包。XtraBackup有很多功能和優(yōu)點(diǎn),例如支持全備、增量備份、部分備份;支持壓縮備份;備份不影響數(shù)據(jù)讀寫、事務(wù)等,但是也有缺陷不足:例如不支持脫機(jī)備份、不支持直接備份到磁帶設(shè)備、不支持Cloud Back,MyISAM的備份也會阻塞。不過這些小瑕疵不影響XtraBackup成為一款流行的MySQL備份工具。另外,注意XtraBackup只支持Linux平臺,不支持Windows平臺。下面演示用XtraBackup聯(lián)機(jī)搭建主從復(fù)制的過程,主庫已經(jīng)建立了用于執(zhí)行復(fù)制的用戶repl。

在主庫創(chuàng)建復(fù)制用戶

mysql> create user ’repl’@’%’ identified with mysql_native_password by ’wwwwww’;Query OK, 0 rows affected (0.01 sec)mysql> grant replication client,replication slave on *.* to ’repl’@’%’;Query OK, 0 rows affected (0.01 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)

1.在主庫和從庫都安裝XtraBackupv

[root@master ~]# yum -y install libev[root@master home]# yum localinstall percona-xtrabackup-80-8.0.6-1.el7.x86_64.rpm -y

2.配置主庫到從庫的SSH免密碼連接

[root@master home]# ssh-keygen Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa.Your public key has been saved in /root/.ssh/id_rsa.pub.The key fingerprint is:SHA256:GBLbrw17UVck8RyCa/fbYyLkSNZIRc5p+jPQmpkD+bI root@masterThe key’s randomart image is:+---[RSA 2048]----+| . .o+o+ || + +..* . || o o o*. o || . +.o*.. || ooS+oo . || =o=Bo . || o.=B++ o || .o..oo..o.|| E . o .|+----[SHA256]-----+[root@master home]# ssh-copy-id 192.168.2.138[root@master home]# ssh-copy-id 192.168.2.192[root@master home]# ssh-copy-id 192.168.2.130

3.停止從庫,并刪除從庫里面的數(shù)據(jù)

[root@slave1 home]# service mysql stop[root@slave2 home]# service mysql stop[root@slave1 home]# rm -rf /data/mysql/*[root@slave2 home]# rm -rf /data/mysql/*

4.備份數(shù)據(jù)并傳輸

[root@master tmp]# xtrabackup -uroot -pwwwwww --socket=/data/mysql/mysql.sock --no-lock --backup --compress --stream=xbstream --parallel=4 --target-dir=./ | ssh root@192.168.2.192 'xbstream -x -C /data/mysql/ --decompress'

執(zhí)行過程中報(bào)錯(cuò),

190606 01:21:47 >> log scanned up to (19597291)

190606 01:21:47 Selecting LSN and binary log position from p_s.log_status

Error: failed to fetch query result SELECT server_uuid, local, replication, storage_engines FROM performance_schema.log_status: Access denied; you need (at least one of) the BACKUP_ADMIN privilege(s) for this operation

mysql> grant BACKUP_ADMIN on *.* to ’root’@’%’;Query OK, 0 rows affected (0.01 sec)

行如下命令,刪除192.168.2.192:/data/mysql/*的內(nèi)容,再次執(zhí)行命令,發(fā)現(xiàn)已經(jīng)正確了。成功執(zhí)行如下所示:

淺談MySQL8.0 異步復(fù)制的三種方式

這條命令連接主庫,進(jìn)行并行壓縮流式備份,同時(shí)將備份通過管道操作符傳輸?shù)綇膸欤⒅苯咏鈮嚎s到從庫的數(shù)據(jù)目錄。所有操作一條命令完成,不需要中間落盤生成文件。

5.在從庫恢復(fù)備份

[root@slave1 /]# xtrabackup --prepare --target-dir=/data/mysql[root@slave2 /]# xtrabackup --prepare --target-dir=/data/mysql

6.在從庫查看二進(jìn)制bin-log日志

[root@slave1 mysql]# cat xtrabackup_binlog_info mysql-bin.000008 155[root@slave2 mysql]# cat xtrabackup_binlog_info mysql-bin.000009 155

7.啟動從庫

[root@slave1 data]# service mysqld startStarting MySQL... SUCCESS! [root@slave2 data]# service mysqld startStarting MySQL... SUCCESS!

8.創(chuàng)建主庫信息,其中的master_log_file和master_log_pos值來自第6步

mysql> change master to master_host=’192.168.2.138’, master_port=3306, master_user=’repl’, master_password=’wwwwww’, master_log_file=’mysql-bin.000008’, master_log_pos=155;Query OK, 0 rows affected, 2 warnings (0.04 sec)mysql> start slave;Query OK, 0 rows affected (0.00 sec)mysql> show slave statusG

9.在從庫測試數(shù)據(jù)

mysql> use test;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changedmysql> select * from t;+------+| id |+------+| 111 || 222 || 333 || 444 || 555 |+------+5 rows in set (0.00 sec)

XtraBackup是物理復(fù)制,性能比mysqldump高的多,而且對主庫的影響極小,非常適用于從頭聯(lián)機(jī)創(chuàng)建高負(fù)載、大數(shù)據(jù)量、全實(shí)例從庫的場景。

到此這篇關(guān)于淺談MySQL8.0 異步復(fù)制的三種方式的文章就介紹到這了,更多相關(guān)MySQL8.0 異步復(fù)制內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品专区| 精品视频一区二区三区在线观看| 视频一区日韩精品| 亚洲深夜影院| 天堂√8在线中文| 国产美女高潮在线观看| 国产成人精选| 成人在线丰满少妇av| 97欧美在线视频| 亚洲一级少妇| 99久久精品网| 美女久久网站| 日韩中出av| 国产剧情一区二区在线观看| 国产精品自在| 国产白浆在线免费观看| 精品三级久久久| 日韩欧美午夜| 免费不卡在线视频| 日本精品在线播放| 国产欧美88| 日韩精品欧美激情一区二区| 亚洲激情欧美| 人人精品久久| 九九精品调教| 99视频+国产日韩欧美| 激情自拍一区| 青青草国产成人99久久| av资源亚洲| 综合激情网...| 国产+成+人+亚洲欧洲在线| 日本久久成人网| 日本不卡一二三区黄网| 日韩av自拍| 亚洲三级国产| 成人国产精品| 亚洲精品一区二区在线播放∴| 精品视频网站| 午夜天堂精品久久久久| 亚洲先锋成人| 黄色欧美在线| 亚洲精品影视| 国产亚洲精品久久久久婷婷瑜伽| 精品一区二区三区在线观看视频| 免费日韩av片| 日韩一区二区中文| 国产欧美成人| 日韩一二三区在线观看| 欧美91视频| 精品久久久中文字幕| 日韩福利视频一区| 欧美另类综合| 欧美在线观看视频一区| 成人一区不卡| 狠狠久久伊人中文字幕| 国产亚洲人成a在线v网站| 红桃视频欧美| 成人久久一区| 日韩三区在线| 四虎4545www国产精品| 成人一二三区| 国产精品99在线观看| 精品久久一区| 91综合网人人| 欧美日韩18| 国产欧美日韩影院| 国产精品对白久久久久粗| 国产精品一级在线观看| 国产麻豆一区二区三区 | 精品视频久久| 欧美激情另类| 欧美日韩视频免费观看| 日韩欧美一区免费| 久久久精品五月天| 99精品在线观看| 性欧美精品高清| 国产精品夜夜夜| 久久精品国产999大香线蕉| 久草精品视频| 国产亚洲一区二区手机在线观看| 亚洲精品一区二区在线看| 国产偷自视频区视频一区二区| 日本精品在线播放| 日本欧美国产| 蜜臀a∨国产成人精品| 欧美精品成人| 在线国产一区| 日韩三级久久| 日韩一区二区三区免费播放| 欧美专区在线| 日韩av片子| 亚州精品视频| 国产一区调教| 天堂成人国产精品一区| 久久精品国产99国产| 亚洲综合精品四区| 麻豆成人91精品二区三区| 午夜久久一区| 欧美激情久久久久久久久久久| 日本综合字幕| 国产精品黄网站| 亚洲精品2区| 天堂√中文最新版在线| 国产精品网站在线看| 在线精品视频在线观看高清| 欧美欧美黄在线二区| 99久久九九| 国产精品入口久久| 国产亚洲在线观看| 久久久久久网| 日韩av网站在线免费观看| 欧美成人久久| 久久久水蜜桃av免费网站| 国产精品美女在线观看直播| 免费不卡在线视频| 中文国产一区| 精品欧美一区二区三区在线观看| 欧美精品福利| 深夜福利亚洲| 欧美专区在线| 欧美精选一区二区三区| 亚洲精品成人图区| 色综合五月天| 欧美日韩亚洲一区三区| 亚洲不卡视频| 日本不卡视频在线| 欧美一区二区三区久久| 91p九色成人| 久久久久九九精品影院| 欧美a在线观看| 精品视频高潮| 狠狠久久伊人中文字幕| 国产一区二区精品福利地址| 精品亚洲成人| 福利片在线一区二区| 国产传媒在线观看| 久久青草久久| 欧美日韩国产在线观看网站| av日韩中文| 欧美/亚洲一区| 亚洲一级在线| 蜜臀av亚洲一区中文字幕| 欧美精品导航| 久久久噜噜噜| 欧美激情综合| 欧美日韩精品一本二本三本| 中文字幕视频精品一区二区三区| 国产精品超碰| 国产精品7m凸凹视频分类| 亚洲精品国模| а√天堂中文在线资源8| 老牛影视一区二区三区| 亚洲精品极品| 国精品产品一区| 亚洲尤物av| 米奇777超碰欧美日韩亚洲| 久久精品亚洲人成影院| 日韩av一区二| 日本亚洲视频| 国产偷自视频区视频一区二区| 精品久久中文| 欧美激情在线精品一区二区三区| 在线精品视频一区| 一区免费在线| 欧洲亚洲一区二区三区| 精品一区二区三区中文字幕视频 | 国产精品久久久久蜜臀| 国产精品三p一区二区| 麻豆视频久久| 国产亚洲一区二区三区不卡| 亚洲另类黄色| 亚州av日韩av| 91精品国产经典在线观看| 免播放器亚洲| 亚洲a成人v| 日韩欧美另类中文字幕| 蜜臀a∨国产成人精品| 狠狠爱成人网| 中文字幕中文字幕精品| 蜜臀久久久久久久| 亚洲精品伊人| 欧美欧美黄在线二区| 久久中文在线| 国产中文一区| 蜜臀精品一区二区三区在线观看| 日韩免费看片| 日韩免费福利视频| 久久久久午夜电影| 视频在线观看一区二区三区| 日韩精品欧美大片| 欧美午夜三级| 丰满少妇一区| 国产一区二区亚洲| 国模大尺度视频一区二区| 久久91导航| 免费的成人av| 六月丁香综合在线视频| 亚洲国产欧美日本视频| 国产真实久久| 亚洲精品护士|