日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

阿里云mysql 日志_mysql日志-阿里云开发者社区

發(fā)布時間:2023/12/19 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里云mysql 日志_mysql日志-阿里云开发者社区 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

mysql日志

mysql有以下幾種日志:

錯誤日志: log-error

查詢?nèi)罩?#xff1a; log

慢查詢?nèi)罩? log-slow-queries

更新日志: log-update

二進制日志: log-bin

主從中繼日志:relay_log

在配置文件中指定log的輸出位置.

# vi /etc/my.cnf

[mysqld]

log-error=/usr/local/mysql/logs/error.log?????? (指定錯誤日志存放位置)

log=/usr/local/mysql/logs/sql.log???????? (對所有執(zhí)行語句進行記錄)

long_query_time=2???????????????? (執(zhí)行超過2秒的sql會被log下來)

log-slow-queries= /usr/local/mysql/logs/slowquery.log?????? (將查詢返回較慢的語句進行記錄)

log-queries-not-using-indexes = nouseindex.log???? (log下來沒有使用索引的sql語句)

log-bin=/usr/local/mysql/logs/mysql-bin??????? (設(shè)置二進制日志的保存位置,/usr/local/mysql/logs為

路徑,mysql-bin為文檔前綴,注意給/usr/local/mysql/logs可寫入的權(quán)限)

expire_logs_day=7?????????????????????????????????? (設(shè)置二進制日志的保存時間為7天,7天后自動刪除

)

log_bin=/usr/local/mysql/logs/relaylog????? (設(shè)置主從mysql中繼日志路徑為/usr/local/mysql/logs,格

式為relaylog.00001)

:wq

默認情況下,所有日志創(chuàng)建于mysqld數(shù)據(jù)目錄中。

通過刷新日志,你可以強制 mysqld來關(guān)閉和重新打開日志文件(或者在某些情況下切換到一個新的日志)。

刷新日志的命令:

> flush logs

# mysqladmin -u root -p flush-logs

# mysqladmin -u root -p refresh

是否啟用了日志

mysql> show variables like 'log_%';

怎樣知道當(dāng)前的日志

mysql> show master status;

顯示二進制日志數(shù)目

mysql> show master logs;

看二進制日志文件用mysqlbinlog

# mysqlbinlog /var/lib/mysql/log/mysql-bin-log.00001

刪除全部日志

> reset master;

刪除000007編號之前的所有日志

> purge master logs to 'mysql-bin.000007';

刪除2012-02-30 23:59:59時間之前的日志

> purge master logs before '2012-02-30 23:59:59';

mysql自帶了一個查看慢日志的工具mysqldumpslow。

執(zhí)行mysqldumpslow –h可以查看幫助信息。

主要介紹兩個參數(shù)-s和-t

-s 這個是排序參數(shù),可選的有:

al: 平均鎖定時間

ar: 平均返回記錄數(shù)

at: 平均查詢時間

c: 計數(shù)

l: 鎖定時間

r: 返回記錄

t: 查詢時間

-t n 顯示頭n條記錄。

實例:

mysqldumpslow -s c -t 20 host-slow.log?????????? (訪問次數(shù)最多的20個sql語句)

mysqldumpslow -s r -t 20 host-slow.log?????????? (返回記錄集最多的20個sql)

mysqldumpslow -t 10 -s t -g “l(fā)eft join” host-slow.log???????? (按照時間返回前10條里面含有左連

接的sql語句)

日志恢復(fù):

bin-log是記錄著mysql所有事件的操作,當(dāng)mysql發(fā)生災(zāi)難性錯誤時,可以通過bin-log做完整恢復(fù),基于時間

點的恢復(fù),和基于位置的恢復(fù)

完整恢復(fù):

假定我們每天凌晨2點都會使用mysqldump備份數(shù)據(jù)庫,但在第二天早上9點由于數(shù)據(jù)庫出現(xiàn)了故障,數(shù)據(jù)無法訪

問,需要恢復(fù)數(shù)據(jù),先使用昨天凌晨備份的文件進行恢復(fù)到凌晨2點的狀態(tài),在使用mysqlbinlog恢復(fù)自

mysqldump備份以來的binlog

這樣數(shù)據(jù)庫就可以完全的恢復(fù)到崩潰前的完全狀態(tài)

基于時間點的恢復(fù):

由于誤操作,比如說刪除了一張表,這時使用上面講的完全恢復(fù)是沒有用的,因為日志里面還存在誤操作的語

句,,我們需要的是恢復(fù)到誤操作前的狀態(tài),然后跳過誤操作的語句,再恢復(fù)后面操作的語句,假定我們刪除

了一張表的誤操作發(fā)生在10:00這個時間點,我們可以使用下面的語句用備份和binlog將數(shù)據(jù)恢復(fù)到故障前

# mysqlbinlog --stop-date='2010-09-04 9:59:59' /var/log/mysql-bin.000001 | mysql -u root -p

然后跳過誤操作的時間點,繼續(xù)執(zhí)行后面的binlog

# mysqlbinlog --start-date='2010-09-04 10:01:00' /var/log/mysql-bin.000001 | mysql -u root -p

其中--stop-date='2010-09-04 9:59:59' 和 --start-date='2010-09-04 10:01:00' 其中的時間是你誤操作的

時間點,當(dāng)然了,這個時間點你需要你自己計算的,而且這個時間點還可以涉及到的不只是誤操作,還可以有

正確的操作也被跳過去了。

基于位置恢復(fù):

由于上面提到的,使用基于時間點的恢復(fù)可能出現(xiàn),在一個時間點里面可能存在誤操作和其他正確的操作,所

以我們需要一種更為精確的恢復(fù)方式

使用mysqlbinlog查看二進制,可看到

其中drop tables test1這個誤操作的end_log_pos為8879917,記下這個id,得出它前后操作的id分別為

8879916,8879918

我們將進行位置恢復(fù)操作

# mysqlbinlog --stop-position='8879916' /var/log/mysql-bin.000001 | mysql -u root -p

# mysqlbinlog --start-position='8879918' /var/log/mysql-bin.000001 | mysql -u root -p

第一行是恢復(fù)到停止位置位置的所以事務(wù),第二性是恢復(fù)從給定的起始位置知道二進制日志結(jié)束所有事物。

本文轉(zhuǎn)自linux博客51CTO博客,原文鏈接http://blog.51cto.com/yangzhiming/834893如需轉(zhuǎn)載請自行聯(lián)系原作者

yangzhimingg

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的阿里云mysql 日志_mysql日志-阿里云开发者社区的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。