【techtarget中國原創】如果您接手了乙個mysql生產系統,但不確定它是否執行了mysql備份策略,這時需要做哪些保障措施呢?在實施備份策略之前,一定要明確資料規模和儲存引擎使用等先決條件。這會對系統在備份過程中的可用性產生直接影響。
確定資料庫規模
確定儲存引擎使用率
鎖定和停機時間影響
mysql備份方法
備份mysql環境的策略有很多,這些策略與mysql拓撲的伺服器數量相關,有許多開源和商業工具可以執行備份操作。
假設目前您有乙個單伺服器環境,希望建立乙個統一備份,那麼您現在可以在所有mysql環境中採用兩種備份方法。第一種方法是停止mysql例項,然後對整個檔案系統執行冷備份。這樣會讓系統在特定時間段變成不可用狀態,而且您必須確保複製了所有資訊,其中包括mysql資料、事務與二進位制日誌檔案(如果有的話)和mysql的當前配置。
第二種方法是使用mysql標準安裝所包含的客戶端工具。使用mysqldump命令,可以在不停止mysql例項的前提下建立乙個統一的mysql備份。然而,在執行mysqldump之前,必須考慮幾個重要問題,才能夠選擇最佳的備份方法。
所備份資料庫的大小是多少?
生成統一備份需要使用哪一種鎖策略?
備份用時多久?
確定資料庫大小
執行mysql備份需要考慮的乙個重要問題是備份到本地磁碟的備份檔案大小。這要求您準備足夠儲存備份檔案的磁碟空間。
執行下面的sql語句,可以獲得當前資料與索引的總大小(單位為mb):
select round(sum(data_length+index_length)/1024/1024)
as total_mb,
round(sum(data_length)/1024/1024) as data_mb,
round(sum(index_length)/1024/1024) as index_mb
from information_schema.tables;
mysqldump備份大小大約為總數量加上10%~15%的預留量。這裡並不存在精確計算大小的方法;然而,備份會生成以文字方式儲存的資料。例如,資料庫中4位元組的整數可能會在mysqldump備份檔案中佔10個字元大小。在備份過程中,也可以同時壓縮備份檔案,或者將它傳輸到其他網路裝置上。
執行這個sql語句,得到的資料庫資料大小為847mb。作為將來的參考,這裡使用常用預設設定執行mysqldump,得到的備份檔案大小為818mb。
選擇鎖策略
所選擇的鎖策略將確定應用程式是否可以在備份過程中執行資料庫寫操作。預設情況下,mysqldump會使用lock tables命令執行表一級的鎖,以保證所有資料的統一性。這個命令由命令列選項–lock-tables指定,但是它預設是未啟用的。這個選項屬於預設啟用的選項–opt。您可以選擇不鎖定表;然而,它還不足以保證實現統一的備份。在使用myisam儲存引擎時,必須使用–lock-tables,才能保證實現統一的備份。
此外,mysqldump還提供了–single-transaction選項,它可以在乙個事務中建立所有表的統一快照。這個選項只適用於支援多版本儲存的儲存引擎。innodb是唯一預設包含的儲存引擎。
select table_schema, engine, count(*) as tables
from information_schema.tables
where table_schema not in
(『information_schema』, 『performange_schema』)
group by table_schema, engine
order by 3 desc;
mysql安裝環境也同樣適用,指定這個選項會自動關閉–lock-tables。
執行面的sql語句,可以確定mysql例項所使用的儲存引擎:
在這個例子中,mysql例項擁有多個不同的模式,它們支援各種不同的功能,其中包括購物車、新聞郵件和管理工具。乙個全innodb應用程式的模式可能像下面這樣:
從上面可以看出,mysql元模式使用myisam。這個例項的儲存引擎不能修改。如果資料庫採用全innodb引擎,那麼您有兩個與備份myisam mysql表相關的方法。
執行時間
最重要的一點是確定備份所需要的時間。沒有任何方法可以精確計算出備份時間。資料庫大小、系統ram數量、所使用的儲存引擎、mysql配置、硬碟速度和當前負載都會影響計算結果。在執行備份時,一定要收集這些資訊,以備將來使用。執行時間很重要,因為這是資料庫的有效維護時間視窗。在資料庫備份過程中,應用程式的功能可能會受到影響,備份過程可能會產生效能過載,而且備份可能會影響其他的操作,其中包括批處理或軟體維護。
彙總資訊
select table_schema, engine,
round(sum(data_length)/1024/1024) as total_mb,
round(sum(data_length)/1024/1024) as index_mb,
count(*) as tables
from information_schema.tables
group by table_schema,engine
order by 3 desc;
上面是一條推薦使用的sql語句,它彙總了所有用於確定資料庫大小的資訊。
mysql 事務日誌備份 事務日誌備份與恢復 6
14.6 備份與恢復疑難問題 接下來介紹備份與恢復中的一些疑難問題。14.6.1 恢復中的單使用者模式問題 1 故障現象 圖14 31 故障現象 2 原因分析 這是因為在還原資料庫時,有其他使用者正在使用資料庫。還原資料庫要求資料庫工作在單使用者模式。通常就是dba在操作時,不允許其他使用者連線資料...
mysql日誌 資料備份與恢復
mysql連線層 sql層 儲存層常用儲存引擎特點 myisam引擎 archive引擎 常規日誌 general query log 慢查詢日誌 slow query log 二進位制日誌 binary log 日誌檔案的特點 mysql的錯誤日誌 mysql常規日誌 mysql慢查詢日誌 mys...
mysql的日誌和備份 恢復資料
查詢日誌 2.慢查詢日誌 3.二進位制日誌 vim etc my.cnf 開啟 log bin mysql bin binlog日誌,即binary log,是二進位制日誌檔案,有兩個作用,乙個是增量備份,另乙個是主從複製,即主節點維護乙個binlog日誌檔案,從節點從binlog中同步資料,也可以...