mysql怎么備份表 mysql備份表sql

如何對mysql備份

Mysql數(shù)據(jù)庫的常用備份方法是使用使用實用程序mysqldump, 其命令格式如下

網(wǎng)站建設哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了雨湖免費建站歡迎大家使用!

# mysqldump [options] database [tables]

其參數(shù)的含義為:

options:代表mysqldump的選項,通過mysqldump –help可以查到。

database: 代表將要備份的數(shù)據(jù)庫

tables: 代表將要備份的表,如果不指定任何表,則備份整個數(shù)據(jù)庫。

使用 mysqldump進行備份非常簡單,如果要備份數(shù)據(jù)庫” phpbb_db_backup ”,使用命令:

#mysqldump –u -p phpbb_db_backup /usr/backups/mysql/ phpbb_db_backup.2005.5.6

還可以使用gzip命令對備份文件進行壓縮:

#mysqldump phpbb_db_backup | gzip /usr/backups/mysql/ phpbb_db_backup.2005.5.6。gz

恢復數(shù)據(jù)使用命令:

#mysql –u -p phpbb_db_backup /usr/backups/mysql/phpbb_db_backup.2005

怎么定時自動備份mysql數(shù)據(jù)表

打開navicat客戶端,連上mysql后,雙擊左邊你想要備份的數(shù)據(jù)庫。點擊“計劃”,再點擊“新建批處理作業(yè)”。

雙擊上面的可用任務,它就會到下面的列表里去,代表你選擇了這個任務。

點擊保存,彈出個命名對話框,給這個任務取個名字,點擊“確定”。

點擊“設置”計劃任務。

彈出的對話框,選擇“計劃”,再點擊“新建”。

這里設置為從2014年1月24號起每天早上九點備份該數(shù)據(jù)庫。如果你想提高備份頻率、或者設置備份截止日期,請點擊“高級”。

高級選項可以把備份設置的更精細,比如這里設置的是在24小時內(nèi)每隔2小時就備份一次。加上前面的基本設置,任務計劃就是:從2014年1月24號開始,每天九點,每隔2小時備份一次,每天的備份都持續(xù)24小時。

最后,輸入電腦密碼就大功告成。

mysql到底如何備份

數(shù)據(jù)備份是數(shù)據(jù)容災的最后一道防線,即便有著兩地三中心的架構,備份也依然重要。如果備份出問題,備份時影響了交易業(yè)務,備份數(shù)據(jù)無法恢復,這些也是企業(yè)難以承受的。所以選擇合適的備份工具尤為重要。

每個企業(yè)級數(shù)據(jù)庫都會有配套的備份工具,MEB(MySQL Enterprise Backup)就是MySQL企業(yè)版中非常重要的工具之一,是為企業(yè)級客戶提供的數(shù)據(jù)備份方案。

Xtrabackup一直作為MEB 開源版?zhèn)涮ザ嬖冢瑥腗ySQL 8.0開始情況可能會變得有所不同。

在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB備份/恢復體驗會更好,目前xtrabackup還不支持這些特性。

MySQL 企業(yè)版還有哪些功能?

特性1:Backup Lock

8.0之前使用xtrabackup或MEB做物理備份,為了保證備份時InnoDB引擎表與其他引擎數(shù)據(jù)文件、及binlog日志的一致性會上全局讀鎖,再拷貝非InnoDB文件,這期間MySQL會變成只讀,數(shù)據(jù)無法寫入。表數(shù)量越多,可能加上時間越長,如果使用的xtrabackup 不小心沒加rsync參數(shù),逐個拷貝frm文件,鎖定時間會更長,對業(yè)務影響較大。

我曾遇到過部署在虛擬機的實例有12000多張表,當時使用的xtrabackup,備份腳本中沒加rsync參數(shù),結果鎖了十幾分鐘,而MEB就沒有這樣的問題。

MySQL 8.0支持輕量級備份鎖 LOCK INSTANCE FOR BACKUP,數(shù)據(jù)字典也重構了由InnoDB存儲。若不創(chuàng)建非InnoDB表,MEB默認使用備份鎖獲取binlog日志一致性位置,并阻止DDL操作,但不影響DML操作。

