本篇文章給大家?guī)砹岁P(guān)于redis的相關(guān)知識,其中主要介紹了關(guān)于主從復(fù)制的相關(guān)內(nèi)容,Redis因為其高性能和易用性在我們后端的服務(wù)中發(fā)揮了巨大的作用,并且很多重要功能的實現(xiàn)都會依賴redis,下面一起來看一下,希望對大家有幫助。
千萬級數(shù)據(jù)并發(fā)如何處理?進入學(xué)習(xí)
推薦學(xué)習(xí):Redis視頻教程
主服務(wù)器(master)啟用二進制日志 選擇一個唯一的server-id 創(chuàng)建具有復(fù)制權(quán)限的用戶
從服務(wù)器(slave)啟用中繼日志, 選擇一個唯一的server-id 連接至主服務(wù)器,并開始復(fù)制
主庫ip:192.168.235.130 端口:3306 從庫ip:192.168.235.139 端口:3306
主庫配置
(1)設(shè)置server-id值并開啟binlog參數(shù)
[mysqld]
log_bin = mysql-bin
server_id = 130
重啟數(shù)據(jù)庫
(2)建立同步賬號
creat user 'rep1'@'192.168.10.139' identified with mysql_native_password by 'Test@1234'#設(shè)置賬戶密碼
grant replication slave on *.* to 'rep1'@'192.168.235.139';
grant replication slave on *.* to 'rep1'@'192.168.235.139';
show grants for 'rep1'@'192.168.235.139';
(3)鎖表設(shè)置只讀
為后面?zhèn)浞轀?zhǔn)備,注意生產(chǎn)環(huán)境要提前申請停機時間;
mysql> flush tables with read lock;
提示:如果超過設(shè)置時間不操作會自動解鎖。
mysql> show variables like '%timeout%';
測試鎖表后是否可以創(chuàng)建數(shù)據(jù)庫
4)查看主庫狀態(tài) 查看主庫狀態(tài),即當(dāng)前日志文件名和二進制日志偏移量
mysql> show master status;
記住file和position,方便slave后續(xù)連接。
(5)備份數(shù)據(jù)庫數(shù)據(jù)
mysqldump -uroot -p -A -B |gzip > mysql_bak.$(date +%F).sql.gz
(6)解鎖
mysql> unlock tables;
(7)主庫備份數(shù)據(jù)上傳到從庫
scp /server/backup/mysql_bak.2022-09-22.sql.gz 192.168.235.139:/root/hh
從庫上設(shè)置
(1)設(shè)置server-id值并關(guān)閉binlog參數(shù)
#log_bin = /data/mysql/data/mysql-bin
server_id = 139
重啟數(shù)據(jù)庫
(2)還原從主庫備份數(shù)據(jù)
cd /server/backup/ gzip -d mysql_bak.2022-09-22.sql.gz mysql -uroot -p < mysql_bak.2022-09-22.sql
檢查還原:
mysql -uroot -p -e 'show databases;'
(3)設(shè)定從主庫同步
mysql> change master to -> master_host='192.168.235.130', -> master_port=3306, -> master_user='rep1', -> master_password='Test@1234', -> master_log_file='mysql-bin.000006', -> master_log_pos=157;
(4)啟動從庫同步開關(guān)
mysql> start slave;
檢查狀態(tài):
mysql> show slave statusG
主備復(fù)制功能達成。
下面進行測試:
在192.168.235.130(主)上執(zhí)行:
create databses data;
新建數(shù)據(jù)庫
從虛擬機上也建好了data文件,實現(xiàn)了Mysql的主從復(fù)制。
推薦學(xué)習(xí):Redis視頻教程