Linux

遠端自動優化mysql數據庫

  • February 14, 2014

無論如何,我都不是 mysql 或 sql 專家,對 FreeBSD 也不太了解。我們有一台伺服器,它經常需要一個表來刪除數據 < 一個只留下 1 個月數據的時間範圍。典型的問題是表太大,然後不能寫。

遠端輸入時只有兩個命令:

mysql -h ABCD -u 使用者 -p 半徑

mysql&gt; DELETE FROM calls WHERE event_date_time &lt;  '2014-01-01 00:00:00';

mysql&gt; optimize table calls;

我必須通過一個 jumpbox 來完成這一切——我無法訪問該伺服器的底層作業系統。例如,我如何設置一個 cronjob 每兩個月執行一次?

謝謝

對於 cron 條目:

0 1 1 */2 * root /bin/optimize.sh

以上執行時間為每第二個月的第一天的 01:00

腳本(/bin/optimize.sh):

#!/bin/bash
FIRST_DAY_OF_MONTH=$( date -d "`date`" +%Y-%m-01 )
DAY="$FIRST_DAY_OF_MONTH 00:00:00"
mysql -uUSER -pradius -h&lt;host&gt; -e "DELETE FROM calls WHERE event_date_time &lt; '$DAY';"
mysql -uUSER -pradius -h&lt;host&gt; -e "optimize table calls;"

以上將採取任何月份,找到第一天,並刪除到該點。顯然,您可以修改它以滿足您的需要。

注意: <host>參數需要填寫

引用自:https://serverfault.com/questions/575649