最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql中二進(jìn)制日志操作方法說明

 更新時間:2023年03月17日 10:29:15   作者:跟著飛哥學(xué)編程  
這篇文章主要介紹了Mysql中二進(jìn)制日志操作方法,二進(jìn)制日志中以“事件”的形式記錄了數(shù)據(jù)庫中數(shù)據(jù)的變化情況,對于MySQL數(shù)據(jù)庫的災(zāi)難恢復(fù)起著重要的作用

二進(jìn)制日志

二進(jìn)制日志中以“事件”的形式記錄了數(shù)據(jù)庫中數(shù)據(jù)的變化情況,對于MySQL數(shù)據(jù)庫的災(zāi)難恢復(fù)起著重要的作用。

開啟二進(jìn)制日志

可以在 my.cnf 文件或者 my.ini 文件中進(jìn)行如下配置來開啟二進(jìn)制日志。

[mysqld]
log_bin = /data/mysql/log/bin_log/mysql-bin
binlog_format= mixed
binlog_cache_size=32m
max_binlog_cache_size=64m
max_binlog_size=512m
expire_logs_days = 10

各項(xiàng)配置說明如下:

log_bin:表示開啟二進(jìn)制日志。如果沒有為此項(xiàng)賦值,則 MySQL 會在 DATADIR 選項(xiàng)指定的目錄(MySQL的數(shù)據(jù)存放目錄)下創(chuàng)建二進(jìn)制文件。

binlog_format:二進(jìn)制文件的格式。取值可以是STATEMENT、ROWMIXED

STATEMENT

記錄SQL語句。日志文件小,節(jié)約IO,但是對一些系統(tǒng)函數(shù)不能準(zhǔn)確復(fù)制或不能復(fù)制,如now()、uuid()等

ROW

記錄表的行更改情況,可以為數(shù)據(jù)庫的恢復(fù)、復(fù)制帶來更好的可靠性,但是二進(jìn)制文件的大小相較于STATEMENT會有所增加

MIXED

STATEMENT和ROW模式的混合。默認(rèn)采用STATEMENT格式進(jìn)行二進(jìn)制日志文件的記錄,但是在一些情況下會使用ROW格式。

業(yè)內(nèi)目前推薦使用的是 ROW 模式,準(zhǔn)確性高,雖然說文件大,但是現(xiàn)在有SSD和萬兆光纖網(wǎng)絡(luò),這些磁盤IO和網(wǎng)絡(luò)IO都是可以接受的。

  • binlog_cache_size:二進(jìn)制日志的緩存大小。
  • max_binlog_cache_size:二進(jìn)制日志的最大緩存大小。
  • max_binlog_size:單個二進(jìn)制日志文件的最大大小,當(dāng)文件大小超過此選項(xiàng)配置的值時,會發(fā)生日志滾動,重新生成一個新的二進(jìn)制文件。
  • expire_logs_days:二進(jìn)制日志的過期時間。如果配置了此選項(xiàng),則 MySQL 會自動清理過期的二進(jìn)制日志。此選項(xiàng)的默認(rèn)值為 0 ,表示 MySQL 不會清理過期日志。

配置完成后,重啟 MySQL 才能使配置生效。此時,會在 /data/mysql/log/bin_log 目錄下生成 MySQL 的二進(jìn)制文件。

重啟之后,可以看到我們配置的二進(jìn)制日志的相關(guān)信息。

show variables like '%log_bin%';

±--------------------------------±-----------------------------------------+

| Variable_name | Value |

±--------------------------------±-----------------------------------------+

| log_bin | ON |

| log_bin_basename | D:\mysql-8.0.28-winx64\data\binlog |

| log_bin_index | D:\mysql-8.0.28-winx64\data\binlog.index |

| log_bin_trust_function_creators | ON |

| log_bin_use_v1_row_events | OFF |

| sql_log_bin | ON |

±--------------------------------±-----------------------------------------+

6 rows in set

查看二進(jìn)制日志

二進(jìn)制日志文件不能以純文本文件的形式來查看,可以使用 MySQL 的 mysqlbinlog 命令進(jìn)行查看。接下來簡單介紹一下查看 MySQL 二進(jìn)制日志的步驟。

注:我提前創(chuàng)建的測試表