只有InnoDB表,僅上備份鎖

請點擊輸入圖片描述

若有非InnoDB表,上全局鎖

請點擊輸入圖片描述

特性2:Redo Log Archiving

MEB能做到在線熱備,備份時不影響數(shù)據(jù)庫讀寫,這是利用了InnoDB事務日志,在備份期間持續(xù)監(jiān)視redo log的變化,讀取增量變化,寫入到ibbackup_logfile,也就不需要上鎖來保障備份一致性。(對非InnoDB的文件需要上讀鎖拷貝)

如果備份期間數(shù)據(jù)庫寫入負載特別大,而寫入ibbackup_logfile速度較慢,redo log size也不大,很可能會出現(xiàn)ibbackup_logfile的寫入速度跟不上redo log記錄生成速度,redo log 空間不夠時需要覆寫日志文件,那么來不及寫入ibbackup_logfile的記錄會丟失,導致備份失敗。

MEB 4.1對此做了優(yōu)化,將redo log處理線程拆分成多線程分工合作,提高處理redo log的效率,降低了redo log覆寫造成備份失敗的概率,但redo log新增速度和ibbackup_logfile寫入速度懸殊太大,問題依然會發(fā)生。

MySQL 8.0.17支持了redo log archiving 徹底解決了此問題,備份前設置innodb_redo_log_archive_dirs,指定redo log歸檔目錄。MEB備份時自動開啟日志歸檔,當checkpoint時會將舊記錄歸檔到此目錄,后續(xù)從歸檔文件中讀取redo日志記錄,避免了覆寫可能導致的redo記錄丟失。

請點擊輸入圖片描述

注意:innodb_redo_log_archive_dirs 不能在數(shù)據(jù)目錄下,目錄權限要求是700

特性3:Page Tracking

Page Tracking 是為優(yōu)化增量備份效率,減少不必要的數(shù)據(jù)頁掃描。

增量備份當前有3種掃描模式:

page-track:利用LSN精確跟蹤上次備份之后被修改頁面,僅復制這些頁面,效率最快。

optimistic:掃描上次備份之后被修改的InnoDB 數(shù)據(jù)文件中,找出并拷貝修改的頁面。依賴系統(tǒng)時間,使用存在限制。

full-scan:掃描所有InnoDB數(shù)據(jù)文件,找出并拷貝自上次備份之后修改的頁面,效率最慢

1、利用page-track增量備份,需先安裝備份組件

mysql INSTALL COMPONENT "";

2、在全備前開啟page-track

SELECT mysqlbackup_page_track_set(true);

3、全備之后,做增量備份時指定若滿足page tracking條件,默認會使用page-track模式,否則會使用full-scan模式,也可以指定--incremental=page-track。

mysqlbackup --incremental-backup-dir=backup_incr --trace=3 --incremental=page-track --incremental-base=history:last_full_backup backup

incremental-base有3種選擇

last_backup:基于前一次備份做增備,前一次備份可能是增備,也可能是全備。這種方式全備之間可能會有多個增備,每次增量可能比較小,但恢復時需要逐個合并。

last_full_backup:基于前一次全備做增備。這種方式增備會越往后體積可能越大,但恢復時只需要合并最后一次增量備份。

dir:基于前一次的備份目錄,前一次備份可能是增備,也可能是全備。

測試對比full-scan 和page-track ,在變更頁小于總體50%的情況下 ,備份效率至少能有1倍的速度提升。

page-track 模式 磁盤讀寫均衡,說明讀寫的都是修改頁面。

請點擊輸入圖片描述

full-scan模式 磁盤讀寫差別很大,說明讀了很多未修改的頁面。

請點擊輸入圖片描述

mysql備份表的幾種方式

基于之前的文章方法,加入批處理命令即可實現(xiàn)自動備份。只是由于批處理命令中對于備份文件的名字按照時間命名比較特別,所以特別整理一文。

1、復制date文件夾備份

============================

假想環(huán)境:

MySQL 安裝位置:C:\MySQL

論壇數(shù)據(jù)庫名稱為:bbs

數(shù)據(jù)庫備份目的地:C:\db_bak\

============================

新建db_bak.bat,寫入以下代碼

*******************************Code Start*****************************

