本文目錄一覽:
mysql如何快速備份
來源:知乎
河南-老宋(志強)
問題描述的不是非常的清晰
使用mysqldump備份時一般會會加上–single-transaction參數,這裡假設你是加了這個參數。
一 加速備份
1 加了single-transaction參數 備份時 需要先flush table with read lock 這個過程中會有一個鎖表的過程,如果有事務或語句正在執行,沒有結束,那麼備份進程會一直等待,並且阻塞別的事務,那麼也會影響業務。所以要先確認備份的時候沒有大的事務在運行。
具體 single-transaction的加鎖可以參考 我的博客:mysqldump備份時加single-transaction會不會加鎖
2 mysqldump是單進程的,沒有辦法並行,但現在機器的瓶頸多是出現在IO方面,可以使用更了的IO設備加快速度
3 mysqldump時如果空間夠的話,不要邊壓縮邊備份
二 加速恢復
1 關閉binlog:不寫入Binlog會大大的加快數據導入的速度
2 innodb_flush_log_at_trx_commit=0
3 更好的配置
建議:
一 如果非要使用邏輯備份,可以考慮mysqldumper, mysqlpump(5.7)這兩個工具去備份,這兩個在備份的時候支持並行操作,mysqldumper還可以對單表進行恢復,在只需要恢復單表的情況下,恢復速度會大大加快
二 使用物理備份 xtrabackup (open source),MEB(oracle提供,收費): 他們的備份原理是基於mysql crash recover, 備份速度 是和邏輯備份的相差不太大。但是恢復速度卻有很大的提升。
邏輯備份 備出來的是sql語句文件,恢復時需要一條一條的執行sql,所以恢復很慢。
而物理備份和還原的速度 相當於直接copy文件,所以恢復的時候性能有很大的提升
並且這兩個軟體還支持並行,效果更好。
邏輯備份最大的優點是 備份好的文件經壓縮後佔用空間較小,最大缺點恢復太慢
物理備份可以很快的恢復,但是備份好的文件壓縮後佔用空間比邏輯備份要大。
使用雲,你做為用戶可以不用考慮這些事情。
附:xtrabackup的並行參數
Parallel local backups
Parallel compression
Parallel encryption
Parallel apply-log
Gary Chen
《MySQL DBA修鍊之道》作者。從事資料庫領域10多年。
1.一般來說,你只有靠更好的硬體. 軟體沒有大的變動的情況下不可能突破硬體瓶頸;
2. mysqldump默認的導出選項已經可以了,單進程的工具不要期望太多,TommyChiu介紹的工具可試試.;
3. 導出的時候觀察下系統,如果是cpu瓶頸,你基本無解.如果是swap問題,看是否是因為內存不夠;
4. 恢復的時候主要是一個參數:innodb_flush_log_at_trx_commit=2
TommyChiu
mk-parallel-dump 試試
mysql中備份和還原資料庫的語句什麼啊
一、Mysql資料庫備份指令格式:
mysqldump -h主機名 -P埠 -u用戶名 -p密碼 (–database) 資料庫名 文件名.sql
註:直接cmd執行該指令即可,不需要先mysql -u root -p鏈接資料庫
1、備份MySQL資料庫的命令
mysqldump -hhostname -uusername -ppassword databasename backupfile.sql
2、備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
mysqldump -–add-drop-table -uusername -ppassword databasename backupfile.sql
二、資料庫還原有三種方式:source命令、mysql、gunzip命令
1、source 命令
進入mysql資料庫控制台,
mysql -u root -p
mysqluse 資料庫
然後使用source命令,後面參數為腳本文件(如這裡用到的.sql)
mysqlsource /home/work/db/bkdb.sql
2、mysql
mysql -hhostname -uusername -ppassword databasename backupfile.sql
3、gunzip
gunzip backupfile.sql.gz | mysql -uusername -ppassword databasename
mysql如何備份資料庫
物理備份,可以使用開源軟體xtrabackup
邏輯備份,可以使用mysql自帶的工具mysqldump
如何使用mysqldump命令備份mysql資料庫
mysqldump: 最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個資料庫實例、單個資料庫、單張表的邏輯備份工具, 上手簡單,學習成本幾乎為 0。備份簡單,恢復也簡單。
比如導出單個資料庫 ytt: mysqldump ytt /tmp/ytt.sql;
恢復也非常簡單:mysql /tmp/ytt.sql
缺點是備份速度慢。在整個備份過程中,是單線程運行;備份出來的數據集要恢復的話同樣也是單線程運行,恢復速度也慢。除非對同一時刻的所有表單獨備份出來,自己寫額外腳本進行多線程恢復。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/288826.html