如何破解正版電腦系統下載軟件
最近買了一臺蘋果筆記本電腦,要安裝軟件的時候突然提示收費,我果斷選擇了去“破解”軟件,最后成功安裝,雖然很多功能不能使用但是對于一般人來說基本已經夠用了。你有沒有想過,為什么國人喜歡破解軟件而不是選擇...
2025.07.03COPYRIGHT ? 2023
粵ICP備2021108052號
郵箱:611661226@qq.com
留言給我在MySQL服務器運行過程中,除了會產生各種數據文件外,還會記錄各種日志文件,這些日志文件不僅僅記錄MySQL的數據庫的運行情況、用戶操作、錯誤信息等,還和MySQL服務器的數據息息相關。
MySQL主要有以下幾類日志文件:重做日志(redo log)、回滾日志(undo log)、二進制日志(binlog)、錯誤日志(errorlog)、慢查詢日志(slow query log)、一般查詢日志(general log)、中繼日志(relay log)
redo log也叫做重做日志,是保證事務持久性的重要機制。用于崩潰恢復,防止在發生故障的時間點,尚有臟頁未寫入磁盤,在重啟mysql服務的時候,根據redo log進行重做,從而達到事務的持久性這一特性。
redo log是在事務begin時就開始記錄(并不是事務commit時才記錄,因為整個事務做的操作可能很多,如果在commit的時候才寫redo log,此時一旦發生異常,redo log還沒寫,這就太晚了,無法確保事務的持久性)。
redo log 是物理日志,記錄的是“在某個數據頁上做了什么修改”。另外,redo log是循環寫入固定的文件,而且是順序寫入磁盤的。
在一個事務中,可能會發生多次的數據修改,對應的就是多個數據頁多個偏移量位置的字段變更,也就是說會產生多條redo log,而且因為在同一個事物中,這些redo log,也是不可再分的,也就是說,一個組的redo log在持久化的時候,不能部分成功,部分失敗,否則的話,就會破壞事務的原子性。
另外為了提升性能redo log是按照塊組織在一起,然后寫入到磁盤中的,類似于數據的頁,而且引入了redo log buffer,默認的大小為16MB。buffer中分了很多的block,每個block的大小為512kb,每一個事務產生的所有redo log稱為一個group。
數據庫事務開始之前,會將要修改的記錄放到Undo日志里,當事務回滾時或者數據庫崩潰時,可以利用UndoLog撤銷未提交事務對數據庫產生的影響。
Undo log的作用:
binary 就是bin log,即二進制日志文件,這個文件記錄了MySQL所有的DML操作。通過binlog日志我們可以做數據恢復,增量備份,主主復制和主從復制等等。
binlog日志
mysql> show variables like '%log_bin%';+---------------------------------+----------------------------------+| Variable_name| Value|+---------------------------------+----------------------------------+| log_bin | ON|| log_bin_basename| /www/server/data/mysql-bin|| log_bin_index| /www/server/data/mysql-bin.index || log_bin_trust_function_creators | OFF|| log_bin_use_v1_row_events| OFF|| sql_log_bin | ON|+---------------------------------+----------------------------------+6 rows in set (0.00 sec)
啟用binlog,在 my.cnf 配置文件中加入 log-bin 配置,表示啟用binlog,如果沒有給定值,寫成 log-bin=,則默認名稱為主機名。(注:名稱若帶有小數點,則只取第一個小數點前的部分作為名稱)
[mysqld]## 我配置的文件名為mysql-binlog-bin=mysql-bin
mysql> show master status;+------------------+----------+--------------+------------------+-------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+------------------+----------+--------------+------------------+-------------------+| mysql-bin.000009 | 80774638 ||||+------------------+----------+--------------+------------------+-------------------+1 row in set (0.00 sec)
上面的查詢結果表示最后(最新)一個binlog日志的編號名稱(mysql-bin.000009),及其最后一個操作事件pos結束點(Position)值
mysql> show master logs;+------------------+-----------+| Log_name | File_size |+------------------+-----------+| mysql-bin.000008 |60794094 || mysql-bin.000009 |80774638 |+------------------+-----------+2 rows in set (0.00 sec)
表示,當前我的MySQL服務有兩個binlog文件mysql-bin.000008和mysql-bin.000009
錯誤日志記錄了MySQL 服務器運行過程中所有較為嚴重的警告和錯誤信息,以及MySQL服務器每次啟動和關閉的詳細信息。
在默認情況下,系統記錄錯誤日志的功能是關閉的( 我所使用的 MySQL 5.6 是開啟的 ),錯誤信息被輸出到標準錯誤輸出( Stderr )。
mysql> show variables like "log_error";+---------------+-----------------------+| Variable_name | Value |+---------------+-----------------------+| log_error | ./VM-16-15-centos.err |+---------------+-----------------------+1 row in set (0.00 sec)
根據查詢結果可知,錯誤日志保存在數據目錄下名為VM-16-15-centos.err的文件中。如果查詢結果為stderr,則表示輸出到屏幕,錯誤的信息只會輸出到我們的終端屏幕,并不會記錄在日志中。
在配置文件[mysqld]組添加如下一行配置:
# log_error記錄了錯誤日志所在位置log_error = /www/server/data/VM-16-15-centos.err
慢查詢日志是記錄查詢時長超過指定時間的日志,慢查詢日志主要用來記錄時間較長的查詢語句,通過慢查詢日志可以找出查詢時間較長的、執行效率較低的語句,以便進行優化。
默認情況下,慢查詢日志功能是關閉的。如果不是調優需要,一般不建議啟動該參數,因為開啟慢查詢日志會或多或少帶來一定的性能影響。
mysql> show variables like "%slow_query%";+---------------------+---------------------------------+| Variable_name| Value|+---------------------+---------------------------------+| slow_query_log| ON|| slow_query_log_file | /www/server/data/mysql-slow.log |+---------------------+---------------------------------+2 rows in set (0.00 sec)
MySQL通過long_query_time參數來指定慢查詢時間,時間以秒為單位。如果查詢時間超過了這個時間值,這個查詢語句將被記錄到慢查詢日志,如果不設置,默認時間為 10 秒。
mysql> show variables like "%long_query_time%";+-----------------+----------+| Variable_name| Value|+-----------------+----------+| long_query_time | 3.000000 |+-----------------+----------+1 row in set (0.00 sec)
#開啟慢查詢日志 0關閉 1開啟SET GLOBAL slow_query_log=1;#修改慢日志記錄SQL的最低閾值時間,單位秒SET GLOBAL long_query_time=3;
一般查詢日志會記錄MySQL所有的SQL語句,不管是查詢語句,還是DML語句,還是DDL語句,還是DCL語句,這些語句統統都會被記錄在general log文件中。就連我們連接和斷開MySQL數據庫的這些語句。
MySQL會把它收到的所有SQL語句按照接收的順序依次記錄在general log中。默認情況下一般查詢日志是關閉的(OFF狀態),并且默認保存在數據包目錄中。
mysql> show variables like "%general%";+------------------+--------------------------------------+| Variable_name| Value|+------------------+--------------------------------------+| general_log| OFF|| general_log_file | /www/server/data/VM-16-15-centos.log |+------------------+--------------------------------------+2 rows in set (0.01 sec)
genral_log:用于控制是否開啟general log。等于0表示關閉,等于1表示開啟。默認是0。
general_log_file:指定general log日志的保存路徑和文件名,如果不配置這個參數的話,默認會以MySQL服務器的hostname作為general log日志的文件名稱,具體文件為:
通用日志有一個默認的保存路徑,和我們的數據庫文件在同一個目錄下,我們只需要開啟即可。
mysql> set @@global.general_log = 1;Query OK, 0 rows affected (0.03 sec)
然后我們在查看一般查詢日志的狀態,就會發現已經是ON。
一般情況下它在MySQL主從同步讀寫分離集群的從節點才開啟。主節點一般不需要這個日志。
MySQL主從同步
如上圖,master主節點的binlog傳到slave從節點后,被寫到relay log里,它是一個臨時的日志文件,用于存儲從master節點同步過來的binlog日志內容,它里面的內容和master節點的binlog日志里面的內容是一致的。然后slave從節點從這個relaylog日志文件中讀取數據應用到數據庫中,來實現數據的主從復制。
MySQL日志文件是數據庫的重要組成部分,本文介紹的七種日志文件,隨便一種都可以延伸出很多知識點。但是作為MySQL基礎入門文章,我們只對日志文件做簡單的了解,并沒有進行深入的探索,雖然偏理論性知識,但是對使用和學習MySQL非常重要。
你知道的越多,不知道的就越多。
程序員的修養就是對技術發自內心的欣賞和敬畏!倘若文中表述有誤,還請諒解,并歡迎與我討論,自主思考永遠比被動接受更有效!
最近買了一臺蘋果筆記本電腦,要安裝軟件的時候突然提示收費,我果斷選擇了去“破解”軟件,最后成功安裝,雖然很多功能不能使用但是對于一般人來說基本已經夠用了。你有沒有想過,為什么國人喜歡破解軟件而不是選擇...
2025.07.03現在大部分人使用的電腦系統都是Win10系統,但是還是有相當一部分人仍舊使用的Win7系統。如果想把Win7系統升級成Win10系統該怎么操作呢?今天小編就來教大家怎么不用U盤使用重裝的方式把Wi...
2025.07.02第一種,就是去MSDN網站上下載,這種方法比較簡單,這個方法可能大多數的朋友都清楚,不過我還是要說一下MSDN這個網站。的確,這個網站能夠幫助大家下載各種常見的操作系統鏡像文件,像我們常用的Windo...
2025.07.03PDF(Portable Document Format)是一種跨平臺的文件格式,它的出現極大地方便了文件的共享和傳輸,因此得到了廣泛的應用。它可以在各種操作系統和軟件平臺上瀏覽、打印和傳輸,而且不會...
2025.07.03如何才能知道我們的電腦CPU是多少位,這樣在安裝系統的時候才能選擇好合適的系統版本,接下來介紹如何查看CPU的位數。 1.點擊“開始”-“運行”如下圖所示: 2.輸入“cmd”,點擊“確定”。如下...
2025.07.03