日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

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

数据库

MySQL 之binlog日志说明及利用binlog日志恢复数据操作记录

發布時間:2025/3/8 数据库 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 之binlog日志说明及利用binlog日志恢复数据操作记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

眾所周知,binlog日志對于mysql數據庫來說是十分重要的。在數據丟失的緊急情況下,我們往往會想到用binlog日志功能進行數據恢復(定時全備份+binlog日志恢復增量數據部分),化險為夷!

一、簡單了解binlog
MySQL的二進制日志binlog可以說是MySQL最重要的日志,它記錄了所有的DDL和DML語句(除了數據查詢語句select),以事件形式記錄,還包含語句所執行的消耗的時間,MySQL的二進制日志是事務安全型的。
===========================================================
DDL
? ?- Data Definition Language 數據庫定義語言
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定義或改變表(TABLE)的結構,數據類型,表之間的鏈接和約束等初始化工作上,他們大多在建立表時使用。

DML
? ?- Data Manipulation Language 數據操縱語言
主要的命令是SELECT、UPDATE、INSERT、DELETE,就象它的名字一樣,這4條命令是用來對數據庫里的數據進行操作的語言
===========================================================

mysqlbinlog常見的選項有以下幾個:
--start-datetime:從二進制日志中讀取指定等于時間戳或者晚于本地服務器的時間
--stop-datetime:從二進制日志中讀取指定小于時間戳或者等于本地服務器的時間 取值和上述一樣
--start-position:從二進制日志中讀取指定position 事件位置作為開始。
--stop-position:從二進制日志中讀取指定position 事件位置作為事件截至

===========================================================

一般來說開啟binlog日志大概會有1%的性能損耗。

binlog日志有兩個最重要的使用場景
1)MySQL主從復制:MySQL Replication在Master端開啟binlog,Master把它的二進制日志傳遞給slaves來達到
master-slave數據一致的目的。
2)自然就是數據恢復了,通過使用mysqlbinlog工具來使恢復數據。

binlog日志包括兩類文件
1)二進制日志索引文件(文件名后綴為.index)用于記錄所有的二進制文件
2)二進制日志文件(文件名后綴為.00000*)記錄數據庫所有的DDL和DML(除了數據查詢語句select)語句事件。

二、開啟binlog日志功能
1)編輯打開mysql配置文件/etc/mys.cnf
[root@vm-002 ~]# vim /etc/my.cnf
在[mysqld] 區塊添加
log-bin=mysql-bin?確認是打開狀態(mysql-bin 是日志的基本名或前綴名)

注意:每次服務器(數據庫)重啟,服務器會調用flush logs;,新創建一個binlog日志!

2)重啟mysqld服務使配置生效
[root@vm-002 ~]# /etc/init.d/mysqld stop
[root@vm-002 ~]# /etc/init.d/mysqld restart
Stopping mysqld: [ OK ]
Starting mysqld: [ OK ]

3)查看binlog日志是否開啟
mysql> show variables like 'log_%';
+---------------------------------+---------------------+
| Variable_name | Value |
+---------------------------------+---------------------+
|?log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_bin_trust_routine_creators | OFF |
| log_error | /var/log/mysqld.log |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
+---------------------------------+---------------------+
9 rows in set (0.00 sec)

三、常用的binlog日志操作命令
1)查看所有binlog日志列表
mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 149 |
| mysql-bin.000002 | 4102 |
+------------------+-----------+
2 rows in set (0.00 sec)

2)查看master狀態,即最后(最新)一個binlog日志的編號名稱,及其最后一個操作事件pos結束點(Position)值
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 | 4102 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

3)flush刷新log日志,自此刻開始產生一個新編號的binlog日志文件
mysql> flush logs;
Query OK, 0 rows affected (0.13 sec)

mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 149 |
| mysql-bin.000002 | 4145 |
| mysql-bin.000003 | 106 |
+------------------+-----------+
3 rows in set (0.00 sec)

注意:每當mysqld服務重啟時,會自動執行此命令,刷新binlog日志;在mysqldump備份數據時加 -F 選項也會刷新binlog日志;

4)重置(清空)所有binlog日志
mysql> reset master;
Query OK, 0 rows affected (0.12 sec)

mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 106 |
+------------------+-----------+
1 row in set (0.00 sec)

四、查看binlog日志內容,常用有兩種方式
1)使用mysqlbinlog自帶查看命令法:
注意:
-->binlog是二進制文件,普通文件查看器cat、more、vim等都無法打開,必須使用自帶的mysqlbinlog命令查看
-->binlog日志與數據庫文件在同目錄中
-->在MySQL5.5以下版本使用mysqlbinlog命令時如果報錯,就加上 “--no-defaults”選項

查看mysql的數據存放目錄,從下面結果可知是/var/lib//mysql
[root@vm-002 ~]# ps -ef|grep mysql
root 9791 1 0 21:18 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe?--datadir=/var/lib/mysql?--socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql 9896 9791 0 21:18 pts/0 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root 9916 9699 0 21:18 pts/0 00:00:00 mysql -px xxxx
root 9919 9715 0 21:23 pts/1 00:00:00 grep --color mysql

[root@vm-002 ~]# cd /var/lib/mysql/
[root@vm-002 mysql]# ls
ibdata1 ib_logfile0 ib_logfile1 mysql mysql-bin.000001 mysql-bin.000002 mysql-bin.index mysql.sock ops test

使用mysqlbinlog命令查看binlog日志內容,下面截取其中的一個片段分析:
[root@vm-002 mysql]# mysqlbinlog mysql-bin.000002
..............
# at 624
#160925 21:29:53 server id 1 end_log_pos 796 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1474810193/*!*/;
insert into member(`name`,`sex`,`age`,`classid`) values('wangshibo','m',27,'cls1'),('guohuihui','w',27,'cls2') ? ? ? ?#執行的sql語句
/*!*/;
# at 796
#160925?21:29:53?server id 1 end_log_pos 823 Xid = 17 ? ? ? ? ? ? ? ? ?#執行的時間
.............

解釋:
server id 1 : 數據庫主機的服務號;
end_log_pos 796: sql結束時的pos節點
thread_id=11: 線程號

2)上面這種辦法讀取出binlog日志的全文內容比較多,不容易分辨查看到pos點信息
下面介紹一種更為方便的查詢命令:
命令格式:
mysql>?show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
參數解釋:
IN 'log_name' :指定要查詢的binlog文件名(不指定就是第一個binlog文件)
FROM pos :指定從哪個pos起始點開始查起(不指定就是從整個文件首個pos點開始算)
LIMIT [offset,] :偏移量(不指定就是0)
row_count :查詢總條數(不指定就是所有行)

mysql> show master logs;
+------------------+-----------+
| Log_name | File_size |
+------------------+-----------+
| mysql-bin.000001 | 125 |
| mysql-bin.000002 | 823 |
+------------------+-----------+
2 rows in set (0.00 sec)

