在從數據庫服務器的/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
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++