1. 程式人生 > >mysql-bin佔用空間太大的問題

mysql-bin佔用空間太大的問題

用ports安裝了mysql以後,過一段時間發現/var空間不足了,查一下,會發現是mysql-bin.000001、mysql-bin.000002等檔案佔用了空間,那麼這些檔案是幹嗎的?這是資料庫的操作日誌,例如UPDATE一個表,或者DELETE一些資料,即使該語句沒有匹配的資料,這個命令也會儲存到日誌檔案中,還包括每個語句執行的時間,也會記錄進去的。

這樣做主要有以下兩個目的:
1:資料恢復
如果你的資料庫出問題了,而你之前有過備份,那麼可以看日誌檔案,找出是哪個命令導致你的資料庫出問題了,想辦法挽回損失。
2:主從伺服器之間同步資料
主伺服器上所有的操作都在記錄日誌中,從伺服器可以根據該日誌來進行,以確保兩個同步。

處理方法分兩種情況:
1:只有一個mysql伺服器,那麼可以簡單的註釋掉這個選項就行了。
vi /etc/my.cnf把裡面的log-bin這一行註釋掉,重啟mysql服務即可。
2:如果你的環境是主從伺服器,那麼就需要做以下操作了。
A:在每個從屬伺服器上,使用SHOW SLAVE STATUS來檢查它正在讀取哪個日誌。
B:使用SHOW MASTER LOGS獲得主伺服器上的一系列日誌。
C:在所有的從屬伺服器中判定最早的日誌,這個是目標日誌,如果所有的從屬伺服器是更新的,就是清單上的最後一個日誌。
D:清理所有的日誌,但是不包括目標日誌,因為從伺服器還要跟它同步。
清理日誌方法為:
PURGE MASTER LOGS TO 'mysql-bin.010';
PURGE MASTER LOGS BEFORE '2008-12-19 21:00:00';

如果你確定從伺服器已經同步過了,跟主伺服器一樣了,那麼可以直接RESET MASTER將這些檔案刪除。

======================================

之前發現自己10G的伺服器空間大小,用了幾天就剩下5G了,自己上傳的檔案才僅僅幾百M而已,到底是什麼東西佔用了這麼大空間呢?今天有時間徹底來查了一下:

mysql-log

看下上面的目錄web根目錄是放在/home 裡面的,所有檔案加起來才不到300M,而伺服器上已經佔用了近5G空間,恐怖吧,最後經我一步一步查詢得知,原來是這個資料夾佔了非常多的空間資源:

mysql-log1

原來如此,是mysql資料夾下的var目錄佔用空間最大,那裡面是啥 內容呢?我們來看下:

mysql-log2

發現瞭如此多的 mysql-bin.0000X檔案,這是什麼東西呢?原來這是mysql的操作日誌檔案.我才幾十M的資料庫,操作日誌居然快3G大小了.

如何刪除mysql-bin.0000X 日誌檔案呢?

紅色表示輸入的命令.

[[email protected] var]# /usr/local/mysql/bin/mysql -u root -p
Enter password:  (輸入密碼)
Welcome to the MySQL monitor.  Commands end with ; or /g.
Your MySQL connection id is 264001
Server version: 5.1.35-log Source distribution

Type ‘help;’ or ‘/h’ for help. Type ‘/c’ to clear the current input statement.

mysql> reset master; (清除日誌檔案)
Query OK, 0 rows affected (8.51 sec)

mysql>

好了,我們再來檢視下mysql資料夾佔用多少空間?

[[email protected] var]# du -h –max-depth=1 /usr/local/mysql/
37M     /usr/local/mysql/var
70M     /usr/local/mysql/mysql-test
15M     /usr/local/mysql/lib
448K    /usr/local/mysql/include
2.9M    /usr/local/mysql/share
7.6M    /usr/local/mysql/libexec
17M     /usr/local/mysql/bin
11M     /usr/local/mysql/docs
2.9M    /usr/local/mysql/sql-bench
163M    /usr/local/mysql/

