一、備份數據
1)導出備份數據
- mysqldump -用戶名 -p 數據庫 > [路徑]dump_name.sql;# 備份整個數據庫到dump_name.sql文件中
- mysqldump -用戶名 -p 數據庫 數據表1,數據表2 > [路徑]dump_name.sql;# 備份數據庫中的某個表到dump_name.sql文件中
- mysqldump -u用戶名 -p --databases 數據庫1,數據庫2 > [路徑]dump_name.sql;# 備份多個數據庫到dump_name.sql文件中
- mysqldump -u用戶名 -p --all-databases > [路徑]databases_name.sql;# 備份系統中所有數據庫到databases_name.sql文件中
2)導入備份數據
- mysql -u用戶名 -p 數據庫 < [路徑]dump_name.sql;# 將備份的數據dump_name.text導入到MySQ服務器上,但請保證兩台服務器是相通的,可以相互訪問
二、進行數據庫維護
1)分析表(更新索引的統計信息):ANALYZE TABLE 數據表名稱[,數據表名稱..]
- 分析並存儲表的鍵值分布統計信息
- 為執行查詢提供更好的選擇
- 對使用InnoDB、NDB和MyISAM存儲引擎的表生效
- 支持分表
- ANALYZE TABLE選項:ANALYZE [ NO_WRITE_TO_BINLOG | LOCAL ] TABLE 數據表名稱[,數據表名稱..];不記錄二進制日志
2)檢查表(檢查表的完整性);CHECK TABLE 數據表名稱[,數據表名稱..]
- 檢查表結構和內容的完整性
- 驗證視圖定義
- 支持分區表
- 對使用InnoDB、CSV、MyISAM和ARCHIVE存儲引擎的表生效
- CHECK TABLE選項:
- CHECK TABLE 數據表名稱[,數據表名稱..] FOR UPGRADE;檢查當前服務器的表是否工作
- CHECK TABLE 數據表名稱[,數據表名稱..] QUICK;不掃描不正確鏈接的行
- CHECK TABLE 數據表名稱[,數據表名稱..] FOR UPGRADE;檢查當前服務器的表是否工作
- 如果CHECK TABLE發現使用InnoDB存儲引擎的表有錯誤:
- 服務器將會被關閉以防止錯誤傳播
- MySQL將會記錄到錯誤到錯誤日志
- 服務器將會被關閉以防止錯誤傳播
3)校驗表(報告表數據的一致性檢測結果);CHECKSUM TABLE 數據表名稱[,數據表名稱..]
- 報告表的checksum
- (該語句)用來驗證表備份,回滾或者其它操作之前或之后內容是否一致
- 讀取整個表逐行進行校驗
- 默認選項EXTENDED提供這種行為
- QUICK選項在MyISAM表上可用
- MyISAM默認選項上為設置CHECKSUM=1;
4)修復表;REPAIR TABLE 數據表名稱[,數據表名稱..]
- 修復可能已經損壞的MyISAM或ARCHIVE表
- 不支持InnoDB
- 優化過程中會鎖定表
- 支持分區表
- REPAIR TABLE選項:
- REPAIR TABLE 數據表名稱 QUICK;僅僅修復索引樹
- REPAIR TABLE 數據表名稱 EXTENDED;逐行創建索引(替代以排序方式一次創建一個索引)
- REPAIR TABLE 數據表名稱 USE_FRM;使用.FRM文件重新創建.MYI文件
- REPAIR { NO_WRITE_TO_BINLOG | LOCAL }TABLE 數據表名稱;不記錄二進制日志
5)優化表;OPTIMZE TABLE 數據表名稱[,數據表名稱..]
- 整理表的鎖片
- 重建表和釋放未使用的空間以整理碎片
- 優化過程中會鎖定表
- 更新索引統計信息
- 在一張永久的,數據密集/完全填充?的表上是比較好的
- 在InnoDB,MyISAM和ARCHIV表上生效
- 支持分區表
- OPTIMZE TABLE選項:OPTIMZE [ NO_WRITE_TO_BINLOG | LOCAL ] TABLE 數據表名稱[,數據表名稱..];不記錄二進制日志
6)返回信息:
- Table:標示執行操作的表,
- Op:操作的名字(check、repair、analyze、optimze)
- Msg_type:提供一個成功或失敗的指示,
- Msg_text:提供額外的信息;
診斷啟動問題: