主頁 > 資料庫 > Mysql的binlog日志與mysqlbinlog命令

Mysql的binlog日志與mysqlbinlog命令

2020-09-20 08:27:24 資料庫

binlog相關

MySQL 的二進制日志 binlog 可以說是 MySQL 最重要的日志,它記錄了所有的 DDL 和 DML 陳述句(除了資料查詢陳述句select、show等),以事件形式記錄,還包含陳述句所執行的消耗的時間,MySQL的二進制日志是事務安全型的,binlog 的主要目的是復制和恢復,

Binlog日志的兩個最重要的使用場景
MySQL主從復制:MySQL Replication在Master端開啟binlog,Master把它的二進制日志傳遞給slaves來達到master-slave資料一致的目的
資料恢復:通過使用 mysqlbinlog工具來使恢復資料


總體的關于binlog的引數如下

sync_binlog = 1
log-bin = mysql-bin
binlog_format = row
expire_logs_days = 10
binlog_cache_size =4M
max_binlog_cache_size =8M
max_binlog_size =1024M

相關引數講解

log-bin
決定了msyql 的binlog的名字,?成的binlog名字為mysql-bin.000001


binlog_format
規定binlog的格式, binlog有三種格式statement, row以及mixed,默認使?默認使?statement(5.7.7之前),建議使?row格式(5.7.7之后默認)


expire_logs_days
過期時間


binlog_do_db
此引數表示只記錄指定資料庫的?進制?志


binlog_ignore_db
此引數表示不記錄指定的資料庫的?進制?志


sync_binlog
在提交n次事務后,進?binlog的落盤, 0為不進?強?的重繪操作,?是由?件系統控制重繪?志?件
如果是在線交易和帳有關的資料建議設定成1, 如果是其它資料可以保持為0即可,


max_binlog_size
binlog?件的最?值,默認和最?是1GB,并不能嚴格限定?進制?件的??


max_binlog_cache_size 表示的是binlog 能夠使?的最?cache 記憶體??
當我們執?多陳述句事務的時候 所有session的使?的記憶體超過max_binlog_cache_size的值時
就會報錯: “Multi-statement transaction required more than 'max_binlog_cache_size' bytes ofstorage”

mysqlbinlog格式

statment格式
特點:記錄每?條資料的SQL,將執?的每?條SQL記錄在binlog中,減少?志量,節省IO,提?性能,
缺點:某些SQL中的函式?法使?,?如SYSDATE(),在同步程序中會出現?法同步的問題,
mixed格式
特點:?般的陳述句使?SQL陳述句來記錄,遇到特殊的陳述句使?row格式來記錄,保證資料的?致性和復制的準確性,
row格式
特點: binlog中僅僅記錄哪?條記錄被修改,不記錄dml的sql陳述句,會詳細記錄每?行的更改細節,不會出現?法復制的問題,
缺點:因為要記錄每?條修改記錄的?志,所以?量占?磁盤IO和?量使?硬碟空間,

注:將二進制日志格式設定為ROW時,有些更改仍然使用基于陳述句的格式,包括所有DDL陳述句,例如CREATE TABLE, ALTER TABLE,或 DROP TABLE,

開啟binlog

由于log_bin是個只讀系統變數,不能動態的修改,只能再my.cnf里[mysqld]模塊添加log-bin 配置,表示啟用binlog,如果沒有給定值,寫成 log-bin=,則默認名稱為主機名,(注:名稱若帶有小數點,則只取第一個小數點前的部分作為名稱)

[mysqld]
log-bin=mysql-bin

此方法需要重啟資料庫方能生效,如果想臨時關掉binlog而又不想重啟資料庫,可以使用sql_log_bin,sql_log_bin 是一個動態變數,修改該變數時,可以只對當前會話生效(Session),也可以是全域的(Global),當全域修改這個變數時,只會對新的會話生效(這意味當對當前會話也不會生效),因此一般全域修改了這個變數后,都要把原來的所有連接 kill 掉,全域只在MariaDB 5.5之前和MySQL 5.6.22之前生效,后面的版本都已經不支持全域,因為太危險了,
用處:
當還原資料庫的時候,如果不關閉二進制日志,那么你還原的程序仍然會記錄在二進制日志里面,不僅浪費資源,而且增加了磁盤的容量,還沒有必要(特別是利用二進制還原資料庫的時候)所以一般還原的時候會選擇關閉二進制日志,可以通過修改組態檔,重啟關閉二進制日志,
也可以動態命令關閉sql_log_bin,然后匯入資料庫,