好了,看一下,整個mysql 目錄才佔用163M大小!OK,沒問題,既然mysql-bin.0000X日誌檔案佔用這麼大空間,存在的意義又不是特別大,那麼我們就不讓它生成吧.

[[email protected] var]# find / -name my.cnf

找到了my.cnf 即mysql配置檔案,我們將log-bin=mysql-bin 這條註釋掉即可.

# Replication Master Server (default)
# binary logging is required for replication
#log-bin=mysql-bin

重啟下mysql吧.

OK,至此,操作完成. 以後再不會因為就幾十M的資料庫大小生成N個G的日誌檔案啦.

這些個日誌檔案太恐怖了,我搬到這新VPS來才二十天左右,還不到一個月日誌檔案居然就近3個G大小,如果一兩個月我不清除日誌檔案這還得了!

相關推薦

mysql-bin佔用空間的問題

用ports安裝了mysql以後,過一段時間發現/var空間不足了,查一下,會發現是mysql-bin.000001、mysql-bin.000002等檔案佔用了空間,那麼這些檔案是幹嗎的?這是資料庫的操作日誌,例如UPDATE一個表,或者DELETE一些資料,即使該語句

SSIS 資料庫 佔用 空間

  背景介紹:     前端時間做的一個 SSIS的一個專案,也是第一次做,踩了不少坑,開發環境和生產環境的 不一致,也是一通折騰,今天記錄一個專案執行一段時間之後 碰到的一個問題及解決方案   問題描述   今天在客戶的生產機器上排查另外一個問題的時候,遇到了

iTunes C盤佔用空間 解決方案

關鍵詞:itunes 空間太大 C盤 轉移 解決方案 itunes預設在C盤有2個較大的資料夾,一個是資料庫,就是裝有.ipa的資料夾,另一個是同步備份資料。如果不轉移,往往會在C盤佔據5-10G的空間,這對前幾年的電腦來說,是有點大了。 轉移資料庫: ①在itunes上

重新啟動postgre報錯時,解決方案 ( 由備份檔案佔用空間造成 ) (linux 命令 df -h 檢視磁碟空間)

在這裡使用了一個liunx下的命令檢視磁碟空間 常用引數:df -h ------------------------------------- 1.在Linux下重新啟動postgre pg_ctl restart (postgres 使用者) 今天遇到的問題 由於匯

home目錄空間不足,cache佔用空間

原文:http://blog.csdn.net/chiyunyinlong/article/details/53552215準備安裝一個軟體的(wine下安裝PS+win7配置環境),碰到了home磁碟空間不足的情況,甚至連新建文字都儲存不了使用磁碟檢視器檢視baobab  

Mac OS 系統佔用儲存空間怎麼辦?

  儲存空間 121 GB,系統就佔用 106G,然後就是不斷的彈窗提醒你! 解決方法: 終端先執行一下 du -sh * 檢視具體是哪裡使用了儲存空間,一般都是 library 佔用比較多的空間, 把可以刪除的都刪了,然後繼續清查系統,安裝一個免費軟體 OmniD

mysql-bin日誌檔案過導致磁碟空間不足問題解決方法

在MySQL資料庫中,mysql-bin.000001、mysql- bin.000002等檔案是資料庫的操作日誌,例如UPDATE一個表,或者DELETE一些資料,即使該語句沒有匹配的資料,這個命令也會儲存到日誌檔案中,還包括每個語句執行的時間,也會記錄進去的。 這樣做主

關於SqlServer數據庫C盤占用空間問題

sel com lec server2 mic ace 驗證 驅動 日誌 關於SqlServer數據庫C盤占用空間太大問題 工程需要用上了SQL SERVER2008 ,主要作為數據倉庫使用,使用SSIS包從ORACEL10G中抽取數據到MS SQL中。環境是win200

mysql資料庫binlog日誌的清理方法

mysql資料庫binlog日誌太大的清理方法  1.檢視binlog日誌 mysql> show binary logs; +------------------+------------+ | Log_name    

