主從同步工作過程?(binlog日志)


在從數據庫服務器的/var/lib/mysql/
master.info   記錄連接主數據庫服務器信息文件
mail-relay-bin.XXXXXX   中繼日志文件(記錄SQL)
mail-relay-bin.index    索引文件(記錄已有的中繼日志文件)
relay-log.info     記錄日志信息文件
start  slave;

Slave_IO_Running: Yes
負責把master數據庫服務器上binlog日志里SQL命令同步到本

機的中繼日志文件。

出錯: 連接不是主數據庫服務器(ping   iptables   selinux   

grant   binlog日志信息指定錯誤(名  pos))

查看報錯信息:
Last_IO_Errno: 0
Last_IO_Error:  報錯信息


修改錯誤
stop  slave;
change  master   to   選項="值",選項="值";
start  slave;
++++++++++++++++++++++++
Slave_SQL_Running: Yes
負責執行本機中繼日志文件里的SQL命令,把數據寫進本機的庫里


出錯:執行SQL命令時用到的庫 表  字段 在本機不存在

查看報錯信息:
Last_SQL_Errno: 1146
Last_SQL_Error: 報錯信息

修改錯誤:
讓從數據庫服務器有主庫上庫和表
stop slave;
start  slave;

把從庫恢復會獨立的數據庫服務器
[root@mail mysql]# rm  -rf master.info  relay-log.info  

mail-relay-bin.*

/etc/init.d/mysql  restart

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



2.7.2    增量備份與增量恢復
2.7.2.1  啟用mysql數據庫服務的binlog日志 ,達到對數據做增備份的目的。

什么是binlog日志:mysql數據庫服務日志中的一種,又被稱作二進制日志。記錄客戶端連接mysql數據庫服務后,執行的除查詢之外的SQL命令

查詢命令包括:   select     desc      show

啟用binlog日志?
[root@stu ~]# vim  /etc/my.cnf
[mysqld]
log-bin
.....
:wq
/etc/init.d/mysql  restart

binlog日志文件默認存儲在數據庫目錄下?  /var/lib/mysql/
binlog日志文件默認命名方式?
主機頭名-bin.000001   #binlog日志文件,文件容量大於500M

后自動創建新的binlog日志文件
主機頭名-bin.index       #binlog日志索引文件

查看binlog日志文件內容?
mysqlbinlog    目錄/binlog日志文件
mysqlbinlog     /var/lib/mysql/stu-bin.000001

啟用binlog日志時指定存儲位置和文件名
[root@stu ~]# vim  /etc/my.cnf
[mysqld]
#log-bin
log-bin=/logdir/plj
.....
:wq

mkdir  /logdir
chown  mysql  /logdir
/etc/init.d/mysql  restart

mysqlbinlog   /logdir/plj.000001


手動生成新的binlog日志文件?
/etc/init.d/mysql  restart

mysql>  flush  logs;

[root@stu logdir]# mysql  -uroot  -p123  -e   "flush logs"

[root@stu logdir]# mysqldump  -uroot  -p123  --flush-logs   數據庫名  > 目錄名/xxx.sql

執行binlog日志里的SQL命令恢復記錄。

mysqlbinlog  【選項】 目錄/binlog日志文件 | mysql  -uroot  -p123   [數據庫名]

選項
時間點
--start-datetime="yyyy-mm-dd  hh:mm:ss"
--stop-datetime="yyyy-mm-dd  hh:mm:ss"

偏移量
--start-position=數字
--stop-position=數字


mysqlbinlog --stop-position=1093 plj.000008 | mysql -uroot -p123


[root@stu logdir]# cat plj.index
/logdir/plj.000001
/logdir/plj.000002
/logdir/plj.000003
/logdir/plj.000004
/logdir/plj.000005
/logdir/plj.000006
/logdir/plj.000007
/logdir/plj.000008
[root@stu logdir]#

[root@stu logdir]# mysqlbinlog `sed   '$d' plj.index`  | mysql -uroot  -p123
mysqlbinlog --stop-position=1093 plj.000008 | mysql -uroot -p123


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM