1. 程式人生 > >MySQL 日常維護 文件 V1.0

MySQL 日常維護 文件 V1.0

MySQL 日常維護

其中第一至第六, 每天都需要執行, 第七到第九定期執行(1周或者2週一次?)

檢查資料庫執行狀態

1 通過putty.exe登入遠端資料庫伺服器,shell命令列裡面執行:

Shell > service mysqld status;

 pic 1

則表示資料庫正在執行之中

2 檢查錯誤日誌

進入/usr/local/mysql/var/,檢視錯誤日誌,例如sh-192-168-250-40.chinascopefinancial.com.err。看近期mysql在執行中是否有錯誤異常發生。

比如發現類似錯誤:

090418 19:59:11 [ERROR] Got error 127 when reading table ‘./csf/ms_company’

對於127以及126的類似錯誤,可以採取如下解決措施:

(1)進入mysql視窗執行:Mysql> repair csf. ms_company ;

(2)進入shell命令視窗:Shell> myisamchk /usr/local/mysql/var/csf/ ms_company.MYI

【】線上修復的時候,要保證沒有程式在訪問要修復的表。

3 檢查備份日誌

檢查前一天的備份的日誌,看備份是否成功完成,或者備份過程中出

現什麼錯誤提示。

4 檢查資料庫排程任務events事件

檢查前一天的備份的日誌,看備份是否成功完成,或者備份過程中出

現什麼錯誤提示。

檢查資料庫伺服器磁碟空間

, 記錄最近一天磁碟使用量

通過如下shell命令檢查:

Shell> df –h;

pic 2

得出目前已剩餘磁碟空間,跟昨天的記錄一對比,得出每天磁碟使用量為3G,如果磁碟可用空間小,就需要清理舊的binlog.

檢查表

開啟MySQL Administration工具,登入資料庫伺服器,檢查每個庫的表情況,

遇到有壞表的,直接Repair Table修復掉。

檢查master伺服器的master服務以及slave機的slave服務狀態

檢視master伺服器狀態:Mysql> show master status; 行正常的狀態如下所

:

   master

檢視mysql

使用者執行緒狀態: mysql> show processlist; 執行正常的狀態如下所示:

 processlist

檢視slave伺服器狀態: Mysql> show slave status /G;執行正常的狀態如下所示:

 slave status

檢查Excel錯誤

詳細見文件“excel_error_check.sql”。

六, MySQL使用者賬戶管理

對使用者嚴格管理,單使用者只能賦予執行單個業務的許可權,防止對資料的誤操作。示範命令如下:

建立使用者:

Mysql> grant select,insert,update,delete on csf_cms.*to 'csf_cms_admin'@'192.168.0.97' identified by 'cca0810012045';

檢視使用者:

MySQL> Select* from mysql.user;

Mysql> Select* from mysql.db;

Mysql> select * from mysql.tables_priv;

Mysql> select * from mysql.columns_priv;

Mysql> select * from mysql.procs_priv;

賦予許可權

Mysql> grant update on csf_maec.* to 'jerry.kang'@'192.168.0.103';

Mysql> grant update(flag) on csf_maec.ms_company to 'jerry.kang'@'192.168.0.103';

收回許可權

revoke drop on *.* from 'sun.shang'@'192.168.0.99';

刪除過期使用者

mysql> drop user 'glpiuser'@'192.168.0.25';

七,定期索引檢查、索引優化

重點檢查大表比如rpt_style1_0rpt_style1_f等的索引。

八,定期檢查表結構以及資料

通過 Administration工具檢查,將主機與從機的庫結構以及資料進行

全方位的對比對比。比如說,表以及資料量的總記錄,索引的記錄數,觸發器的記錄數,儲存函式儲存過程的記錄數等.

1 檢查和修復MyISAM表的一個方式是使用CHECK TABLEREPAIR TABLE

句。

2 優化MyISAM表,對於沒有問題的表執行optimize table進行做碎片整理,回收空閒空間,例如mysql> optimize table test.cmp_158; 或者是,如果可以停一會mysqld伺服器,進入資料庫目錄,當mysqld停止時候使用該命令:shell> myisamchk –r –s –sort-index –O sort_buffer_size=16M */*.MYI;

3 修復innodb

mysql目前沒有修復innodb 表的工具,只能用innodb_force_recovery=1,避免在匯出資料時再crash。在my.cnf中設定好後重啟庫,再用 mysqldump或者select *把出問題的表匯出來。然後重新匯入(刪除原表)。

九,檢查備份檔案,將從機的備份資料恢復到測試庫,檢驗備份資料是否正確。

具體操作參見文件“MySQL備份恢復初稿.docx

【】終於學會插入圖片了,呵呵!