国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL下FLUSH命令mysql日志的輪詢(xún)

2024-07-24 12:39:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

通過(guò)mysql的my.cnf文件可以設(shè)置mysql的日志,而日志文件如果長(zhǎng)期不進(jìn)行清理或回收,勢(shì)必會(huì)造成日志文件越來(lái)越大,進(jìn)而影響到mysql的性能,而利用rpm 包安裝方式的自帶有mysql日志的輪詢(xún)刷新,通過(guò)源碼包安裝的一樣能實(shí)現(xiàn)該功能,該功能的實(shí)現(xiàn)要通過(guò)flush命令和mysql自帶腳本的修改來(lái)完成,當(dāng)然,二進(jìn)制日志文件除外,因?yàn)橄到y(tǒng)自帶了expire_logs_days和max-binlog-size參數(shù)進(jìn)行設(shè)置,并且二進(jìn)制文件為系統(tǒng)數(shù)據(jù)恢復(fù)時(shí)的重要文件,不建議使用該方式進(jìn)行配置,如果有其他備份策略也可以使用該方式進(jìn)行輪詢(xún).

Flush命令的用法如下:

  1. mysql> help flush; 
  2. Name'FLUSH' 
  3. Description: 
  4. Syntax: 
  5. FLUSH [NO_WRITE_TO_BINLOG | LOCAL
  6.     flush_option [, flush_option] ... 
  7. ………… 
  8. The RESET statement is similar to FLUSH. See [HELP RESET], for 
  9. information about using the RESET statement with replication. 
  10.  
  11. URL: http://dev.mysql.com/doc/refman/5.5/en/flush.html 

從上面的英文幫助文檔中可以查看mysql的flush命令和日志相關(guān)的用法.

  1. BINARY closes and reopens the binary log files. 
  2. ENGINE closes and reopens any flushable logs for installed storage engines. Currently, this causes InnoDB to flush its logs to disk and perform a checkpoint. 
  3. ERROR closes and reopens the error log file. 
  4. GENERAL closes and reopens the general query log file. 
  5. RELAY closes and reopens the relay log files. 
  6. SLOW closes and reopens the slow query log file. 
  7. The log_type options were added in MySQL 5.5.3. 

關(guān)于flush其他方面的用法,我不想直接翻譯了,直接拿個(gè)網(wǎng)上別人現(xiàn)成的吧,如下:

MySQL的FLUSH句法(清除或者重新加載內(nèi)部緩存)FLUSH flush_option [,flush_option],如果你想要清除一些MySQL使用內(nèi)部緩存,你應(yīng)該使用FLUSH命令,為了執(zhí)行FLUSH,你必須有reload權(quán)限.

flush_option 可以是下列任何東西:

HOSTS 這個(gè)用的最多,經(jīng)常碰見(jiàn),主要是用來(lái)清空主機(jī)緩存表,如果你的某些主機(jī)改變IP數(shù)字,或如果你得到錯(cuò)誤消息Host ... isblocked,你應(yīng)該清空主機(jī)表,當(dāng)在連接MySQL服務(wù)器時(shí),對(duì)一臺(tái)給定的主機(jī)有多于 max_connect_errors個(gè)錯(cuò)誤連續(xù)不斷地發(fā)生,MySQL為了安全的需要將會(huì)阻止該主機(jī)進(jìn)一步的連接請(qǐng)求,清空主機(jī)表允許主機(jī)再?lài)L試連接.

LOGS 關(guān)閉當(dāng)前的二進(jìn)制日志文件并創(chuàng)建一個(gè)新文件,新的二進(jìn)制日志文件的名字在當(dāng)前的二進(jìn)制文件的編號(hào)上加1.

PRIVILEGES  這個(gè)也是經(jīng)常使用的,每當(dāng)重新賦權(quán)后,為了以防萬(wàn)一,讓新權(quán)限立即生效,一般都執(zhí)行一把,目地是從數(shù)據(jù)庫(kù)授權(quán)表中重新裝載權(quán)限到緩存中.

TABLES  關(guān)閉所有打開(kāi)的表,同時(shí)該操作將會(huì)清空查詢(xún)緩存中的內(nèi)容.

FLUSH TABLES WITH READ LOCK 關(guān)閉所有打開(kāi)的表,同時(shí)對(duì)于所有數(shù)據(jù)庫(kù)中的表都加一個(gè)讀鎖,直到顯示地執(zhí)行unlock tables,該操作常常用于數(shù)據(jù)備份的時(shí)候.

STATUS   重置大多數(shù)狀態(tài)變量到0.

MASTER    刪除所有的二進(jìn)制日志索引文件中的二進(jìn)制日志文件,重置二進(jìn)制日志文件的索引文件為空,創(chuàng)建一個(gè)新的二進(jìn)制日志文件,不過(guò)這個(gè)已經(jīng)不推薦使用,改成reset master 了,可以想象,以前自己是多土啊,本來(lái)一條簡(jiǎn)單的命令就可以搞定的,卻要好幾條命令來(lái),以前的做法是先查出來(lái)當(dāng)前的二進(jìn)制日志文件名,再用purge 操作.