set sql_log_bin=0;# 設為0后,在當前會話上執行的陳述句都不記錄binlog
set sql_log_bin=1; # 取消限制

常用的binlog命令

# 是否啟用binlog日志
show variables like 'log_bin';

# 查看詳細的日志配置資訊
show global variables like '%log%';

# 查看binlog的目錄
show global variables like "%log_bin%";

# 查看當前服務器使用的biglog檔案及大小
show binary logs;

# 查看最新一個binlog日志檔案名稱和Position
show master status;

# 清除所有的binlog?件,并且重置為?個
reset master

清理binlog日志

自動清理:
通過binlog引數(expire_logs_days )來實作mysql?動洗掉binlog

show binary logs;
show variables like 'expire_logs_days';
set global expire_logs_days=3; # 過期洗掉,單位是天

手動清理:

1、使?reset master 重置binlog?件(#reset master后,會造成slave?法找到master的嚴重后果)

2、直接rm本地洗掉binlog

# 查看正在使用的binlog
show master status;

直接使?rm 命令洗掉不是當前使?的binlog(切記不要洗掉正在使?的binlog)

 

mysqlbinlog命令

root@localhost localhost 15:23:43 (none)>show global variables like "%log_bin%";
+---------------------------------+-----------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------+
| log_bin | ON |
| log_bin_basename | /data/mysql/mysql-bin |
| log_bin_index | /data/mysql/mysql-bin.index |
| log_bin_trust_function_creators | ON |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+-----------------------------+
5 rows in set (0.00 sec)

root@localhost localhost 15:29:21 test1>show global variables like "binlog_format";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| binlog_format | ROW |
+---------------+-------+
1 row in set (0.01 sec)

root@localhost localhost 15:25:06 abc>create database test1;
Query OK, 1 row affected (0.00 sec)

root@localhost localhost 15:25:28 abc>use test1;
Database changed
root@localhost localhost 15:25:34 test1>CREATE TABLE `abc` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `c1` int(11) DEFAULT NULL,
-> PRIMARY KEY (`id`),
-> KEY `shouji` (`c1`) USING BTREE
-> ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.01 sec)

root@localhost localhost 15:26:12 test1>insert into abc(c1) values (1);
Query OK, 1 row affected (0.13 sec)

root@localhost localhost 15:26:23 test1>insert into abc(c1) values (2),(3);
Query OK, 2 rows affected (0.02 sec)
Records: 2 Duplicates: 0 Warnings: 0

root@localhost localhost 15:26:43 test1>delete from abc where id=2;
Query OK, 1 row affected (0.00 sec)

root@localhost localhost 15:26:58 test1>select * from abc;
+----+------+
| id | c1 |
+----+------+
| 1 | 1 |
| 3 | 3 |
+----+------+
2 rows in set (0.00 sec)

root@localhost localhost 15:47:38 test1>show master status;
+------------------+----------+--------------+------------------+------------------------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+------------------------------------------+
| mysql-bin.000001 | 1361 | | | 0f943fa6-3117-11ea-a98d-005056b351ef:1-5 |
+------------------+----------+--------------+------------------+------------------------------------------+
1 row in set (0.00 sec)