mysql>?show binlog events in 'mysql-bin.000002'\G;
*************************** 1. row ***************************
Log_name: mysql-bin.000002
Pos: 4
Event_type: Format_desc
Server_id: 1
End_log_pos: 106
Info: Server ver: 5.1.73-log, Binlog ver: 4
*************************** 2. row ***************************
Log_name: mysql-bin.000002
Pos: 106
Event_type: Query
Server_id: 1
End_log_pos: 188
Info: use `ops`; drop table customers
*************************** 3. row ***************************
Log_name: mysql-bin.000002
Pos: 188
Event_type: Query
Server_id: 1
End_log_pos: 529
Info: use `ops`; CREATE TABLE IF NOT EXISTS `member` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(16) NOT NULL,
`sex` enum('m','w') NOT NULL DEFAULT 'm',
`age` tinyint(3) unsigned NOT NULL,
`classid` char(6) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
*************************** 4. row ***************************
Log_name: mysql-bin.000002
Pos: 529
Event_type: Query
Server_id: 1
End_log_pos: 596
Info: BEGIN
*************************** 5. row ***************************
Log_name: mysql-bin.000002
Pos: 596
Event_type: Intvar
Server_id: 1
End_log_pos: 624
Info: INSERT_ID=1
*************************** 6. row ***************************
Log_name: mysql-bin.000002
Pos: 624
Event_type: Query
Server_id: 1
End_log_pos: 796
Info: use `ops`; insert into member(`name`,`sex`,`age`,`classid`) values('wangshibo','m',27,'cls1'),('guohuihui','w',27,'cls2')
*************************** 7. row ***************************
Log_name: mysql-bin.000002
Pos: 796
Event_type: Xid
Server_id: 1
End_log_pos: 823
Info: COMMIT /* xid=17 */
7 rows in set (0.00 sec)

ERROR:
No query specified

mysql>

上面這條語句可以將指定的binlog日志文件,分成有效事件行的方式返回,并可使用limit指定pos點的起始偏移,查詢條數!
如下操作示例:
a)查詢第一個(最早)的binlog日志:
mysql> show binlog events\G;

b)指定查詢 mysql-bin.000002這個文件:
mysql> show binlog events in 'mysql-bin.000002'\G;

c)指定查詢 mysql-bin.000002這個文件,從pos點:624開始查起:
mysql> show binlog events in 'mysql-bin.000002' from 624\G;

d)指定查詢 mysql-bin.000002這個文件,從pos點:624開始查起,查詢10條(即10條語句)
mysql> show binlog events in 'mysql-bin.000002' from 624 limit 10\G;

e)指定查詢 mysql-bin.000002這個文件,從pos點:624開始查起,偏移2行(即中間跳過2個),查詢10條
mysql> show binlog events in 'mysql-bin.000002' from 624 limit 2,10\G;

五、利用binlog日志恢復mysql數據

以下對ops庫的member表進行操作
mysql> use ops;
mysql> CREATE TABLE IF NOT EXISTS `member` (
-> `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
-> `name` varchar(16) NOT NULL,
-> `sex` enum('m','w') NOT NULL DEFAULT 'm',
-> `age` tinyint(3) unsigned NOT NULL,
-> `classid` char(6) DEFAULT NULL,
-> PRIMARY KEY (`id`)
-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.10 sec)

mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| member |
+---------------+
1 row in set (0.00 sec)

mysql> desc member;
+---------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+---------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(16) | NO | | NULL | |
| sex | enum('m','w') | NO | | m | |
| age | tinyint(3) unsigned | NO | | NULL | |
| classid | char(6) | YES | | NULL | |
+---------+---------------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)

事先插入兩條數據
mysql> insert into member(`name`,`sex`,`age`,`classid`) values('wangshibo','m',27,'cls1'),('guohuihui','w',27,'cls2');
Query OK, 2 rows affected (0.08 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
+----+-----------+-----+-----+---------+
2 rows in set (0.00 sec)

下面開始進行場景模擬:
1)
ops庫會在每天凌晨4點進行一次完全備份的定時計劃任務,如下:
[root@vm-002 ~]# crontab -l
0 4 * * * /usr/bin/mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/opt/backup/ops_$(date +%F).sql.gz

這里手動執行下,將ops數據庫備份到/opt/backup/ops_$(date +%F).sql.gz文件中:
[root@vm-002 ~]# mysqldump -uroot -p -B -F -R -x --master-data=2 ops|gzip >/opt/backup/ops_$(date +%F).sql.gz
Enter password:
[root@vm-002 ~]# ls /opt/backup/
ops_2016-09-25.sql.gz
-----------------
參數說明:
-B:指定數據庫
-F:刷新日志
-R:備份存儲過程等
-x:鎖表
--master-data:在備份語句里添加CHANGE MASTER語句以及binlog文件及位置點信息
-----------------
待到數據庫備份完成,就不用擔心數據丟失了,因為有完全備份數據在!!

由于上面在全備份的時候使用了-F選項,那么當數據備份操作剛開始的時候系統就會自動刷新log,這樣就會自動產生
一個新的binlog日志,這個新的binlog日志就會用來記錄備份之后的數據庫“增刪改”操作
查看一下:
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

也就是說, mysql-bin.000003 是用來記錄4:00之后對數據庫的所有“增刪改”操作。

2)
早上9點上班了,由于業務的需求會對數據庫進行各種“增刪改”操作。
比如:在ops庫下member表內插入、修改了數據等等:

先是早上進行插入數據:
mysql> insert into ops.member(`name`,`sex`,`age`,`classid`) values('yiyi','w',20,'cls1'),('xiaoer','m',22,'cls3'),('zhangsan','w',21,'cls5'),('lisi','m',20,'cls4'),('wangwu','w',26,'cls6');
Query OK, 5 rows affected (0.08 sec)
Records: 5 Duplicates: 0 Warnings: 0

mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | xiaoer | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

3)
中午又執行了修改數據操作:
mysql> update ops.member set name='李四' where id=4;
Query OK, 1 row affected (0.07 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> update ops.member set name='小二' where id=2;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | 小二 | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | 李四 | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

4)
在下午18:00的時候,悲劇莫名其妙的出現了!
手賤執行了drop語句,直接刪除了ops庫!嚇尿!
mysql> drop database ops;
Query OK, 1 row affected (0.02 sec)

5)
這種時候,一定不要慌張!!!
先仔細查看最后一個binlog日志,并記錄下關鍵的pos點,到底是哪個pos點的操作導致了數據庫的破壞(通常在最后幾步);

先備份一下最后一個binlog日志文件:
[root@vm-002 ~]# cd /var/lib/mysql/
[root@vm-002 mysql]# cp -v mysql-bin.000003 /opt/backup/
`mysql-bin.000003' -> `/opt/backup/mysql-bin.000003'
[root@vm-002 mysql]# ls /opt/backup/
mysql-bin.000003 ops_2016-09-25.sql.gz

接著執行一次刷新日志索引操作,重新開始新的binlog日志記錄文件。按理說mysql-bin.000003
這個文件不會再有后續寫入了,因為便于我們分析原因及查找ops節點,以后所有數據庫操作都會寫入到下一個日志文件。
mysql> flush logs;
Query OK, 0 rows affected (0.13 sec)

mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 106 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

6)
讀取binlog日志,分析問題。
讀取binlog日志的方法上面已經說到。
方法一:使用mysqlbinlog讀取binlog日志:
[root@vm-002 ~]# cd /var/lib/mysql/
[root@vm-002 mysql]# mysqlbinlog mysql-bin.000003