【筆記】ios 記憶體大小的限制 (因佔用記憶體而crash)

因ios對每個程式都有最大的記憶體分配限制,如果超過了這個閾值,會被系統強制關閉,造成crash,通常出現在bugly上的錯誤碼是 SEGV_ACCERR。在除錯的時候,會顯示類似這樣的資訊   EXC_RESOURCE RESOURCE_TYPE_MEMORY (lim

VS2010工程佔用空間的原因和解決方法

如果不進行特定的設定,用VS2010建立的工程佔用磁碟空間會非常的大,原因是VS2010會自動生成.ipch和.sdf檔案,用於記錄整個開發過程中的變化,這些東西在99.9999%的情況下是完全用不到的,要解決佔用空間大的問題,有兩種方法: (1)臨時性方法:每次複製VS2

linux中在當前目錄下找出佔用空間的前10檔案

首先要了解三個常用命令: du : 計算出單個檔案或者資料夾的磁碟空間佔用.sort : 對檔案行或者標準輸出行記錄排序後輸出.head : 輸出檔案內容的前面部分. du: -a:顯示目錄佔用空間的大小,還要顯示其下目錄佔用空間的大小 sort: -n  : 按照字串表

阿里雲RDS的mysql資料庫佔用空間超過90%的處理

阿里雲RDS資料庫最大支援2T,目前已經佔用了90%,如果進行分庫或者遷移比較麻煩,思路是找出佔用空間過大的日誌或不重要的檔案進行刪除操作 查詢所有資料庫佔用磁碟空間大小的SQL語句: show binary logs;  show variables like '%log

mysql5.6.20配置,解決佔用記憶體問題

vps的記憶體為512M,安裝好nginx,php等啟動起來,mysql死活啟動不起來看了日誌只看到對應pid被結束了,後跟蹤看發現是記憶體不足被killed; 調整my.cnf 引數,重新配置(系統預設配置太高直接佔用400M記憶體,小玩家玩不起呢)即可 perfor

Hbase在hdfs上的archive目錄佔用空間

hbase版本:1.1.2    hadoop版本:2.7.3Hbase在hdfs上的目錄/apps/hbase/data/archive佔用空間過大,導致不停地發出hdfs空間使用率告警。【問題】告警資訊 alert: datanode_storage is trigger

centos mysql佔用磁碟空間解決方法

安裝了mysql以後,過一段時間發現磁碟空間不足了,查一下,發現是  mysql-bin.000001、  mysql-bin .000002等檔案佔用了空間,那麼這些檔案是幹嗎的?這是資料庫的操作日誌,例如UPDATE一個表,或者DELETE一些資料,即使該語句沒有匹配

centos解決mysql-bin.000*佔用超大空間的問題

本站(也就是安全者)網站資料庫掛了一下午,也沒時間處理,晚上回來後嘗試restart mysql,發現一直提示shutting down..........關閉不了,也stop不了,伺服器重啟也不行。可以確信肯定是mysql出問題了。進入mysql的data目錄一大堆名字為m

解決"mysql-bin.000001"占用超大空間的問題

分享 strong 主從數據庫 update ima 技術 ont 服務器 innodb 描述:mysql-bin.000001、mysql-bin.000002等文件是數據庫的操作日誌,例如UPDATE一個表,或者DELETE一些數據,即使該語句沒有匹配的數據,

zabbix資料庫佔用磁碟空間的處理方法

du -h /* |sort -nr  使用此命令一步步排查發現/var/lib/mysql/zabbix/這個目錄佔用磁碟空間較大 發現history_log.ibd這個檔案最大,達到了38G,此檔案對應的是zabbix庫裡的history_log表 找到問題原因後就好解決,進入zabbix,

檢視MYSQL資料庫的佔用空間

如果想知道mysql 資料庫中的每個表佔用的空間、表記錄的行數的話,可以開啟mysql的information_schema資料庫。在該庫中有一個tables表,這個表主要欄位分別是: table_schema:資料庫名 table_name:表名 engine:所使用的儲存引擎