root@localhost localhost 15:48:27 test1>show binlog events in 'mysql-bin.000001'\G;
*************************** 1. row ***************************
Log_name: mysql-bin.000001
Pos: 4
Event_type: Format_desc
Server_id: 1007231
End_log_pos: 123
Info: Server ver: 5.7.19-log, Binlog ver: 4
*************************** 2. row ***************************
Log_name: mysql-bin.000001
Pos: 123
Event_type: Previous_gtids
Server_id: 1007231
End_log_pos: 150
Info:
*************************** 3. row ***************************
Log_name: mysql-bin.000001
Pos: 150
Event_type: Gtid
Server_id: 1007231
End_log_pos: 211
Info: SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:1'
*************************** 4. row ***************************
Log_name: mysql-bin.000001
Pos: 211
Event_type: Query
Server_id: 1007231
End_log_pos: 304
Info: create database test1
*************************** 5. row ***************************
Log_name: mysql-bin.000001
Pos: 304
Event_type: Gtid
Server_id: 1007231
End_log_pos: 365
Info: SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:2'
*************************** 6. row ***************************
Log_name: mysql-bin.000001
Pos: 365
Event_type: Query
Server_id: 1007231
End_log_pos: 629
Info: use `test1`; CREATE TABLE `abc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c1` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `shouji` (`c1`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
*************************** 7. row ***************************
Log_name: mysql-bin.000001
Pos: 629
Event_type: Gtid
Server_id: 1007231
End_log_pos: 690
Info: SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:3'
*************************** 8. row ***************************
Log_name: mysql-bin.000001
Pos: 690
Event_type: Query
Server_id: 1007231
End_log_pos: 759
Info: BEGIN
*************************** 9. row ***************************
Log_name: mysql-bin.000001
Pos: 759
Event_type: Table_map
Server_id: 1007231
End_log_pos: 803
Info: table_id: 220 (test1.abc)
*************************** 10. row ***************************
Log_name: mysql-bin.000001
Pos: 803
Event_type: Write_rows
Server_id: 1007231
End_log_pos: 843
Info: table_id: 220 flags: STMT_END_F
*************************** 11. row ***************************
Log_name: mysql-bin.000001
Pos: 843
Event_type: Xid
Server_id: 1007231
End_log_pos: 870
Info: COMMIT /* xid=52 */
*************************** 12. row ***************************
Log_name: mysql-bin.000001
Pos: 870
Event_type: Gtid
Server_id: 1007231
End_log_pos: 931
Info: SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:4'
*************************** 13. row ***************************
Log_name: mysql-bin.000001
Pos: 931
Event_type: Query
Server_id: 1007231
End_log_pos: 1000
Info: BEGIN
*************************** 14. row ***************************
Log_name: mysql-bin.000001
Pos: 1000
Event_type: Table_map
Server_id: 1007231
End_log_pos: 1044
Info: table_id: 220 (test1.abc)
*************************** 15. row ***************************
Log_name: mysql-bin.000001
Pos: 1044
Event_type: Write_rows
Server_id: 1007231
End_log_pos: 1093
Info: table_id: 220 flags: STMT_END_F
*************************** 16. row ***************************
Log_name: mysql-bin.000001
Pos: 1093
Event_type: Xid
Server_id: 1007231
End_log_pos: 1120
Info: COMMIT /* xid=53 */
*************************** 17. row ***************************
Log_name: mysql-bin.000001
Pos: 1120
Event_type: Gtid
Server_id: 1007231
End_log_pos: 1181
Info: SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:5'
*************************** 18. row ***************************
Log_name: mysql-bin.000001
Pos: 1181
Event_type: Query
Server_id: 1007231
End_log_pos: 1250
Info: BEGIN
*************************** 19. row ***************************
Log_name: mysql-bin.000001
Pos: 1250
Event_type: Table_map
Server_id: 1007231
End_log_pos: 1294
Info: table_id: 220 (test1.abc)
*************************** 20. row ***************************
Log_name: mysql-bin.000001
Pos: 1294
Event_type: Delete_rows
Server_id: 1007231
End_log_pos: 1334
Info: table_id: 220 flags: STMT_END_F
*************************** 21. row ***************************
Log_name: mysql-bin.000001
Pos: 1334
Event_type: Xid
Server_id: 1007231
End_log_pos: 1361
Info: COMMIT /* xid=54 */
21 rows in set (0.00 sec)

 

下面是mysqlbinlog命令的引數,摘自官方檔案

選項名稱描述參考棄用
--base64-output
使用base-64編碼列印二進制日志條目    
--bind-address 使用指定的網路介面連接到MySQL Server    
--binlog-row-event-max-size 二進制日志最大事件大小    
--character-sets-dir 字符集的安裝目錄    
--connection-server-id 用于測驗和除錯,有關適用的默認值和其他詳細資訊,請參見文本 5.7.5  
--database
僅列出該資料庫的條目    
--debug 撰寫除錯日志    
--debug-check 程式退出時列印除錯資訊    
--debug-info 程式退出時列印除錯資訊,記憶體和CPU統計資訊    
--default-auth 身份驗證插件使用    
--defaults-extra-file 除了通常的選項檔案,還讀取命名的選項檔案    
--defaults-file 只讀命名的選項檔案    
--defaults-group-suffix 選項組后綴值    
--disable-log-bin 禁用二進制日志記錄    
--exclude-gtids 不要顯示提供的GTID集中的任何組    
--force-if-open 讀取二進制日志檔案,即使打開或未正確關閉    
--force-read 如果mysqlbinlog讀取了無法識別的二進制日志事件,則會輸出警告    
--get-server-public-key 從服務器請求RSA公鑰 5.7.23  
--help 顯示幫助資訊并退出    
--hexdump 顯示登錄注釋的十六進制轉儲    
--host MySQL服務器所在的主機    
--idempotent 僅在處理來自此會話的二進制日志更新時,導致服務器使用冪等模式 5.7.0  
--include-gtids 僅顯示提供的GTID集中的組    
--local-load 在指定目錄中為LOAD DATA準備本地臨時檔案    
--login-path 從.mylogin.cnf中讀取登錄路徑選項    
--no-defaults 不讀取選項檔案    
--offset 跳過日志中的前N個條目    
open_files_limit 指定要保留的打開檔案描述符的數量    
--password 連接服務器時使用的密碼    
--plugin-dir 安裝插件的目錄    
--port 用于連接的TCP / IP埠號    
--print-defaults 列印默認選項    
--protocol 使用的連接協議    
--raw 將事件以原始(二進制)格式寫入輸出檔案    
--read-from-remote-master 從MySQL主服務器讀取二進制日志,而不是讀取本地日志檔案    
--read-from-remote-server 從MySQL服務器而不是本地日志檔案中讀取二進制日志    
--result-file 直接輸出到命名檔案    
--rewrite-db 從基于行的格式撰寫的日志中播放時,為資料庫創建重寫規則,可多次使用 5.7.1  
--secure-auth 不要以舊(4.1之前)格式向服務器發送密碼 5.7.4 5.7.5
--server-id 僅提取由具有給定服務器ID的服務器創建的那些事件    
--server-id-bits 告訴mysqlbinlog當mysqld撰寫的server-id-bits設定為小于最大值時,如何解釋二進制日志中的服務器ID;僅受MySQL Cluster版本的mysqlbinlog支持    
--server-public-key-path 包含RSA公鑰的檔案的路徑名 5.7.23  
--set-charset 在輸出中添加SET NAMES charset_name陳述句    
--shared-memory-base-name 用于共享記憶體連接的共享記憶體的名稱    
--short-form 僅顯示日志中包含的陳述句    
--skip-gtids 不要列印任何GTID,從包含GTID的二進制日志寫入轉儲檔案時使用此功能    
--socket Unix套接字檔案或Windows命名管道使用    
--ssl 啟用連接加密 5.7.3  
--ssl-ca 包含受信任的SSL證書頒發機構串列的檔案 5.7.3  
--ssl-capath 包含受信任的SSL證書頒發機構證書檔案的目錄 5.7.3  
--ssl-cert 包含X.509證書的檔案 5.7.3  
--ssl-cipher 連接加密的允許密碼 5.7.3  
--ssl-crl 包含證書吊銷串列的檔案    
--ssl-crlpath 包含證書吊銷串列檔案的目錄    
--ssl-key 包含X.509密鑰的檔案 5.7.3  
--ssl-mode 與服務器連接的所需安全狀態 5.7.11  
--ssl-verify-server-cert 根據服務器證書的公用名身份驗證主機名 5.7.3  
--start-datetime 從第一個事件中讀取時間戳等于或晚于datetime引數的二進制日志    
--start-position 從位置等于或大于引數的第一個事件讀取二進制日志    
--stop-datetime 在時間戳等于或大于datetime引數的第一個事件時停止讀取二進制日志    
--stop-never 讀取最后一個二進制日志檔案后保持與服務器的連接    
--stop-never-slave-server-id 連接到服務器時要報告的從服務器ID    
--stop-position 在第一個事件中停止讀取二進制日志,且位置等于或大于引數    
--tls-version 允許的TLS協議進行加密連接 5.7.10  
--to-last-log 不要在從MySQL服務器請求的二進制日志的結尾處停止,而要繼續列印到最后一個二進制日志的結尾    
--user 連接服務器時要使用的MySQL用戶名    
--verbose 將行事件重建為SQL陳述句    
--verify-binlog-checksum 驗證二進制日志中的校驗和    

 

[root@localhost mysql]# mysqlbinlog mysql-bin.000001 >/data/tmp/mysqlbinlog.sql
[root@localhost mysql]# cat /data/tmp/mysqlbinlog.sql
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200107 15:45:15 server id 1007231  end_log_pos 123     Start: binlog v 4, server v 5.7.19-log created 200107 15:45:15 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
CzcUXg9/Xg8AdwAAAHsAAAABAAQANS43LjE5LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAALNxReEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AEJXKj0=
'/*!*/;
# at 123
#200107 15:45:15 server id 1007231  end_log_pos 150     Previous-GTIDs
# [empty]
# at 150
#200107 15:45:53 server id 1007231  end_log_pos 211     GTID    last_committed=0    sequence_number=1    rbr_only=no
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:1'/*!*/;
# at 211
#200107 15:45:53 server id 1007231  end_log_pos 304     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383153/*!*/;
SET @@session.pseudo_thread_id=3/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1344274432/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=224,@@session.collation_connection=224,@@session.collation_server=224/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create database test1
/*!*/;
# at 304
#200107 15:46:38 server id 1007231  end_log_pos 365     GTID    last_committed=1    sequence_number=2    rbr_only=no
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:2'/*!*/;
# at 365
#200107 15:46:38 server id 1007231  end_log_pos 629     Query    thread_id=3    exec_time=0    error_code=0
use `test1`/*!*/;
SET TIMESTAMP=1578383198/*!*/;
CREATE TABLE `abc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c1` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `shouji` (`c1`) USING BTREE
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
/*!*/;
# at 629
#200107 15:47:15 server id 1007231  end_log_pos 690     GTID    last_committed=2    sequence_number=3    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:3'/*!*/;
# at 690
#200107 15:47:15 server id 1007231  end_log_pos 759     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383235/*!*/;
BEGIN
/*!*/;
# at 759
#200107 15:47:15 server id 1007231  end_log_pos 803     Table_map: `test1`.`abc` mapped to number 220
# at 803
#200107 15:47:15 server id 1007231  end_log_pos 843     Write_rows: table id 220 flags: STMT_END_F

BINLOG '
gzcUXhN/Xg8ALAAAACMDAAAAANwAAAAAAAEABXRlc3QxAANhYmMAAgMDAAI=
gzcUXh5/Xg8AKAAAAEsDAAAAANwAAAAAAAEAAgAC//wBAAAAAQAAAA==
'/*!*/;
# at 843
#200107 15:47:15 server id 1007231  end_log_pos 870     Xid = 52
COMMIT/*!*/;
# at 870
#200107 15:47:23 server id 1007231  end_log_pos 931     GTID    last_committed=3    sequence_number=4    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:4'/*!*/;
# at 931
#200107 15:47:23 server id 1007231  end_log_pos 1000     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383243/*!*/;
BEGIN
/*!*/;
# at 1000
#200107 15:47:23 server id 1007231  end_log_pos 1044     Table_map: `test1`.`abc` mapped to number 220
# at 1044
#200107 15:47:23 server id 1007231  end_log_pos 1093     Write_rows: table id 220 flags: STMT_END_F

BINLOG '
izcUXhN/Xg8ALAAAABQEAAAAANwAAAAAAAEABXRlc3QxAANhYmMAAgMDAAI=
izcUXh5/Xg8AMQAAAEUEAAAAANwAAAAAAAEAAgAC//wCAAAAAgAAAPwDAAAAAwAAAA==
'/*!*/;
# at 1093
#200107 15:47:23 server id 1007231  end_log_pos 1120     Xid = 53
COMMIT/*!*/;
# at 1120
#200107 15:47:30 server id 1007231  end_log_pos 1181     GTID    last_committed=4    sequence_number=5    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:5'/*!*/;
# at 1181
#200107 15:47:30 server id 1007231  end_log_pos 1250     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383250/*!*/;
BEGIN
/*!*/;
# at 1250
#200107 15:47:30 server id 1007231  end_log_pos 1294     Table_map: `test1`.`abc` mapped to number 220
# at 1294
#200107 15:47:30 server id 1007231  end_log_pos 1334     Delete_rows: table id 220 flags: STMT_END_F

BINLOG '
kjcUXhN/Xg8ALAAAAA4FAAAAANwAAAAAAAEABXRlc3QxAANhYmMAAgMDAAI=
kjcUXiB/Xg8AKAAAADYFAAAAANwAAAAAAAEAAgAC//wCAAAAAgAAAA==
'/*!*/;
# at 1334
#200107 15:47:30 server id 1007231  end_log_pos 1361     Xid = 54
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

發現有很多base64編碼的BINLOG陳述句,比如

BINLOG '
CzcUXg9/Xg8AdwAAAHsAAAABAAQANS43LjE5LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAALNxReEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AEJXKj0=
'/*!*/;
這樣的,這就需要加上--base64-output=DECODE-ROWS --verbose來解成一個sql陳述句,
[root@localhost mysql]# mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000001 >/data/tmp/mysqlbinlog2.sql
[root@localhost mysql]# cat /data/tmp/mysqlbinlog2.sql
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200107 15:45:15 server id 1007231  end_log_pos 123     Start: binlog v 4, server v 5.7.19-log created 200107 15:45:15 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
# at 123
#200107 15:45:15 server id 1007231  end_log_pos 150     Previous-GTIDs
# [empty]
# at 150
#200107 15:45:53 server id 1007231  end_log_pos 211     GTID    last_committed=0    sequence_number=1    rbr_only=no
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:1'/*!*/;
# at 211
#200107 15:45:53 server id 1007231  end_log_pos 304     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383153/*!*/;
SET @@session.pseudo_thread_id=3/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1344274432/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=224,@@session.collation_connection=224,@@session.collation_server=224/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create database test1
/*!*/;
# at 304
#200107 15:46:38 server id 1007231  end_log_pos 365     GTID    last_committed=1    sequence_number=2    rbr_only=no
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:2'/*!*/;
# at 365
#200107 15:46:38 server id 1007231  end_log_pos 629     Query    thread_id=3    exec_time=0    error_code=0
use `test1`/*!*/;
SET TIMESTAMP=1578383198/*!*/;
CREATE TABLE `abc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c1` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `shouji` (`c1`) USING BTREE
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
/*!*/;
# at 629
#200107 15:47:15 server id 1007231  end_log_pos 690     GTID    last_committed=2    sequence_number=3    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:3'/*!*/;
# at 690
#200107 15:47:15 server id 1007231  end_log_pos 759     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383235/*!*/;
BEGIN
/*!*/;
# at 759
#200107 15:47:15 server id 1007231  end_log_pos 803     Table_map: `test1`.`abc` mapped to number 220
# at 803
#200107 15:47:15 server id 1007231  end_log_pos 843     Write_rows: table id 220 flags: STMT_END_F
### INSERT INTO `test1`.`abc`
### SET
###   @1=1
###   @2=1
# at 843
#200107 15:47:15 server id 1007231  end_log_pos 870     Xid = 52
COMMIT/*!*/;
# at 870
#200107 15:47:23 server id 1007231  end_log_pos 931     GTID    last_committed=3    sequence_number=4    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:4'/*!*/;
# at 931
#200107 15:47:23 server id 1007231  end_log_pos 1000     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383243/*!*/;
BEGIN
/*!*/;
# at 1000
#200107 15:47:23 server id 1007231  end_log_pos 1044     Table_map: `test1`.`abc` mapped to number 220
# at 1044
#200107 15:47:23 server id 1007231  end_log_pos 1093     Write_rows: table id 220 flags: STMT_END_F
### INSERT INTO `test1`.`abc`
### SET
###   @1=2
###   @2=2
### INSERT INTO `test1`.`abc`
### SET
###   @1=3
###   @2=3
# at 1093
#200107 15:47:23 server id 1007231  end_log_pos 1120     Xid = 53
COMMIT/*!*/;
# at 1120
#200107 15:47:30 server id 1007231  end_log_pos 1181     GTID    last_committed=4    sequence_number=5    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:5'/*!*/;
# at 1181
#200107 15:47:30 server id 1007231  end_log_pos 1250     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383250/*!*/;
BEGIN
/*!*/;
# at 1250
#200107 15:47:30 server id 1007231  end_log_pos 1294     Table_map: `test1`.`abc` mapped to number 220
# at 1294
#200107 15:47:30 server id 1007231  end_log_pos 1334     Delete_rows: table id 220 flags: STMT_END_F
### DELETE FROM `test1`.`abc`
### WHERE
###   @1=2
###   @2=2
# at 1334
#200107 15:47:30 server id 1007231  end_log_pos 1361     Xid = 54
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

這樣就能看出來具體的sql了,

還可以根據時間來篩選陳述句:

[root@localhost mysql]# mysqlbinlog --base64-output=DECODE-ROWS -v --start-datetime="2020-01-07 15:47:14" --stop-datetime="2020-01-07 15:47:24" mysql-bin.000001 >/data/tmp/mysqlbinlog3.sql
[root@localhost mysql]# cat /data/tmp/mysqlbinlog3.sql
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200107 15:45:15 server id 1007231  end_log_pos 123     Start: binlog v 4, server v 5.7.19-log created 200107 15:45:15 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
# at 629
#200107 15:47:15 server id 1007231  end_log_pos 690     GTID    last_committed=2    sequence_number=3    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:3'/*!*/;
# at 690
#200107 15:47:15 server id 1007231  end_log_pos 759     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383235/*!*/;
SET @@session.pseudo_thread_id=3/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1344274432/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=224,@@session.collation_connection=224,@@session.collation_server=224/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
BEGIN
/*!*/;
# at 759
#200107 15:47:15 server id 1007231  end_log_pos 803     Table_map: `test1`.`abc` mapped to number 220
# at 803
#200107 15:47:15 server id 1007231  end_log_pos 843     Write_rows: table id 220 flags: STMT_END_F
### INSERT INTO `test1`.`abc`
### SET
###   @1=1
###   @2=1
# at 843
#200107 15:47:15 server id 1007231  end_log_pos 870     Xid = 52
COMMIT/*!*/;
# at 870
#200107 15:47:23 server id 1007231  end_log_pos 931     GTID    last_committed=3    sequence_number=4    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:4'/*!*/;
# at 931
#200107 15:47:23 server id 1007231  end_log_pos 1000     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383243/*!*/;
BEGIN
/*!*/;
# at 1000
#200107 15:47:23 server id 1007231  end_log_pos 1044     Table_map: `test1`.`abc` mapped to number 220
# at 1044
#200107 15:47:23 server id 1007231  end_log_pos 1093     Write_rows: table id 220 flags: STMT_END_F
### INSERT INTO `test1`.`abc`
### SET
###   @1=2
###   @2=2
### INSERT INTO `test1`.`abc`
### SET
###   @1=3
###   @2=3
# at 1093
#200107 15:47:23 server id 1007231  end_log_pos 1120     Xid = 53
COMMIT/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

 

根據位置篩選,比我我們上面用show binlog events in 'mysql-bin.000001'\G;看到的有條洗掉型別的陳述句

*************************** 20. row ***************************
   Log_name: mysql-bin.000001
        Pos: 1294
 Event_type: Delete_rows
  Server_id: 1007231
End_log_pos: 1334
       Info: table_id: 220 flags: STMT_END_F

 

[root@localhost mysql]# mysqlbinlog --base64-output=DECODE-ROWS -v  --stop-position="1334" mysql-bin.000001 >/data/tmp/mysqlbinlog4.sql

You have new mail in /var/spool/mail/root
[root@localhost mysql]# cat /data/tmp/mysqlbinlog4.sql
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200107 15:45:15 server id 1007231  end_log_pos 123     Start: binlog v 4, server v 5.7.19-log created 200107 15:45:15 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
# at 123
#200107 15:45:15 server id 1007231  end_log_pos 150     Previous-GTIDs
# [empty]
# at 150
#200107 15:45:53 server id 1007231  end_log_pos 211     GTID    last_committed=0    sequence_number=1    rbr_only=no
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:1'/*!*/;
# at 211
#200107 15:45:53 server id 1007231  end_log_pos 304     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383153/*!*/;
SET @@session.pseudo_thread_id=3/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1344274432/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8mb4 *//*!*/;
SET @@session.character_set_client=224,@@session.collation_connection=224,@@session.collation_server=224/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create database test1
/*!*/;
# at 304
#200107 15:46:38 server id 1007231  end_log_pos 365     GTID    last_committed=1    sequence_number=2    rbr_only=no
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:2'/*!*/;
# at 365
#200107 15:46:38 server id 1007231  end_log_pos 629     Query    thread_id=3    exec_time=0    error_code=0
use `test1`/*!*/;
SET TIMESTAMP=1578383198/*!*/;
CREATE TABLE `abc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`c1` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `shouji` (`c1`) USING BTREE
 ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
/*!*/;
# at 629
#200107 15:47:15 server id 1007231  end_log_pos 690     GTID    last_committed=2    sequence_number=3    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:3'/*!*/;
# at 690
#200107 15:47:15 server id 1007231  end_log_pos 759     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383235/*!*/;
BEGIN
/*!*/;
# at 759
#200107 15:47:15 server id 1007231  end_log_pos 803     Table_map: `test1`.`abc` mapped to number 220
# at 803
#200107 15:47:15 server id 1007231  end_log_pos 843     Write_rows: table id 220 flags: STMT_END_F
### INSERT INTO `test1`.`abc`
### SET
###   @1=1
###   @2=1
# at 843
#200107 15:47:15 server id 1007231  end_log_pos 870     Xid = 52
COMMIT/*!*/;
# at 870
#200107 15:47:23 server id 1007231  end_log_pos 931     GTID    last_committed=3    sequence_number=4    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:4'/*!*/;
# at 931
#200107 15:47:23 server id 1007231  end_log_pos 1000     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383243/*!*/;
BEGIN
/*!*/;
# at 1000
#200107 15:47:23 server id 1007231  end_log_pos 1044     Table_map: `test1`.`abc` mapped to number 220
# at 1044
#200107 15:47:23 server id 1007231  end_log_pos 1093     Write_rows: table id 220 flags: STMT_END_F
### INSERT INTO `test1`.`abc`
### SET
###   @1=2
###   @2=2
### INSERT INTO `test1`.`abc`
### SET
###   @1=3
###   @2=3
# at 1093
#200107 15:47:23 server id 1007231  end_log_pos 1120     Xid = 53
COMMIT/*!*/;
# at 1120
#200107 15:47:30 server id 1007231  end_log_pos 1181     GTID    last_committed=4    sequence_number=5    rbr_only=yes
/*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/;
SET @@SESSION.GTID_NEXT= '0f943fa6-3117-11ea-a98d-005056b351ef:5'/*!*/;
# at 1181
#200107 15:47:30 server id 1007231  end_log_pos 1250     Query    thread_id=3    exec_time=0    error_code=0
SET TIMESTAMP=1578383250/*!*/;
BEGIN
/*!*/;
# at 1250
#200107 15:47:30 server id 1007231  end_log_pos 1294     Table_map: `test1`.`abc` mapped to number 220
# at 1294
#200107 15:47:30 server id 1007231  end_log_pos 1334     Delete_rows: table id 220 flags: STMT_END_F
### DELETE FROM `test1`.`abc`
### WHERE
###   @1=2
###   @2=2
ROLLBACK /* added by mysqlbinlog */ /*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

其他選項可以根據需求添加使用,

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/87434.html

標籤:MySQL

上一篇:CentOS7.6安裝MySQL8.0(圖文詳細篇)

下一篇:SQL中的事務ACID

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more