方法二:登錄服務器,并查看(推薦此種方法)
mysql>?show binlog events in 'mysql-bin.000003';

+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------------------------+
| Log_name | Pos | Event_type | Server_id | End_log_pos | Info |
+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------------------------+
| mysql-bin.000003 | 4 | Format_desc | 1 | 106 | Server ver: 5.1.73-log, Binlog ver: 4 |
| mysql-bin.000003 | 106 | Query | 1 | 173 | BEGIN |
| mysql-bin.000003 | 173 | Intvar | 1 | 201 | INSERT_ID=3 |
| mysql-bin.000003 | 201 | Query | 1 | 444 | use `ops`; insert into ops.member(`name`,`sex`,`age`,`gsan','w',21,'cls5'),('lisi','m',20,'cls4'),('wangwu','w',26,'cls6') |
| mysql-bin.000003 | 444 | Xid | 1 | 471 | COMMIT /* xid=66 */ |
| mysql-bin.000003 | 471 | Query | 1 | 538 | BEGIN |
| mysql-bin.000003 | 538 | Query | 1 | 646 | use `ops`; update ops.member set name='李四' where id= |
| mysql-bin.000003 | 646 | Xid | 1 | 673 | COMMIT /* xid=68 */ |
| mysql-bin.000003 | 673 | Query | 1 | 740 | BEGIN |
| mysql-bin.000003 | 740 | Query | 1 | 848 | use `ops`; update ops.member set name='小二' where id= |
| mysql-bin.000003 | 848 | Xid | 1 | 875 | COMMIT /* xid=69 */ |
| mysql-bin.000003 |?875?| Query | 1 |?954?|?drop database ops?|
| mysql-bin.000003 | 954 | Rotate | 1 | 997 | mysql-bin.000004;pos=4 |
+------------------+-----+-------------+-----------+-------------+----------------------------------------------------------------------------------------------------------------------------+
13 rows in set (0.00 sec)

或者:

mysql>?show binlog events in 'mysql-bin.000003'\G;
.........
.........
*************************** 12. row ***************************
Log_name: mysql-bin.000003
Pos:?875
Event_type: Query
Server_id: 1
End_log_pos:?954
Info:?drop database ops
*************************** 13. row ***************************
Log_name: mysql-bin.000003
Pos: 954
Event_type: Rotate
Server_id: 1
End_log_pos: 997
Info: mysql-bin.000004;pos=4
13 rows in set (0.00 sec)

通過分析,造成數據庫破壞的pos點區間是介于?875--954?之間(這是按照日志區間的pos節點算的),只要恢復到875前就可。

7)
先把凌晨4點全備份的數據恢復:
[root@vm-002 ~]# cd /opt/backup/
[root@vm-002 backup]# ls
mysql-bin.000003 ops_2016-09-25.sql.gz
[root@vm-002 backup]# gzip -d ops_2016-09-25.sql.gz
[root@vm-002 backup]# mysql -uroot -p -v < ops_2016-09-25.sql
Enter password:
--------------
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */
--------------

--------------
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */
--------------

.............
.............

--------------
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */
--------------

這樣就恢復了截至當日凌晨(4:00)前的備份數據都恢復了。

mysql> show databases; ? ? ? ? ? ? ? ? ? ? ? ?#發現ops庫已經恢復回來了
mysql> use ops;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------+
| Tables_in_ops |
+---------------+
| member |
+---------------+
1 row in set (0.00 sec)

mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
+----+-----------+-----+-----+---------+
2 rows in set (0.00 sec)

mysql>

但是這僅僅只是恢復了當天凌晨4點之前的數據,在4:00--18:00之間的數據還沒有恢復回來!!
怎么辦呢?
莫慌!這可以根據前面提到的mysql-bin.000003的新binlog日志進行恢復。

8)
從binlog日志恢復數據
恢復命令的語法格式:
mysqlbinlog mysql-bin.0000xx | mysql -u用戶名 -p密碼 數據庫名

--------------------------------------------------------
常用參數選項解釋:
--start-position=875 起始pos點
--stop-position=954 結束pos點
--start-datetime="2016-9-25 22:01:08" 起始時間點
--stop-datetime="2019-9-25 22:09:46" 結束時間點
--database=zyyshop 指定只恢復zyyshop數據庫(一臺主機上往往有多個數據庫,只限本地log日志)
--------------------------------------------------------
不常用選項:
-u --user=name 連接到遠程主機的用戶名
-p --password[=name] 連接到遠程主機的密碼
-h --host=name 從遠程主機上獲取binlog日志
--read-from-remote-server 從某個MySQL服務器上讀取binlog日志
--------------------------------------------------------
小結:實際是將讀出的binlog日志內容,通過管道符傳遞給mysql命令。這些命令、文件盡量寫成絕對路徑;

a)完全恢復(需要手動vim編輯mysql-bin.000003,將那條drop語句剔除掉)
[root@vm-002 backup]# cp /var/lib/mysql/mysql-bin.000003 /opt/backup
[root@vm-002 backup]# mysqlbinlog /opt/backup/mysql-bin.000003 > /opt/backup/000003.sql
[root@vm-002 backup]# vim /opt/backup/000003.sql #刪除里面的drop語句
[root@vm-002 backup]# mysql -uroot -p -v < /opt/backup/000003.sql

溫馨提示:
在恢復全備數據之前必須將該binlog文件移出,否則恢復過程中,會繼續寫入語句到binlog,最終導致增量恢復數據部分變得比較混亂!
可參考:https://www.cnblogs.com/kevingrace/p/5904800.html

b)指定pos結束點恢復(部分恢復):
--stop-position=471 pos結束節點(按照事務區間算,是471)
注意:
此pos結束節點介于“member表原始數據”與更新“name='李四'”之前的數據,這樣就可以恢復到更改“name='李四'”之前的數據了。
操作如下:
[root@vm-002 ~]# /usr/bin/mysqlbinlog --stop-position=471 --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | xiaoer | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

恢復截止到更改“name='李四'”之間的數據(按照事務區間算,是673)
[root@vm-002 ~]# /usr/bin/mysqlbinlog --stop-position=673 --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | 李四 | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

c)指定pso點區間恢復(部分恢復):
更新 name='李四' 這條數據,日志區間是Pos[538] --> End_log_pos[646],按事務區間是:Pos[471] --> End_log_pos[673]

更新 name='小二' 這條數據,日志區間是Pos[740] --> End_log_pos[848],按事務區間是:Pos[673] --> End_log_pos[875]

c1)
單獨恢復 name='李四' 這步操作,可這樣:
按照binlog日志區間單獨恢復:
[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-position=538 --stop-position=646 --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

按照事務區間單獨恢復
[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-position=471 --stop-position=673 --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

c2)
單獨恢復 name='小二' 這步操作,可這樣:
按照binlog日志區間單獨恢復:
[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-position=740 --stop-position=848 --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

按照事務區間單獨恢復
[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-position=673 --stop-position=875 --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

c3)
將 name='李四'、name='小二' 多步操作一起恢復,需要按事務區間,可這樣:
[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-position=471 --stop-position=875 --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

查看數據庫:
mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | 小二 | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | 李四 | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

這樣,就恢復了刪除前的數據狀態了!!

=====================================================

另外:也可以指定時間節點區間恢復(部分恢復),就是說除了用pos節點的辦法進行恢復,也可以通過指定時間節點區間進行恢復,
按時間恢復需要用mysqlbinlog命令讀取binlog日志內容,找時間節點。

如上,誤刪除ops庫后:
先進行全備份恢復
[root@vm-002 backup]# mysql -uroot -p -v < ops_2016-09-25.sql

查看ops數據庫
mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
+----+-----------+-----+-----+---------+
2 rows in set (0.00 sec)

mysql>

查看mysq-bin00003日志,找出時間節點
[root@vm-002 ~]# cd /var/lib/mysql
[root@vm-002 mysql]# mysqlbinlog mysql-bin.000003
.............
.............
BEGIN
/*!*/;
# at 173
#160925 21:57:19 server id 1 end_log_pos 201 Intvar
SET INSERT_ID=3/*!*/;
# at 201
#160925 21:57:19 server id 1 end_log_pos 444 Query thread_id=3 exec_time=0 error_code=0
use `ops`/*!*/;
SET TIMESTAMP=1474811839/*!*/;
insert into ops.member(`name`,`sex`,`age`,`classid`) values('yiyi','w',20,'cls1'),('xiaoer','m',22,'cls3'),('zhangsan','w',21,'cls5'),('lisi','m',20,'cls4'),('wangwu','w',26,'cls6') ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??#執行的sql語句
/*!*/;
# at 444
#160925?21:57:19?server id 1 end_log_pos 471 Xid = 66 ? ?#開始執行的時間
COMMIT/*!*/;
# at 471
#160925?21:58:41?server id 1 end_log_pos 538 Query thread_id=3 exec_time=0 error_code=0 ? ?#結束時間
SET TIMESTAMP=1474811921/*!*/;
BEGIN
/*!*/;
# at 538
#160925?21:58:41?server id 1 end_log_pos 646 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1474811921/*!*/;
update ops.member set name='李四' where id=4 ? ??#執行的sql語句
/*!*/;
# at 646
#160925?21:58:41?server id 1 end_log_pos 673 Xid = 68 ? ?#開始執行的時間
COMMIT/*!*/;
# at 673
#160925?21:58:56?server id 1 end_log_pos 740 Query thread_id=3 exec_time=0 error_code=0 ??#結束時間
SET TIMESTAMP=1474811936/*!*/;
BEGIN
/*!*/;
# at 740
#160925 21:58:56 server id 1 end_log_pos 848 Query thread_id=3 exec_time=0 error_code=0
SET TIMESTAMP=1474811936/*!*/;
update ops.member set name='小二' where id=2 ? ???#執行的sql語句
/*!*/;
# at 848
#160925?21:58:56?server id 1 end_log_pos 875 Xid = 69 ??#開始執行的時間
COMMIT/*!*/;
# at 875
#160925?22:01:08?server id 1 end_log_pos 954 Query thread_id=3 exec_time=0 error_code=0 ? ?#結束時間
SET TIMESTAMP=1474812068/*!*/;
drop database ops
/*!*/;
# at 954
#160925 22:09:46 server id 1 end_log_pos 997 Rotate to mysql-bin.000004 pos: 4
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

恢復到更改“name='李四'”之前的數據
[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-datetime="2016-09-25 21:57:19" --stop-datetime="2016-09-25 21:58:41" --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops

mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | xiaoer | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-datetime="2016-09-25 21:58:41" --stop-datetime="2016-09-25 21:58:56" --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops
mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | guohuihui | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | 李四 | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

[root@vm-002 ~]# /usr/bin/mysqlbinlog --start-datetime="2016-09-25 21:58:56" --stop-datetime="2016-09-25 22:01:08" --database=ops /var/lib/mysql/mysql-bin.000003 | /usr/bin/mysql -uroot -p123456 -v ops
mysql> select * from member;
+----+-----------+-----+-----+---------+
| id | name | sex | age | classid |
+----+-----------+-----+-----+---------+
| 1 | wangshibo | m | 27 | cls1 |
| 2 | 小二 | w | 27 | cls2 |
| 3 | yiyi | w | 20 | cls1 |
| 4 | 李四 | m | 22 | cls3 |
| 5 | zhangsan | w | 21 | cls5 |
| 6 | lisi | m | 20 | cls4 |
| 7 | wangwu | w | 26 | cls6 |
+----+-----------+-----+-----+---------+
7 rows in set (0.00 sec)

這樣,就恢復了刪除前的狀態了!

總結:所謂恢復,就是讓mysql將保存在binlog日志中指定段落區間的sql語句逐個重新執行一次而已。

總結

以上是生活随笔為你收集整理的MySQL 之binlog日志说明及利用binlog日志恢复数据操作记录的全部內容,希望文章能夠幫你解決所遇到的問題。

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

99视频免费看 | 欧美午夜视频在线 | 久草综合在线观看 | 综合国产在线观看 | 探花视频免费在线观看 | 亚洲五月六月 | 日日弄天天弄美女bbbb | 成人在线播放网站 | 99久久精品国产一区二区三区 | 在线观看亚洲免费视频 | 狠狠干中文字幕 | 日本精品久久久久中文字幕5 | 婷婷久久一区 | 999国内精品永久免费视频 | 二区精品视频 | 日日天天干 | 欧美xxxx性xxxxx高清 | 久久久久久免费毛片精品 | 四虎影视成人永久免费观看亚洲欧美 | 丁香婷婷深情五月亚洲 | 日韩电影在线观看一区二区 | 日韩69av | 丁香 久久 综合 | av片免费播放 | 欧美一级性生活 | 一本色道久久综合亚洲二区三区 | 国产精品一区二区三区99 | 人人爽人人爽人人 | 91爱爱电影 | 成人在线观看资源 | 亚洲精品动漫久久久久 | 亚洲一区精品二人人爽久久 | 国产xxxxx在线观看 | 97超碰人人澡 | 91激情视频在线 | 中文理论片 | 久久久久久黄色 | 在线观看国产高清视频 | 欧美日韩一区二区免费在线观看 | 久章草在线 | 日韩动态视频 | 精品国产乱码久久久久久1区二区 | 97电影院在线观看 | 男女全黄一级一级高潮免费看 | 欧美日韩视频免费看 | 色av色av色av| 成人a免费 | av中文字幕av | 久久亚洲二区 | 免费69视频 | 综合久久影院 | 久久精品网站免费观看 | 91精品资源 | 99精品国产一区二区三区不卡 | 日韩在线观看你懂得 | 天天精品视频 | 日韩在线观看你懂得 | 久久精品资源 | 国产精品久久久久影院日本 | 免费黄色网止 | 2022中文字幕在线观看 | 国产精品成人一区二区 | 亚洲最大成人免费网站 | 欧美成人一区二区 | 91精品久久久久久久99蜜桃 | 天天爱天天操天天干 | 国产又粗又猛又色又黄视频 | 久久九九影视 | 91av超碰 | 午夜av色 | 五月激情综合婷婷 | 亚洲综合视频在线播放 | 超碰国产在线播放 | 亚洲综合激情 | 最新超碰| 欧美日本在线观看视频 | 天天躁日日躁狠狠躁av麻豆 | 国产最顶级的黄色片在线免费观看 | 日韩在线观看高清 | av免费看在线 | 久久99国产精品二区护士 | 丰满少妇麻豆av | 亚洲人成在线电影 | 91传媒免费观看 | 在线观看日韩免费视频 | 又黄又刺激又爽的视频 | 久草精品电影 | 99国产精品视频免费观看一公开 | 久久福利剧场 | 国产91精品一区二区麻豆亚洲 | 欧美极品在线播放 | 亚洲激情在线视频 | 亚洲国产中文字幕在线观看 | 一区二区av | 国产精品色在线 | 九九热免费观看 | 国产日产精品一区二区三区四区的观看方式 | 玖玖在线免费视频 | 精品国产午夜 | 国产精品精品久久久久久 | 中文有码在线 | www色| www.夜夜骑.com| 日韩三区在线观看 | 精品在线观看免费 | 国产九九精品 | 一本一道久久a久久精品蜜桃 | 日韩av男人的天堂 | 欧美日韩亚洲第一页 | 久久久午夜视频 | 在线观看亚洲视频 | av国产在线观看 | 亚洲最大色 | 中文字幕不卡在线88 | 久久综合五月婷婷 | 国产精品成 | www.夜夜操.com| 在线播放国产一区二区三区 | 麻豆视频成人 | 日韩av电影免费在线观看 | 激情五月开心 | 不卡电影免费在线播放一区 | 日韩在线视频网址 | a视频在线播放 | 久久精彩视频 | 欧美日韩国产区 | 欧美激情精品久久久久 | 日韩欧美专区 | 99中文字幕视频 | 在线欧美最极品的av | 欧美激情在线网站 | 人人爽人人舔 | 四虎成人在线 | 国产精品色婷婷视频 | 色资源在线 | 国产伦理一区 | 日本黄色大片免费 | 天天色天天色天天色 | 日本丶国产丶欧美色综合 | 18久久久久| 欧美91精品国产自产 | 中文字幕在线影院 | 免费在线观看中文字幕 | 美女精品在线 | 色综合久久久 | 久久久九色精品国产一区二区三区 | 国产99区| 激情av在线播放 | 91久久精品一区 | 欧美成人理伦片 | 国产一区视频在线观看免费 | 亚洲国产一区在线观看 | 色综合天天视频在线观看 | 国产一区91 | 一级黄色片网站 | 在线成人免费电影 | 91成人免费在线视频 | 免费亚洲一区二区 | 免费在线观看av网址 | 久久精品国产精品亚洲精品 | 黄色一区二区在线观看 | 精品福利片 | 日韩免费一区 | 99热最新精品 | 国产不卡在线 | 亚洲成人一区 | 色婷婷中文 | 国产精华国产精品 | 国产一区二区在线观看免费 | 日韩中文幕| 成人久久久精品国产乱码一区二区 | 日韩av资源在线观看 | 精品久久久久久电影 | 欧美另类亚洲 | 午夜性福利 | 黄色成人免费电影 | 免费观看福利视频 | 国产中文字幕一区二区 | 久久精品男人的天堂 | 99爱爱| 亚洲天堂自拍视频 | 91免费视频黄 | 奇米网444 | 亚洲精品视频免费 | 欧美日韩精品在线一区二区 | 最近中文字幕国语免费av | 黄色片视频在线观看 | 丁香久久婷婷 | 日韩视频免费观看高清 | 日韩精品一区二区在线观看视频 | 久久综合久久综合这里只有精品 | 久久久久电影 | 手机看片中文字幕 | 六月激情网 | 不卡视频一区二区三区 | 91成人精品一区在线播放 | 国产精品乱码久久久久 | 成人国产亚洲 | 乱男乱女www7788 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 欧美一区日韩精品 | 国产免费叼嘿网站免费 | 日b视频在线观看网址 | 狠狠操影视 | 成人久久视频 | 美女视频免费精品 | 五月婷婷欧美视频 | 韩国av电影在线观看 | 美女免费电影 | 超碰人人在线 | 国产成人精品一区二区三区在线观看 | 天天干天天色2020 | 色综合中文综合网 | 在线观看完整版免费 | 国产精品视频不卡 | 在线观看亚洲免费视频 | 99久热在线精品视频成人一区 | 九九国产精品视频 | 国产手机免费视频 | 国内精品一区二区 | 99精品国产一区二区三区麻豆 | 久久婷婷一区二区三区 | 手机版av在线 | 国外调教视频网站 | 一级性av | 91精品国自产在线观看 | 国产色一区 | 一区二区三区播放 | 国产精品一区二区吃奶在线观看 | 午夜精品剧场 | 欧美一区二区在线刺激视频 | 欧美一区二区精品在线 | 亚洲精品乱码久久久久久蜜桃欧美 | 日韩国产精品毛片 | 欧美日韩超碰 | 天堂av免费观看 | 色午夜| 国产自产高清不卡 | 日本韩国精品一区二区在线观看 | 麻豆视频国产精品 | 日韩欧美在线视频一区二区三区 | 精品一区电影国产 | 欧美色操 | 亚洲精品456在线播放乱码 | 精品999国产| 日韩在线三级 | 久久精品com | 又污又黄网站 | 色com网 | 亚洲深夜影院 | 成人久久 | 黄色在线观看网站 | 久久99视频免费观看 | 久久久国产精华液 | 午夜一级免费电影 | av成人在线网站 | 亚洲视屏在线播放 | 国产高清视频免费在线观看 | 麻豆国产露脸在线观看 | 久久激情日本aⅴ | 久久这里只有精品久久 | 国产自在线 | 91超级碰 | 日韩有码第一页 | 麻豆久久| 五月婷婷在线观看视频 | 狠狠色狠狠色终合网 | 日韩高清免费无专码区 | 久久一区二区三区超碰国产精品 | 毛片www| 97精品国产97久久久久久粉红 | 黄色大片av | 久久一久久 | 久久综合色天天久久综合图片 | 视频 国产区 | 97成人在线观看视频 | 69久久久久久久 | 91亚洲精品视频 | 亚洲精品自拍 | 精品福利视频在线观看 | 8x成人免费视频 | 在线观看视频黄色 | 天天拍天天爽 | 91探花国产综合在线精品 | 欧洲性视频 | 欧美亚洲精品一区 | 欧美黑人xxxx猛性大交 | 久久精品视频免费观看 | 成人中心免费视频 | 天天艹天天| 人人爽人人做 | 精品国产一区二区三区噜噜噜 | 在线观看免费av片 | 91在线麻豆 | 国产美女网站在线观看 | 日韩欧美一区二区三区黑寡妇 | 九九在线视频免费观看 | 亚洲精品欧美视频 | 成人a在线观看高清电影 | 国产精品99久久免费黑人 | 91麻豆精品国产自产在线游戏 | 国产91学生粉嫩喷水 | 国产成人av一区二区三区在线观看 | 99中文字幕视频 | 黄色av一区二区三区 | 亚洲欧洲精品一区二区精品久久久 | www.伊人网.com| 狠狠的操你 | 亚洲国内精品在线 | 日韩免费电影一区二区三区 | 午夜视频在线瓜伦 | 天天拍天天操 | 97视频在线观看免费 | 欧美极品xxxxx| 九九有精品 | 欧美日韩精品影院 | 成人啪啪18免费游戏链接 | 人人精品久久 | 永久免费毛片 | 永久免费在线 | 最近最新最好看中文视频 | 国产一在线精品一区在线观看 | 天天综合网 天天 | 国产精品一区在线观看 | 成人毛片在线视频 | 久久久久久国产精品免费 | 色婷婷国产精品 | 日日干网 | 黄色三级免费 | 日韩三级精品 | 日韩高清精品一区二区 | 不卡视频在线看 | 亚洲视频免费在线观看 | 亚洲免费永久精品国产 | 久久久国产精品亚洲一区 | 久久精品视频播放 | 在线免费观看欧美日韩 | 综合精品在线 | 欧美日韩高清一区 | 国产一区av在线 | 草莓视频在线观看免费观看 | 成人毛片在线观看视频 | 天天天干天天射天天天操 | 欧美伦理电影一区二区 | 精品国产一区二区三区四区vr | 国产精品v欧美精品 | 国产视频1 | 亚洲国产精品一区二区久久,亚洲午夜 | 国产黄色网| 成人黄色小说在线观看 | 日韩mv欧美mv国产精品 | 99在线观看精品 | 天天摸天天干天天操天天射 | 日韩欧美高清 | 一区国产精品 | 四虎影视www | 丁香高清视频在线看看 | 久久国产精品视频 | 欧美a级成人淫片免费看 | 日日碰夜夜爽 | 日日夜夜人人精品 | a级成人毛片 | 国产无套精品久久久久久 | 国产精品网址在线观看 | 91精品视频免费 | 亚洲伊人天堂 | 久久亚洲综合色 | 男女全黄一级一级高潮免费看 | 综合五月| 国产成人精品一区二区三区在线 | 免费日韩 精品中文字幕视频在线 | 手机在线日韩视频 | 美女免费视频观看网站 | 天天插综合网 | 18国产精品白浆在线观看免费 | 国产999精品久久久久久 | 日韩久久精品一区二区三区 | av成人动漫在线观看 | 成人黄色视| 久久视频中文字幕 | 主播av在线 | 亚洲精品免费在线观看 | 久久男女视频 | 久久99精品久久久久婷婷 | 国产精品久久影院 | 日本99热 | 最新中文字幕 | 99久久99久久免费精品蜜臀 | 麻豆va一区二区三区久久浪 | 精品美女视频 | 国产成人久久精品亚洲 | 91麻豆免费看 | 天天摸天天操天天爽 | 国产精品手机在线 | 丝袜美腿在线播放 | 午夜色站 | 一区二区三区四区免费视频 | 欧美男女爱爱视频 | a级一a一级在线观看 | 国产一级二级三级在线观看 | 国产精品精品久久久久久 | 日日操日日干 | 最近免费中文字幕 | 伊人久久av| 最新国产精品久久精品 | 日韩中文在线视频 | 国产在线观看你懂得 | 五月天久久激情 | 国产精品永久久久久久久久久 | 成人黄色在线看 | 久久久久久久久久影院 | 国产69久久精品成人看 | 国产在线视频一区二区三区 | 精品在线观看国产 | 午夜精品一区二区三区免费 | 久久亚洲视频 | av 一区二区三区四区 | 日韩精品一区二区三区中文字幕 | 欧美成年网站 | 日韩一区二区免费视频 | 91视频最新网址 | 91精品视频免费 | 最近中文字幕视频完整版 | 久久精品婷婷 | 亚洲国产wwwccc36天堂 | 日韩精品久久久久久 | 国产成在线观看免费视频 | 18国产精品白浆在线观看免费 | 天天综合操 | 免费中文字幕视频 | 美女精品在线观看 | 久久精品www人人爽人人 | 91在线视频| 人人爽人人爽 | 91九色国产在线 | 国产免费观看视频 | 在线观看涩涩 | 五月婷香蕉久色在线看 | 亚洲自拍av在线 | 国产精品videossex国产高清 | a√资源在线 | 免费观看久久久 | 伊人看片 | 欧美激情一区不卡 | 成人免费观看视频大全 | 69绿帽绿奴3pvideos | av成人免费在线看 | 久久www免费视频 | 少妇bbbb揉bbbb日本 | 久99久久| 日韩在线视频精品 | 欧美一级性 | 午夜在线看片 | 高清国产午夜精品久久久久久 | www五月婷婷 | 日韩乱理 | 97在线视频免费观看 | 狠狠狠狠狠狠 | 久久综合狠狠综合久久综合88 | 正在播放一区 | 中文字幕4 | 日韩欧美综合在线视频 | 亚洲一区免费在线 | 香蕉久久国产 | 日韩一区二区免费播放 | 不卡的av | 天堂v中文 | 国产亚洲成人网 | 九色精品免费永久在线 | 精品专区一区二区 | 天堂资源在线观看视频 | 日韩a在线 | 久久歪歪 | 成年人毛片在线观看 | 免费看污片 | 在线香蕉视频 | 成年人黄色免费网站 | 天天干 天天摸 天天操 | 在线免费91| 999国产在线| 久久电影网站中文字幕 | 在线视频一二三 | 色小说在线 | 欧美日韩亚洲一 | 欧美伦理一区二区 | 婷婷中文字幕在线观看 | 日韩三级视频在线观看 | 久久综合99| 久久久999免费视频 日韩网站在线 | 韩国一区二区三区视频 | 999亚洲国产996395| 97视频在线观看播放 | 免费色黄 | 国产午夜精品av一区二区 | 91在线超碰 | 黄色毛片网站在线观看 | 在线免费观看av网站 | 欧美精品免费在线观看 | 久久艹国产视频 | 成年人黄色av| 午夜av在线 | 男女视频国产 | 在线观看av麻豆 | 在线亚洲成人 | 国产精品一区二区美女视频免费看 | 久久99国产一区二区三区 | 欧美日韩国产一二三区 | 中文字幕在线日本 | 超碰在线公开免费 | 免费久久99精品国产婷婷六月 | 91亚洲激情| 亚洲激情p| 亚洲最快最全在线视频 | av福利网址导航 | 亚洲午夜av久久乱码 | 91精品在线免费观看视频 | 久久精品99国产国产 | 国产馆在线播放 | 91久久国产综合精品女同国语 | 欧美一区中文字幕 | 国产麻豆成人传媒免费观看 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 香蕉在线观看 | 在线免费av播放 | 中文字幕高清免费日韩视频在线 | 久久免费成人网 | 欧美专区国产专区 | 久久色在线观看 | 欧美日韩午夜在线 | 日韩精品一区二区在线观看视频 | 成人午夜影院 | 亚洲欧洲精品一区 | 亚洲成av| 成人97人人超碰人人99 | 亚洲一区二区三区在线看 | 在线观看成人小视频 | 丁香六月国产 | 久久综合99| www.福利 | av在线最新| 久久伦理 | 国产精品你懂的在线观看 | 久久久久久蜜桃一区二区 | 欧美另类69 | 一级理论片在线观看 | 亚洲综合在线观看视频 | 精品视频免费在线 | av线上看| 国内精品福利视频 | 日韩狠狠操 | 国产精品涩涩屋www在线观看 | 国产黄色片免费观看 | 日韩精品专区在线影院重磅 | 成人免费看片98欧美 | 全黄网站| 99热手机在线观看 | 久久久久高清 | 亚洲乱码在线观看 | 日韩精品免费在线 | 午夜成人免费电影 | 国产精品网站一区二区三区 | 日本韩国精品一区二区在线观看 | 久福利 | 九九热中文字幕 | 亚洲天天在线日亚洲洲精 | 免费男女羞羞的视频网站中文字幕 | 91久久久久久国产精品 | 在线草 | 日韩乱码在线 | 久久婷亚洲五月一区天天躁 | 99久久久免费视频 | 亚洲精品乱码久久 | 五月天六月婷婷 | 一区在线观看 | 婷婷丁香色综合狠狠色 | 国产精品永久免费视频 | 亚洲国产精品500在线观看 | 国产日产亚洲精华av | 涩涩网站在线看 | 日韩免费一区二区在线观看 | 日韩免费在线网站 | 国产91精品在线播放 | 久久久麻豆精品一区二区 | 亚洲视频资源在线 | 91亚洲欧美激情 | 亚洲高清国产视频 | 亚洲japanese制服美女 | 成人免费看电影 | 欧美精品乱码久久久久久按摩 | 日韩欧美在线观看一区二区三区 | 亚洲天堂网在线观看视频 | 婷婷国产v亚洲v欧美久久 | 欧美淫视频 | 国产亚洲成av人片在线观看桃 | 国产白浆在线观看 | 在线免费观看视频a | 91av中文 | 久久国产剧场电影 | 国产视频一区二区三区在线 | 成人动图 | 奇人奇案qvod | 波多野结衣在线视频一区 | 91亚洲欧美激情 | aaa日本高清在线播放免费观看 | 亚洲少妇久久 | 91网站观看| 久久美女电影 | 午夜av剧场 | 日韩在线视频一区 | 午夜精品福利一区二区三区蜜桃 | 精品视频www | 国内精自线一二区永久 | 午夜视频一区二区 | 涩涩网站在线观看 | 国产不卡网站 | 四虎成人免费影院 | 亚洲国产精品电影 | 操操操夜夜操 | 中文字幕一区二区三区四区在线视频 | 欧美在线视频一区二区三区 | 伊人www22综合色 | 国产一区二区三区视频在线 | 亚洲区精品视频 | 免费av观看网站 | 日韩av网站在线播放 | 伊人亚洲综合网 | 亚洲精品国产精品国自产观看 | 亚洲欧美日韩一区二区三区在线观看 | 一本一本久久a久久精品综合 | 久久精品老司机 | 日本最新高清不卡中文字幕 | 天天摸天天干天天操天天射 | 免费观看黄 | 亚洲精品一区二区久 | 久久9视频 | 亚洲一区精品二人人爽久久 | 在线免费成人 | 日韩欧美网址 | 国产成人亚洲在线观看 | 日本老少交| 久久久久区 | 精品国产乱码久久久久久1区二区 | 日韩欧美v | 免费亚洲视频在线观看 | 欧美久久久影院 | 亚洲午夜精品久久久 | 婷婷激情网站 | 免费能看的黄色片 | 亚洲精区二区三区四区麻豆 | 中文一二区 | 456免费视频 | 亚洲精品男人的天堂 | 伊人伊成久久人综合网站 | 久草视频在线资源 | 91插插影库 | 国产精品色婷婷 | 国产91对白在线播 | 成人看片| 1024手机在线看 | 99久久精品国产一区二区三区 | 日韩亚洲精品电影 | 一区二区三区动漫 | 91视频在线免费下载 | 天天射天天爱天天干 | 九色91福利 | 久久99精品视频 | 一区二区不卡视频在线观看 | 久久成人免费视频 | 国产999精品久久久 免费a网站 | 麻豆视频免费在线观看 | 97超级碰碰碰碰久久久久 | 97超碰成人 | 国产自在线观看 | 成人久久久久久久久 | 99在线观看视频 | 在线天堂8√ | 人人插超碰| 久久久久久久久久久影视 | 日本公妇在线观看高清 | 国产91丝袜在线播放动漫 | 国产精品久久久久久久久久不蜜月 | 亚洲精品午夜久久久久久久 | 亚洲成a人片综合在线 | 色吊丝在线永久观看最新版本 | 日韩欧美精品在线视频 | 色播六月天 | 999久久国精品免费观看网站 | 国产 日韩 欧美 在线 | 亚洲精品一区二区三区高潮 | 激情偷乱人伦小说视频在线观看 | 国产精品v欧美精品v日韩 | 天天射射天天 | 欧美成人91 | 国产高清专区 | 久久久www成人免费毛片麻豆 | 亚洲黄色av | 久久女教师| 制服丝袜一区二区 | 草久久久久 | 天天操天天射天天操 | 婷婷成人综合 | 久久精彩免费视频 | 免费成人黄色 | 日本三级香港三级人妇99 | 三级av网站| 日韩免费三级 | 97精品国产91久久久久久 | 国产在线a免费观看 | 日韩综合在线观看 | 日韩免费观看高清 | 国产精品成人aaaaa网站 | 国产精品 国产精品 | 久久精品com | 欧美精品久久人人躁人人爽 | 日本视频久久久 | 能在线观看的日韩av | 国产小视频在线免费观看视频 | 亚洲男人天堂a | 五月激情久久 | www.色爱| 91精品第一页| 色视频在线免费 | 久久网站免费 | 日韩一级成人av | 日韩中字在线 | 欧美人牲| 东方av在| 国产精品久久久久久久久费观看 | 三级黄色在线 | 国产精品区在线观看 | 欧美日韩免费在线观看视频 | 六月丁香激情综合色啪小说 | 香蕉在线观看 | 成人av资源网站 | 黄色av大片 | 国产高清视频在线观看 | 在线看国产视频 | 中文字幕一区二区三区久久蜜桃 | 亚洲欧美日韩中文在线 | 久久精品视频播放 | 中文字幕在线观看免费高清完整版 | 国产一区视频在线 | 国内精品久久久久久久 | 国产精品 国内视频 | 国产福利免费在线观看 | 久久精品日产第一区二区三区乱码 | 久久久久亚洲天堂 | 久久一区二区三区超碰国产精品 | 午夜久久视频 | 久久久久久久久电影 | 欧美日韩不卡在线观看 | 99精品在线 | 亚洲国产精品久久久久婷婷884 | 国产精彩视频 | 激情小说网站亚洲综合网 | 国产不卡视频在线播放 | 日韩精品一区二区三区三炮视频 | 欧美激情视频在线免费观看 | 不卡av电影在线观看 | 综合铜03| 亚洲欧洲国产视频 | 九九久久影视 | 国产美女黄网站免费 | 国产精品一区二区白浆 | 国产精品一区二区av | 国产午夜精品免费一区二区三区视频 | 在线观看久 | 日韩中文字幕电影 | 狠狠狠狠狠狠狠狠干 | 在线看v片成人 | 国产免码va在线观看免费 | 免费看的国产视频网站 | 欧美激情综合五月色丁香 | 最新日韩中文字幕 | 99精品一区二区 | 久久精品国产亚洲 | 丁香婷婷色综合亚洲电影 | 免费亚洲婷婷 | 亚洲综合视频网 | 91豆麻精品91久久久久久 | 亚洲丝袜一区 | 婷婷久久精品 | 韩日在线一区 | 综合激情网... | 日韩精品中文字幕在线观看 | 欧美成年人在线视频 | 国产精品18久久久久vr手机版特色 | 性色在线视频 | 人人看看人人 | 91成人精品 | 国产日韩在线观看一区 | 91最新在线视频 | 在线免费观看视频一区二区三区 | 国产伦精品一区二区三区免费 | 久久人人爽爽 | 亚洲无吗天堂 | 久久av黄色| 亚洲国产欧洲综合997久久, | 伊人亚洲综合网 | 狠狠色丁香婷婷综合视频 | 91麻豆精品国产91久久久久久久久 | 99re在线视频观看 | 天天草av| 久久1区| 久久精品九色 | 亚洲天堂va| 丁香婷婷激情 | 美女视频国产 | 天天干天天上 | 久久午夜国产 | 国产青春久久久国产毛片 | 99re国产 | 干干夜夜 | 六月丁香激情综合 | 欧洲精品一区二区 | 日韩中文字幕免费在线播放 | 97在线观看免费高清完整版在线观看 | 久久日韩精品 | 婷婷在线免费观看 | 天天射射天天 | 日本精品一区二区三区在线播放视频 | 亚洲欧美视频网站 | 欧美日韩在线视频一区二区 | 免费看一级特黄a大片 | 在线岛国av | 国产视频精品免费 | 亚洲精品国产综合99久久夜夜嗨 | 久久国产精品区 | 91视频链接 | 91av在线电影 | 精品人人爽 | 91在线porny国产在线看 | 伊人久久电影网 | 黄色国产在线观看 | 人人干狠狠干 | 伊人婷婷综合 | 国产精品18p | 一区二区三区 中文字幕 | 亚洲精品免费看 | 国产精品久久久久一区二区三区共 | 97视频在线播放 | 国产录像在线观看 | 有码中文字幕在线观看 | 欧美激情综合五月色丁香 | 久久午夜羞羞影院 | 日本韩国欧美在线观看 | 国产一区视频在线播放 | 超级碰碰免费视频 | 97在线观视频免费观看 | 欧美日韩不卡在线观看 | 九九久久免费 | 中文字幕国语官网在线视频 | 久久综合色8888 | 亚州精品天堂中文字幕 | 国产日韩精品一区二区 | 国产精品免费看 | 欧美韩日视频 | 国产视频91在线 | www在线观看视频 | 色在线视频| 色94色欧美| 国产精品久久久久一区二区三区共 | 国产精品久久久久久久久久久久午夜 | 丁香六月婷婷开心婷婷网 | 99久久99久久免费精品蜜臀 | 在线播放日韩av | 国产黄在线播放 | 精品999久久久 | 国产精品 久久 | 综合亚洲视频 | 91成人精品观看 | 91av资源网 | 亚洲最新av在线网址 | 午夜精品一区二区三区视频免费看 | 天天干天天做天天爱 | 久久国产美女视频 | 香蕉久草 | 天天看天天操 | 成人免费在线播放视频 | 性日韩欧美在线视频 | 国产欧美在线一区二区三区 | 国产一级黄色电影 | 五月花婷婷 | 亚洲精品美女在线观看 | 丁香视频五月 | 国产亚洲日本 | 亚洲精品在线一区二区 | 欧美一区二区三区在线 | 中文字幕精品一区久久久久 | 九九视频精品免费 | 久久国产麻豆 | 国产精品精品国产婷婷这里av | 少妇bbbb揉bbbb日本 | 精品视频国产一区 | 午夜久久久久 | 人人澡人 | 亚洲国产mv | 国产丝袜一区二区三区 | 国产精品xxxx18a99 | 国产午夜小视频 | 亚洲国产999 | 欧美日韩国产精品一区 | 999成人 | 国产专区视频在线观看 | 热re99久久精品国产66热 | 国产黄色av影视 | 国产精品网红福利 | 97av在线视频免费播放 | wwxxx日本| 亚洲国产成人高清精品 | 国产一区二区不卡在线 | 亚洲精品在线免费看 | 欧美激情视频在线免费观看 | 久久国产综合视频 | 这里只有精品视频在线 | 中文字幕一区二区三区久久 | 亚洲人成人99网站 | 欧美精品在线观看 | 久久a久久 | 日韩三区在线 | 日韩免费久久 | a级黄色片视频 | 蜜臀aⅴ国产精品久久久国产 | 97视频免费在线 | 日本久久中文字幕 | 热re99久久精品国产99热 | 欧美激情视频三区 | 波多野结衣在线观看一区二区三区 | 免费在线黄网 | 中文高清av | 日韩激情在线 | 91久久精品日日躁夜夜躁国产 | 久久精品国产精品亚洲精品 | 欧美性黄网官网 | 国产自在线观看 | 一区二区三区四区五区在线视频 | 最近中文字幕免费大全 | av在线播放不卡 | 在线之家官网 | 九九在线播放 | 91色国产在线 | 亚洲天堂精品 | 成年人免费av | 91黄色在线视频 | 在线小视频国产 | 婷婷网五月天 | 中文字幕超清在线免费 | 999视频网| 天天色天天干天天色 | 国产精品成人久久久 | 国产五月天婷婷 | 激情综合亚洲精品 | 丁香高清视频在线看看 | 日韩免费一区二区三区 | 天天干天天拍天天操天天拍 | 91爱在线| 国产中文在线播放 | 久久久www成人免费精品 | 国产在线观看免费观看 | 久久黄色小说 | 日韩在线视 | 91色影院 | 欧美日韩国产精品一区二区三区 | 五月天丁香亚洲 | 国产一区在线观看视频 | 激情av网址 | 美女露久久 | 天天射天天干天天插 | 国产高清不卡一区二区三区 | 天堂网在线视频 | 久久久在线免费观看 | av成人免费在线 | 国产成人av | 国产精品乱码一区二区视频 | 欧美日韩一级久久久久久免费看 | 在线 高清 中文字幕 | 在线观看精品一区 | 亚洲最大在线视频 | 国产视频69 | 黄色亚洲大片免费在线观看 | 国产福利在线不卡 | 黄色免费av | 97香蕉久久国产在线观看 | www.久久com | 又黄又色又爽 | 久久久福利视频 | 午夜性生活 | 精品视频免费 | 日韩精品免费在线观看视频 | 波多野结衣视频一区 | 91精品国产自产老师啪 | free,性欧美| 成人蜜桃视频 | 六月丁香婷婷在线 | 96久久久 | 国产又粗又长又硬免费视频 | 日韩国产精品久久久久久亚洲 | 国产不卡一区二区视频 |