CREATE TABLE `test1` (
  `id` int NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

(1)向 test1 表中插入兩條測試數(shù)據(jù)。

INSERT INTO test1 (id,name) VALUES(5,"趙山河");
INSERT INTO test1 (id,name) VALUES(6,"跟著學(xué)編程");

(2)使用 mysqlbinlog 命令查看二進(jìn)制日志

mysqlbinlog --no-defaults /data/mysql/log/bin_log/mysql-bin.000001

二進(jìn)制日志中記錄了向 test1 數(shù)據(jù)表中插入數(shù)據(jù)的 SQL 語句。

注意:查看 /data/mysql/log/bin_log 目錄下生成的 MySQL 二進(jìn)制文件時,發(fā)現(xiàn)有一個 mysql-bin.index 文件,這個文件不記錄二進(jìn)制內(nèi)容,其中記錄的是當(dāng)前目錄下存在的所有二進(jìn)制文件的完整路徑??梢砸约兾谋疚募男问絹聿榭?mysql-bin.index 文件。

cat /data/mysql/log/bin_log/mysql-bin.index

刪除二進(jìn)制日志

MySQL中除了通過配置二進(jìn)制日志的過期時間,由 MySQL 自動刪除過期的二進(jìn)制日志外,還提供了3種安全的手動刪除二進(jìn)制日志的方法。

在正式介紹手動刪除 MySQL 二進(jìn)制日志的方法之前,先對 MySQL 進(jìn)行多次重啟操作,使 MySQL 能夠生成多個二進(jìn)制日志文件,以便進(jìn)行刪除測試。

多次重啟MySQL后,再次查看 /data/mysql/log/bin_log 目錄下的文件。

1.根據(jù)編號刪除二進(jìn)制日志

根據(jù)編號刪除二進(jìn)制日志,語法格式如下:

PURGE { BINARY | MASTER } LOGS TO 'log_name'

在MySQL命令行執(zhí)行此語法格式的SQL語句,會刪除比指定文件名編號小的所有二進(jìn)制日志文件。例如,刪除比mysql-bin.000003文件編號小的所有二進(jìn)制日志文件。

mysql> PURGE MASTER LOGS TO 'mysql-bin.000003';
Query OK, 0 rows affected (0.01 sec)

SQL語句執(zhí)行成功,查看/data/mysql/log/bin_log目錄下的文件。

[root@binghe150 ~]# ll /data/mysql/log/bin_log
total 36
-rw-r----- 1 mysql mysql 178 Jan 17 16:20 mysql-bin.000003
-rw-r----- 1 mysql mysql 178 Jan 17 16:20 mysql-bin.000004
-rw-r----- 1 mysql mysql 178 Jan 17 16:20 mysql-bin.000005
-rw-r----- 1 mysql mysql 178 Jan 17 16:20 mysql-bin.000006
-rw-r----- 1 mysql mysql 178 Jan 17 16:21 mysql-bin.000007
-rw-r----- 1 mysql mysql 178 Jan 17 16:21 mysql-bin.000008
-rw-r----- 1 mysql mysql 178 Jan 17 16:21 mysql-bin.000009
-rw-r----- 1 mysql mysql 155 Jan 17 16:21 mysql-bin.000010
-rw-r----- 1 mysql mysql 328 Jan 17 16:29 mysql-bin.index

發(fā)現(xiàn)mysql-bin.000001文件和mysql-bin.000002文件被刪除了。說明根據(jù)編號刪除二進(jìn)制日志時,只會刪除比當(dāng)前指定的文件編號小的二進(jìn)制日志文件,不會刪除當(dāng)前指定的二進(jìn)制日志文件。

2.根據(jù)時間刪除二進(jìn)制日志

根據(jù)時間刪除二進(jìn)制日志,語法格式如下:

PURGE { BINARY | MASTER } LOGS BEFORE datetime_expr

執(zhí)行此語法格式的SQL語句時,MySQL會刪除指定時間以前的二進(jìn)制日志。

例如,刪除“2020-01-17 16:21:00”之前的二進(jìn)制日志文件。

mysql> PURGE MASTER LOGS BEFORE '2020-01-17 16:21:00';
Query OK, 0 rows affected (0.00 sec)

SQL語句執(zhí)行成功,查看/data/mysql/log/bin_log目錄下的文件。

[root@binghe150 ~]# ll /data/mysql/log/bin_log
total 20
-rw-r----- 1 mysql mysql 178 Jan 17 16:21 mysql-bin.000007
-rw-r----- 1 mysql mysql 178 Jan 17 16:21 mysql-bin.000008
-rw-r----- 1 mysql mysql 178 Jan 17 16:21 mysql-bin.000009
-rw-r----- 1 mysql mysql 155 Jan 17 16:21 mysql-bin.000010
-rw-r----- 1 mysql mysql 164 Jan 17 16:37 mysql-bin.index

“2020-01-17 16:21:00”之前的二進(jìn)制日志文件已經(jīng)被刪除了,但不會刪除“2020-01-17 16:21:00”時間點(diǎn)的二進(jìn)制日志文件。

3.刪除所有二進(jìn)制日志

在MySQL命令行執(zhí)行如下命令即可刪除所有二進(jìn)制日志文件。

mysql> RESET MASTER;
Query OK, 0 rows affected (0.01 sec)

SQL語句執(zhí)行成功,再次查看/data/mysql/log/bin_log目錄下的文件。

[root@binghe150 ~]# ll /data/mysql/log/bin_log
total 8
-rw-r----- 1 mysql mysql 155 Jan 17 16:41 mysql-bin.000001
-rw-r----- 1 mysql mysql  41 Jan 17 16:41 mysql-bin.index

此時/data/mysql/log/bin_log目錄下的所有二進(jìn)制文件已經(jīng)被刪除,并且二進(jìn)制文件重新從000001開始編號。

臨時開啟與關(guān)閉二進(jìn)制

在 Mysql 命令行執(zhí)行如下命令暫時關(guān)閉二進(jìn)制日志:

mysql> SET sql_log_bin = 0;
Query OK, 0 rows affected (0.00 sec)

暫時開啟二進(jìn)制日志,則需要在MySQL命令行執(zhí)行如下命令:

mysql> SET sql_log_bin = 1;

Query OK, 0 rows affected (0.00 sec)

到此這篇關(guān)于Mysql中二進(jìn)制日志操作方法說明的文章就介紹到這了,更多相關(guān)Mysql二進(jìn)制日志內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql 數(shù)據(jù)庫死鎖原因及解決辦法

    mysql 數(shù)據(jù)庫死鎖原因及解決辦法

    這篇文章主要介紹了mysql 數(shù)據(jù)庫死鎖原因及解決辦法,需要的朋友可以參考下
    2016-01-01
  • mysql 8.0 找不到my.ini配置文件以及報sql_mode=only_full_group_by解決方案

    mysql 8.0 找不到my.ini配置文件以及報sql_mode=only_full_group

    MySQL5.7.5及以上版本啟用ONLY_FULL_GROUP_BYSQL模式可能導(dǎo)致的問題,本文就來介紹一下找不到my.ini配置文件的解決方法,感興趣的可以了解一下
    2024-08-08
  • MySQL中使用innobackupex、xtrabackup進(jìn)行大數(shù)據(jù)的備份和還原教程

    MySQL中使用innobackupex、xtrabackup進(jìn)行大數(shù)據(jù)的備份和還原教程

    這篇文章主要介紹了MySQL中使用innobackupex、xtrabackup進(jìn)行大數(shù)據(jù)的備份和還原教程,xtrabackup用來對超過10G數(shù)據(jù)的Mysql進(jìn)行備份和還原任務(wù),需要的朋友可以參考下
    2014-09-09
  • MySQL數(shù)據(jù)庫定時備份的幾種實(shí)現(xiàn)方法

    MySQL數(shù)據(jù)庫定時備份的幾種實(shí)現(xiàn)方法

    本文主要介紹了MySQL數(shù)據(jù)庫定時備份的幾種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • mysql模糊查詢like和regexp小結(jié)

    mysql模糊查詢like和regexp小結(jié)

    在mysql中實(shí)現(xiàn)模糊查詢有兩種方法一種是LIKE/NOT LIKE,另一種是REGEXP/NOT REGEXP方法,下面我來給大家介紹它們的用法,希望此教程對各位同學(xué)會有所幫助。
    2014-09-09
  • MySQL?常用引擎總結(jié)分享

    MySQL?常用引擎總結(jié)分享

    這篇文章主要介紹了MySQL?常用引擎總結(jié)分享,MySQL有很多存儲引擎,所謂的存儲引擎是指用于存儲、處理和保護(hù)數(shù)據(jù)的核心服務(wù),更多常用引擎分享,需要的小伙伴可以參考下面文章內(nèi)容
    2022-06-06
  • Mysql單文件存儲刪除數(shù)據(jù)文件容量不會減少的bug與解決方法

    Mysql單文件存儲刪除數(shù)據(jù)文件容量不會減少的bug與解決方法

    這篇文章主要給大家介紹了Mysql單文件存儲刪除數(shù)據(jù)文件時容量不會減少的bug與解決方法,文中給出了詳細(xì)的解決方法,相信對遇到這個問題的朋友們能帶來一定的幫助,下面來一起看看吧。
    2016-12-12
  • mysql IS NULL使用索引案例講解

    mysql IS NULL使用索引案例講解

    這篇文章主要介紹了mysql IS NULL使用索引案例講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • mysql的定時任務(wù)實(shí)例教程

    mysql的定時任務(wù)實(shí)例教程

    定時任務(wù)是我們在日常開發(fā)維護(hù)中經(jīng)常會遇到的,下面這篇文章主要給大家介紹了關(guān)于mysql定時任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • mysql 8.0.17 安裝配置方法圖文教程

    mysql 8.0.17 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.17 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08

最新評論

张北县| 双桥区| 锡林浩特市| 福鼎市| 清水县| 依安县| 通江县| 宜川县| 凉城县| 扬中市| 辽阳县| 蒙阴县| 江陵县| 岳池县| 沙坪坝区| 武乡县| 伊宁县| 本溪| 那曲县| 麻城市| 正镶白旗| 平顶山市| 锡林郭勒盟| 普兰店市| 洛扎县| 盐城市| 灵丘县| 南宁市| 武乡县| 连平县| 阿瓦提县| 台东县| 新蔡县| 江华| 文成县| 江孜县| 屯昌县| 石棉县| 阳泉市| 杭锦后旗| 犍为县|