net stop mysql

xcopy c:\mysql\data\bbs\*.* c:\db_bak\bbs\%date:~0,10%\ /S /I

net start mysql

*******************************Code End *****************************

然后使用Windows的“計劃任務”定時執(zhí)行該批處理腳本即可。(例如:每天凌晨3點執(zhí)行back_db.bat)

釋:備份和恢復的操作都比較簡單,完整性比較高,控制備份周期比較靈活,例如,用%date:~0,10%。此方法適合有獨立主機但對mysql沒有管理

經(jīng)驗的用戶。缺點是占用空間比較多,備份期間mysql會短時間斷開(例如:針對30M左右的數(shù)據(jù)庫耗時5s左右),針對%date:~0,10%的用法

參考 。

2、mysqldump備份成sql文件

==============

假想環(huán)境:

MySQL 安裝位置:C:\MySQL

論壇數(shù)據(jù)庫名稱為:bbs

MySQL root 密碼:123456

數(shù)據(jù)庫備份目的地:D:\db_backup\

腳本:

rem *******************************Code Start*****************************

@echo off

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"

C:\MySQL\bin\mysqldump --opt -u root --password=123456 bbs D:\db_backup\bbs_%Ymd%.sql

@echo on

rem *******************************Code End*****************************

將以上代碼保存為backup_db.bat

然后使用Windows的“計劃任務”定時執(zhí)行該腳本即可。(例如:每天凌晨5點執(zhí)行back_db.bat)

說明:此方法可以不用關閉數(shù)據(jù)庫,并且可以按每一天的時間來名稱備份文件。

通過%date:~5,2%來組合得出當前日期,組合的效果為yyyymmdd,date命令得到的日期格式默認為yyyy-mm-dd(如果不是此格式可以通過pause命令來暫停命令行窗口看通過%date:~,20%得到的當前計算機日期格式),所以通過%date:~5,2%即可得到日期中的第五個字符開始的兩個字符,例如今天為2009-02-05,通過%date:~5,2%則可以得到02。(日期的字符串的下標是從0開始的)

3、利用WinRAR對MySQL數(shù)據(jù)庫進行定時備份。

對于MySQL的備份,最好的方法就是直接備份MySQL數(shù)據(jù)庫的Data目錄。下面提供了一個利用WinRAR來對Data目錄進行定時備份的方法。

首先當然要把WinRAR安裝到計算機上。

將下面的命令寫入到一個文本文件里

*******************************Code Start*****************************

net stop mysql

c:\progra~1\winrar\winrar a -ag -k -r -s d:\mysql.rar d:\mysql\data

net start mysql

*******************************Code End*****************************

保存,然后將文本文件的擴展名修改成CMD。進入控制面版,打開計劃任務,雙擊“添加計劃任務”。在計劃任務向導中找到剛才的CMD文件,接著為這個任務指定一個運行時間和運行時使用的賬號密碼就可以了。

這種方法缺點是占用時間比較多,備份期間壓縮需要時間,mysql斷開比第一種方法更多的時間,但是對于文件命名很好。

mysql備份方式有哪些

數(shù)據(jù)庫最直接的備份方法就是使用自帶的mysqldump命令進行備份。

1、 mysqldump命令備份數(shù)據(jù)

在MySQL中提供了命令行導出數(shù)據(jù)庫數(shù)據(jù)以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現(xiàn)數(shù)據(jù)庫內(nèi)容的導出dump,首先我們簡單了解一下mysqldump命令用法:

#MySQLdump常用

mysqldump -u root -p --databases 數(shù)據(jù)庫1 數(shù)據(jù)庫2 xxx.sql

2、 mysqldump常用操作實例

2.1備份全部數(shù)據(jù)庫的數(shù)據(jù)和結構

mysqldump -uroot -p123456 -A /data/mysqlDump/mydb.sql

2.2備份全部數(shù)據(jù)庫的結構(加 -d 參數(shù))

mysqldump -uroot -p123456 -A -d /data/mysqlDump/mydb.sql

2.3 備份全部數(shù)據(jù)庫的數(shù)據(jù)(加 -t 參數(shù))

mysqldump -uroot -p123456 -A -t /data/mysqlDump/mydb.sql

