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