QUERY CACHE   重整查詢(xún)緩存,消除其中的碎片,提高性能,但是并不影響查詢(xún)緩存中現(xiàn)有的數(shù)據(jù),這點(diǎn)和Flush table 和Reset Query  Cache(將會(huì)清空查詢(xún)緩存的內(nèi)容)不一樣的.

SLAVE   類(lèi)似于重置復(fù)制吧,讓從數(shù)據(jù)庫(kù)忘記主數(shù)據(jù)庫(kù)的復(fù)制位置,同時(shí)也會(huì)刪除已經(jīng)下載下來(lái)的relay log,與Master一樣,已經(jīng)不推薦使用,改成Reset Slave了,這個(gè)也很有用的.

一般來(lái)講,Flush操作都會(huì)記錄在二進(jìn)制日志文件中,但是FLUSH LOGS、FLUSH MASTER、FLUSH SLAVE、FLUSH TABLES WITH READ LOCK不會(huì)記錄,因此上述操作如果記錄在二進(jìn)制日志文件中話(huà),會(huì)對(duì)從數(shù)據(jù)庫(kù)造成影響,注意:Reset操作其實(shí)扮演的是一個(gè)Flush操作的增強(qiáng)版的角色.

Mysql自的帶的日志輪詢(xún)腳本位于源碼包的support-files目錄中——mysql-log-rotate.sh文件.

具體操作如下(query日志為例):

先將query_log.log文件mv

  1. [root@localhost logs]# ll 
  2. total 32 
  3. -rw-rw---- 1 mysql mysql    1 Mar 12 14:28 mysql.err 
  4. -rw-rw---- 1 mysql mysql    6 Mar  5 15:44 mysql.pid 
  5. -rw-rw---- 1 mysql mysql 1015 Mar 12 15:32 query_log.log 
  6. -rw-rw---- 1 mysql mysql  704 Mar  5 15:44 slow.log 
  7. [root@localhost logs]# mv query_log.log query_log.log.1 

登陸mysql命令界面下,執(zhí)行如下操作:

  1. mysql> flush general logs; 
  2. Query OK, 0 rows affected (0.06 sec) 

注:這一步分關(guān)鍵,也容易錯(cuò),我之前進(jìn)行flush general操作老是出錯(cuò),后來(lái)看了官方的文檔后,才發(fā)現(xiàn)后面少了logs.

下面再看下日志文件:

  1. [root@localhost logs]# ll 
  2. total 40 
  3. -rw-rw---- 1 mysql mysql    1 Mar 12 14:28 mysql.err 
  4. -rw-rw---- 1 mysql mysql    6 Mar  5 15:44 mysql.pid 
  5. -rw-rw---- 1 mysql mysql  176 Mar 12 15:38 query_log.log 
  6. -rw-rw---- 1 mysql mysql 1285 Mar 12 15:38 query_log.log.1 
  7. -rw-rw---- 1 mysql mysql  704 Mar  5 15:44 slow.log 
  8. [root@localhost logs]# cat query_log.log 
  9. /usr/local/mysql/bin/mysqld, Version: 5.5.21-log (Source distribution). started with
  10. Tcp port: 3306  Unix socket: /tmp/mysqld.sock 
  11. Time                 Id Command    Argument 

關(guān)于使用輪詢(xún)腳本時(shí)的注意點(diǎn):

  1. /data/mysql/mysqld.log { 
  2.         # create 600 mysql mysql 
  3.         notifempty 
  4.         daily 
  5.         rotate 3 
  6.         missingok 
  7.         compress 
  8.     postrotate 
  9.         # just if mysqld is really running 
  10.         if test -x /usr/local/mysql/bin/mysqladmin && 
  11.            /usr/local/mysql/bin/mysqladmin ping &>/dev/null 
  12.         then 
  13.            /usr/local/mysql/bin/mysqladmin flush-logs 
  14.         fi 
  15.     endscript 

上面腳本中的二處在設(shè)置密碼后進(jìn)運(yùn)行時(shí)會(huì)報(bào)錯(cuò)的,因?yàn)槠湟褂妹艽a的直持,具體為:

/usr/local/mysql/bin/mysqladmin –uroot-ptest ping(其中用戶(hù)名為root,密碼為test)

/usr/local/mysql/bin/mysql -uroot -ptest -e "flush general logs"

設(shè)置完成后將該腳本放到/etc/logrotate.d目錄就行了.

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 铁力市| 舞阳县| 龙井市| 长治市| 波密县| 星子县| 吉安县| 平利县| 武城县| 临泽县| 时尚| 武汉市| 琼结县| 鲁甸县| 德昌县| 松滋市| 海安县| 隆林| 白朗县| 得荣县| 胶南市| 连云港市| 巴青县| 湖口县| 桂阳县| 通榆县| 沙坪坝区| 万荣县| 平和县| 育儿| 鄱阳县| 获嘉县| 剑河县| 岐山县| 榆中县| 宜章县| 辽宁省| 米易县| 兰考县| 兰州市| 彩票|