- 1、mysql開啟binlog日誌
- 2、怎麼樣通過開啟MySQL查詢日誌log
- 3、如何添加和調整mysql innodb log文件
- 4、如何設置Log文件,記錄資料庫的操作信息
- 5、centos怎麼開啟mysql的日誌服務
- 6、如何修改mysql 的binlog
mysqlbinlog 是將 binlog 解析成可讀可執行的 SQL 的重要工具。
但解析體積較大的 binlog 時,如何查看 mysqlbinlog 的執行進度就變成了一個問題,mysqlbinlog 並未提供 –progress 這樣的參數。
那要怎麼查看 mysqlbinlog 的解析進度?
實驗
我們在 實驗 08 中介紹了如何生成隨機數據。可以利用其中技巧,生成較大的 binlog,我們忽略這個過程。
從已有的 binlog 開始,bin.000002 大約有 1.1 個 G:
請點擊輸入圖片描述
用 mysqlbinlog 解析該 binlog:
請點擊輸入圖片描述
大概會執行 4.6 秒左右。大家仔細做實驗時,可以將 binlog 放大一些,讓執行實驗更長一些。
我們在 mysqlbinlog 解析時,查看其文件句柄:
請點擊輸入圖片描述
可以看到 mysqlbinlog 用句柄 3 讀取 binlog。(我們暫時忽略句柄 4 指向的臨時文件,其涉及到了行格式的解析過程,我們安排在以後的實驗中慢慢介紹)
獲取了 mysqlbinlog 處理文件句柄 3 的進度,就可以大概估算 mysqlbinlog 的整體進度:
請點擊輸入圖片描述
可以看到 mysqlbinlog 此時的進度大概是 600M 左右,整體進度估算為 54%。
結論
我們無法讓 mysqlbinlog 直接輸出進度,於是通過觀察 mysqlbinlog 對 binlog 的讀取進度,估算mysqlbinlog 的整體處理進度。
如何查看當前的二進位日誌,可以使用mysqlbinlog的的工具,命令如下:shellmysqlbinlog mail-bin.000001(要寫絕對問題路徑 d://)或者shellmysqlbinlog mail-bin.000001 | tail
4)mysql有以下幾種日誌:錯誤日誌: -log-err查詢日誌: -log慢查詢日誌: -log-slow-queries更新日誌: -log-update二進位日誌: -log-bin在mysql的安裝目錄下,打開my.ini,在後面加上上面的參數,保存後重啟mysql服務就行了。例如:#Enter a name for the errorlog file. Otherwise a defaultname will be used.log-error=err.log#Enter a name for the querylog file. Otherwise a default name will be used.#log=#Enter a name for the slowquery log file. Otherwise a default name will be used.#log-slow-queries=#Enter a name for the updatelog file. Otherwise a default name will be used.#log-update=#Enter a name for the binarylog. Otherwise a default name will be used.#log-bin=上面只開啟了錯誤日誌,要開其他的日誌就把前面的「#」去掉。
添加調整innodb log文件步驟:
1. 停止mysql服務
1
# /etc/init.d/mysqld stop
[warning]定要關閉[/warning]2. 根據innodb_log_group_home_dir變數進入志目錄
1
# cd /data/mysql_data
3. 備份舊志文件防測便於退
1
# mv ib_logfile* /backup/
4. 按照要求調整志文件或數量並寫入my.cnf文件
innodb_log_file_size調整志文件
innodb_log_files_in_group調整志文件數量
innodb_log_group_home_dir調整志文件位於目錄
5. 重新啟mysql服務
該程按照新志配置創建志文件同注意查看mysql錯誤志監控否錯
1、首先確認你日誌是否啟用了mysqlshow
variables
like
‘log_bin’。
2、如果啟用了,即ON,那日誌文件就在mysql的安裝目錄的data目錄下。
3、怎樣知道當前的日誌mysql
show
master
status。
4、看二進位日誌文件用mysqlbinlog,shellmysqlbinlog
mail-bin.000001或者shellmysqlbinlog
mail-bin.000001
|
tail,Windows
下用類似的。
MySQL的日誌操作:
1、首先,登陸mysql後,執行sql語句:show
variables
like
‘log_bin’。
2、#錯誤日誌log-errol開啟方式:在my.ini的[mysqld]選項下:添加代碼:log-error=E:\log-error.txt。
記錄內容:主要是記錄啟動、運行或停止mysqld時出現的致命性問題,都是系統級的錯誤記錄。
3、#查詢日誌:log,開啟方式:在my.ini的[mysqld]選項下:添加代碼:log=E:/mysql_log.txt。
4、#二進位日誌:log-bin,開啟方式:在my.ini的[mysqld]選項下:添加代碼:log-bin=E:/mysql_log_bin,記錄內容:主要是記錄所有的更改數據的語句,可使用mysqlbinlog命令恢複數據。
Linux作為類Unix,同樣也存在這兩種風格,其中Centos屬於System V,本文主要介紹在Centos下(即System V風格)如何啟動和關閉MySQL,同時簡單介紹BSD系統的情況。
MySQL啟動方式
1)直接調用mysqld。這是最不常見的方式,不推薦使用。
2)運行mysql.server腳本
mysql.server腳本通過調用mysqld_safe啟動伺服器,該腳本可以通過參數start和stop指定啟動還是關閉。
mysql.server腳本在MySQL安裝目錄下的share/mysql目錄中,如果是採用源碼安裝的MySQL,則可以在support-files目錄里找到。如果想使用mysql.server,則必須把它複製到合適的運行級別目錄中,如下所示:
?
1
2
[plain]
cp mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
如上配置之後,就可以利用以下命令啟動和關閉MySQL實例了:
[sql]
service mysqld start/stop
/etc/init.d/mysqld start/stop
使用chkconfig命令配置開機自動啟動:
[sql]
chkconfig –add mysqld
chkconfig mysqld on
運行以下命令檢查是否正確啟用:
[plain]
[root@data data]# chkconfig –list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL關閉方式
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。前者使用起來比較簡便。推薦使用。
1. check table 和 repair table
登陸mysql 終端:
mysql -uxxxxx -p dbname
check table tabTest;
如果出現的結果說Status是OK,則不用修復,如果有Error,可以用:
repair table tabTest;
進行修復,修復之後可以在用check table命令來進行檢查。在新版本的phpMyAdmin裡面也可以使用check/repair的功能。
2. myisamchk, isamchk
其中myisamchk適用於MYISAM類型的數據表,而isamchk適用於ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為預設的數據表類型,這裡以myisamchk為例子進行說明。當發現某個數據表出現問題時可以使用:
myisamchk tablename.MYI
進行檢測,如果需要修復的話,可以使用:
myisamchk -of tablename.MYI
關於myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL伺服器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL伺服器Shutdown掉。
-----------------------------
另外可以把下面的命令放在你的rc.local裡面啟動MySQL伺服器前:
[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI
其中的/tmp/mysql.sock是MySQL監聽的Sock文件位置,對於使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對於使用源碼安裝則是/tmp/mysql.sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL資料庫存放的位置。
需要注意的時,如果你打算把這條命令放在你的rc.local裡面,必須確認在執行這條指令時MySQL伺服器必須沒有啟動!檢測修復所有資料庫(表)
原創文章,作者:FZX1V,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/127162.html