MySQL主從日志詳解及配置方法
log)和中繼日志(relay log)來實(shí)現(xiàn)的。
一、二進(jìn)制日志
MySQL的二進(jìn)制日志是一種記錄MySQL所有修改操作的日志文件,包括對(duì)數(shù)據(jù)庫表的增、刪、改操作等。主庫在執(zhí)行完一個(gè)事務(wù)后,會(huì)將該事務(wù)的修改操作記錄到二進(jìn)制日志中,從庫會(huì)定期向主庫請(qǐng)求并接收二進(jìn)制日志文件,然后將其寫入中繼日志中,再重放到從庫的數(shù)據(jù)庫中。
二進(jìn)制日志的作用:
1. 數(shù)據(jù)恢復(fù):通過回放二進(jìn)制日志可以將數(shù)據(jù)庫恢復(fù)到指定的時(shí)間點(diǎn)。
2. 數(shù)據(jù)同步:從庫通過讀取主庫的二進(jìn)制日志來實(shí)現(xiàn)主從復(fù)制。
3. 數(shù)據(jù)備份:通過備份二進(jìn)制日志可以實(shí)現(xiàn)增量備份,減少備份數(shù)據(jù)的大小和時(shí)間。
二、中繼日志
中繼日志是從庫上的一種日志文件,主要用于存儲(chǔ)從主庫讀取到的二進(jìn)制日志。中繼日志和二進(jìn)制日志的主要區(qū)別在于,中繼日志是從庫上的文件,而二進(jìn)制日志是主庫上的文件。
中繼日志的作用:
1. 數(shù)據(jù)同步:從庫通過讀取中繼日志,將主庫的修改操作同步到從庫上。
2. 數(shù)據(jù)恢復(fù):當(dāng)從庫出現(xiàn)異常時(shí),可以通過中繼日志進(jìn)行數(shù)據(jù)恢復(fù)。
三、配置方法
1. 配置主庫
yf配置文件中添加以下參數(shù):
ysql # 開啟二進(jìn)制日志
server-id=1 # 主庫的唯一標(biāo)識(shí)
log-do-db=test # 指定需要復(fù)制的數(shù)據(jù)庫
logoreysql # 忽略不需要復(fù)制的數(shù)據(jù)庫
2. 配置從庫
yf配置文件中添加以下參數(shù):
server-id=2 # 從庫的唯一標(biāo)識(shí)
# 開啟中繼日志
replicate-do-db=test # 指定需要復(fù)制的數(shù)據(jù)庫
oreysql # 忽略不需要復(fù)制的數(shù)據(jù)庫
aster-host=192.168.1.1 # 主庫的IP地址
aster-user=slave # 從庫連接主庫的用戶名
aster-password=123456 # 從庫連接主庫的密碼
aster-port=3306 # 主庫的端口號(hào)
3. 啟動(dòng)主從復(fù)制
在主庫上,執(zhí)行以下命令開啟二進(jìn)制日志:
ysqlaster status;
+------------------+----------+--------------+------------------+
loglogore_DB
+------------------+----------+--------------+------------------+
ysql.000001 | 154 | test
+------------------+----------+--------------+------------------+
set (0.00 sec)
在從庫上,執(zhí)行以下命令連接主庫并啟動(dòng)復(fù)制:
ysqlgeasterasterasterasterasterasterysqlaster_log_pos=154;
ysql>start slave;
ysql>show slave status \G;
*************************** 1. row ***************************
gasterdt
Master_Host: 192.168.1.1
Master_User: slave
Master_Port: 3306
nect_Retry: 60
ysql.000001
Read_Master_Log_Pos: 154
.000001
Relay_Log_Pos: 4
ysql.000001
ning: Yes
ning: Yes
set (0.00 sec)
至此,主從復(fù)制已經(jīng)成功啟動(dòng)。
yf配置文件中添加相關(guān)參數(shù),并在主庫上開啟二進(jìn)制日志,在從庫上連接主庫并啟動(dòng)復(fù)制。