日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql主从 percona_mysql主从实现(percona-xtrabackup)

發布時間:2025/3/21 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql主从 percona_mysql主从实现(percona-xtrabackup) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基礎環境:

OS:Red Hat Enterprise Linux Server release 7.6 (Maipo)

mysql:Percona版(5.7.29最新,可選mysql8)

主從都裝相同的版本,安裝可參考前篇

https://blog.51cto.com/6464430/2479808

原版文檔

https://www.percona.com/doc/percona-xtrabackup/2.1/howtos/setting_up_replication.html

主IP:192.168.100.1

備IP:192.168.100.2

操作步驟:

1、安裝percona-xtrabackup工具最新版

# yum install percona-xtrabackup-24

2、創建備份目錄

# mkdir /opt/mysql/mysql_backup

修改目錄屬組

# chown -R mysql:mysql /opt/mysql/mysql_backup

3、在主機上將數據庫進行備份

# innobackupex --user = root --password = ‘******’ /opt/mysql/mysql_backup/

出現報錯

Failed to connect to MySQL server: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2).

因為我們修改了默認的目錄,因此需要修改下配置文件

加個參數--defaults-file=/etc/my.cnf

# innobackupex --defaults-file=/etc/my.cnf --user = root --password = ‘******’ /opt/mysql/mysql_backup/

又報一個錯:

Failed to connect to MySQL server: DBI connect(';mysql_read_default_group=xtrabackup','root',...) failed: Access denied for user 'root'@'localhost' (using password: YES) at - line 1314.

需要制定本地地址,加參數 --host=127.0.0.1

# innobackupex --defaults-file=/etc/my.cnf --user = root --password = ‘******’ --host=127.0.0.1 /opt/mysql/mysql_backup/

執行完應該看到 completed OK!

4、為了使快照一致,再執行一個命令(同步數據 回滾未提交的事務及同步已經提交的事務至數據文件,使得數據文件處于一致性狀態)

# innobackupex --defaults-file=/etc/my.cnf --user = root --password = ‘******’ --host=127.0.0.1 --apply-log /opt/mysql/mysql_backup / $ TIMESTAMP /

/ $ TIMESTAMP / 代表步驟3中的文件目錄

5、將備份的數據復制到備機

# rsync -avpP -e ssh /opt/mysql/mysql_backup / $ TIMESTAMP 192.168.100.2:/opt/mysql/mysql_backup

6、停止備機的mysql

# systemctl stop mysqld.service

7、備份備機原有的datadir

# mv mysql_data/ mysql_data_bak

8、將步驟5同步過來的主機數據同步到datadir下并確保mysql有相關權限

# cp -rp /opt/mysql/mysql_backup /opt/mysql/mysql_data

# chown mysql:mysql -R /opt/mysql/mysql_data

9、配置主機(機器應該開啟二進制同步及有唯一的服務id配置)

mysql>GRANT REPLICATION SLAVE ON *.* to 'repl'@'192.168.100.2' identified by '********';

有個小告警,可以先建用戶repl就不會告警了

備機上執行

# mysql -urepl -p'*********' -host192.168.100.1

mysql>SHOW GRANTS;

可以看到授權

10、配置從機

拷貝主機的配置文件

# scp 192.168.100.1:/etc/my.cnf /etc/my.cnf

修改從機的server-id 為2

啟動數據庫

# systemctl start mysqld.service

11、開始復制

查看從機當前的日志

# cat /opt/mysql/mysql_dataxtrabackup_binlog_info

mybinlog.000008 194

從機執行

mysql>CHANGE MASTER TO MASTER_HOST = '192.168.100.1', MASTER_USER = 'REPL' , MASTER_PASSWORD = '********', MASTER_LOG_FILE = 'mybinlog.000008', MASTER_LOG_POS = 194;

啟動備機:

mysql>START SLAVE;

12、檢查

sql> SHOW SLAVE STATUS \G

...

Slave_IO_Running: Yes 應該為yes

Slave_SQL_Running: Yes 應該為yes

...

Seconds_Behind_Master: 13 表示當前同步的時間差

...

13、主從切換(正常情況下)

A、主庫鎖表,變為只讀,避免日志同步不全

mysql> flush tables with read lock;

B、確保master所有的binlog已同步到slave,并且slave都已apply了所有的binlog

主:

mysql> show processlist;

備:

mysql> show processlist;

C、停止slave進程

從:

mysql> STOP SLAVE IO_THREAD;

mysql> show processlist;

D、確保從機開啟bin_log且關閉read_only

mysql> show variables like 'read_only';

E、提示從機為主機:

mysql> stop slave;

mysql> reset master;

mysql> reset slave all;

mysql> show master status \G

F、新的主機需要建立同步帳戶并賦予同步權限

mysql>GRANT REPLICATION SLAVE ON . to 'repl'@'192.168.100.1' identified by '****';

G、將原來的主切換從

mysql> reset master;

mysql>CHANGE MASTER TO MASTER_HOST='192.168.100.1',MASTER_USER='REPL',MASTER_PASSWORD='1qaz@WSX',MASTER_LOG_FILE='mybinlog.000001', MASTER_LOG_POS=154;

MASTER_LOG_FILE='mybinlog.000001', MASTER_LOG_POS=154 從步驟E獲取

mysql> start slave;

mysql> show slave status\G

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的mysql主从 percona_mysql主从实现(percona-xtrabackup)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。