2.4 備份單個數(shù)據(jù)庫的數(shù)據(jù)和結構(,數(shù)據(jù)庫名mydb)

mysqldump -uroot-p123456 mydb /data/mysqlDump/mydb.sql

2.5 備份單個數(shù)據(jù)庫的結構

mysqldump -uroot -p123456 mydb -d /data/mysqlDump/mydb.sql

2.6 備份單個數(shù)據(jù)庫的數(shù)據(jù)

mysqldump -uroot -p123456 mydb -t /data/mysqlDump/mydb.sql2

2.7 備份多個表的數(shù)據(jù)和結構(數(shù)據(jù),結構的單獨備份方法與上同)

mysqldump -uroot -p123456 mydb t1 t2 /data/mysqlDump/mydb.sql

2.8 一次備份多個數(shù)據(jù)庫

mysqldump -uroot -p123456 --databases db1 db2 /data/mysqlDump/mydb.sql

mysql如何快速備份

來源:知乎

河南-老宋(志強)

問題描述的不是非常的清晰

使用mysqldump備份時一般會會加上--single-transaction參數(shù),這里假設你是加了這個參數(shù)。

一 加速備份

1 加了single-transaction參數(shù) 備份時 需要先flush table with read lock 這個過程中會有一個鎖表的過程,如果有事務或語句正在執(zhí)行,沒有結束,那么備份進程會一直等待,并且阻塞別的事務,那么也會影響業(yè)務。所以要先確認備份的時候沒有大的事務在運行。

具體 single-transaction的加鎖可以參考 我的博客:mysqldump備份時加single-transaction會不會加鎖

2 mysqldump是單進程的,沒有辦法并行,但現(xiàn)在機器的瓶頸多是出現(xiàn)在IO方面,可以使用更了的IO設備加快速度

3 mysqldump時如果空間夠的話,不要邊壓縮邊備份

二 加速恢復

1 關閉binlog:不寫入Binlog會大大的加快數(shù)據(jù)導入的速度

2 innodb_flush_log_at_trx_commit=0

3 更好的配置

建議:

一 如果非要使用邏輯備份,可以考慮mysqldumper, mysqlpump(5.7)這兩個工具去備份,這兩個在備份的時候支持并行操作,mysqldumper還可以對單表進行恢復,在只需要恢復單表的情況下,恢復速度會大大加快

二 使用物理備份 xtrabackup (open source),MEB(oracle提供,收費): 他們的備份原理是基于mysql crash recover, 備份速度 是和邏輯備份的相差不太大。但是恢復速度卻有很大的提升。

邏輯備份 備出來的是sql語句文件,恢復時需要一條一條的執(zhí)行sql,所以恢復很慢。

而物理備份和還原的速度 相當于直接copy文件,所以恢復的時候性能有很大的提升

并且這兩個軟件還支持并行,效果更好。

邏輯備份最大的優(yōu)點是 備份好的文件經(jīng)壓縮后占用空間較小,最大缺點恢復太慢

物理備份可以很快的恢復,但是備份好的文件壓縮后占用空間比邏輯備份要大。

使用云,你做為用戶可以不用考慮這些事情。

附:xtrabackup的并行參數(shù)

Parallel local backups

Parallel compression

Parallel encryption

Parallel apply-log

Gary Chen

《MySQL DBA修煉之道》作者。從事數(shù)據(jù)庫領域10多年。

1.一般來說,你只有靠更好的硬件. 軟件沒有大的變動的情況下不可能突破硬件瓶頸;

2. mysqldump默認的導出選項已經(jīng)可以了,單進程的工具不要期望太多,TommyChiu介紹的工具可試試.;

3. 導出的時候觀察下系統(tǒng),如果是cpu瓶頸,你基本無解.如果是swap問題,看是否是因為內(nèi)存不夠;

4. 恢復的時候主要是一個參數(shù):innodb_flush_log_at_trx_commit=2

TommyChiu

mk-parallel-dump 試試

本文名稱:mysql怎么備份表 mysql備份表sql
本文鏈接:http://muchs.cn/article14/dossjde.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站改版、網(wǎng)站內(nèi)鏈、ChatGPT、虛擬主機網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設