mysql資料庫太大了怎麼備份,mysql資料庫如何備份?

時間 2022-02-06 19:52:40

1樓:du瓶邪

命令:mysqlhotcopy

這個命令會在拷貝檔案之前會把表鎖住,並把資料同步到資料檔案中,以避免拷貝到不完整的資料檔案,是最安全快捷的備份方法。

命令的使用方法是:

mysqlhotcopy -u root -pdb1 db2 … dbn

如果需要備份全部資料庫,可以加上–regexp=」.*」引數。

mysqlhotcopy命令可自動完成資料鎖定工作,備份時不用關閉伺服器。

它還可以重新整理日誌,使備份檔案和日誌檔案的檢查點能保持同步。

2樓:愛可生雲資料庫

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

每個企業級資料庫都會有配套的備份工具,meb(mysql enterprise backup)就是mysql企業版中非常重要的工具之一,是為企業級客戶提供的資料備份方案。

xtrabackup一直作為meb 開源版備胎而存在,從mysql 8.0開始情況可能會變得有所不同。

在 mysql 8.0的backup lock、redo log archiving、page tracking等新特性的加持下,meb備份/恢復體驗會更好,目前xtrabackup還不支援這些特性。

mysql 企業版還有哪些功能?

特性1:backup lock

8.0之前使用xtrabackup或meb做物理備份,為了保證備份時innodb引擎表與其他引擎資料檔案、及binlog日誌的一致性會上全域性讀鎖,再拷貝非innodb檔案,這期間mysql會變成唯讀,資料無法寫入。表數量越多,可能加上時間越長,如果使用的xtrabackup 不小心沒加rsync引數,逐個拷貝frm檔案,鎖定時間會更長,對業務影響較大。

我曾遇到過部署在虛擬機器的例項有12000多張表,當時使用的xtrabackup,備份指令碼中沒加rsync引數,結果鎖了十幾分鐘,而meb就沒有這樣的問題。

mysql 8.0支援輕量級備份鎖 lock instance for backup,資料字典也重構了由innodb儲存。若不建立非innodb表,meb預設使用備份鎖獲取binlog日誌一致性位置,並阻止ddl操作,但不影響dml操作。

只有innodb表,僅上備份鎖

請點選輸入**描述

若有非innodb表,上全域性鎖

請點選輸入**描述

特性2:redo log archiving

如果備份期間資料庫寫入負載特別大,而寫入ibbackup_logfile速度較慢,redo log size也不大,很可能會出現ibbackup_logfile的寫入速度跟不上redo log記錄生成速度,redo log 空間不夠時需要覆寫日誌檔案,那麼來不及寫入ibbackup_logfile的記錄會丟失,導致備份失敗。

meb 4.1對此做了優化,將redo log處理執行緒拆分成多執行緒分工合作,提高處理redo log的效率,降低了redo log覆寫造成備份失敗的概率,但redo log新增速度和ibbackup_logfile寫入速度懸殊太大,問題依然會發生。

mysql 8.0.17支援了redo log archiving 徹底解決了此問題,備份前設定innodb_redo_log_archive_dirs,指定redo log歸檔目錄。

meb備份時自動開啟日誌歸檔,當checkpoint時會將舊記錄歸檔到此目錄,後續從歸檔檔案中讀取redo日誌記錄,避免了覆寫可能導致的redo記錄丟失。

請點選輸入**描述

注意:innodb_redo_log_archive_dirs 不能在資料目錄下,目錄許可權要求是700

特性3:page tracking

page tracking 是為優化增量備份效率,減少不必要的資料頁掃瞄。

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

page-track:利用lsn精確跟蹤上次備份之後被修改頁面,僅複製這些頁面,效率最快。

optimistic:掃瞄上次備份之後被修改的innodb 資料檔案中,找出並拷貝修改的頁面。依賴系統時間,使用存在限制。

full-scan:掃瞄所有innodb資料檔案,找出並拷貝自上次備份之後修改的頁面,效率最慢

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

mysql> install component "file://component_mysqlbackup";

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模式 磁碟讀寫差別很大,說明讀了很多未修改的頁面。

請點選輸入**描述

網頁鏈結

3樓:匿名使用者

本地:1.進入mysql目錄下的bin資料夾:e:回車;

e:\>cd mysql\bin 回車

2.匯出資料庫:mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名

範例:mysqldump -uroot -p abc > abc.sql

(匯出資料庫abc到abc.sql檔案)

提示輸入密碼時,輸入該資料庫使用者名稱的密碼(如果匯出單張表的話在資料庫名後面輸入表名即可)

如果提示locktable錯誤:則在mysqldump -uroot -p abc後面空一格加上--skip-lock-tables

3、會看到檔案news.sql自動生成到bin檔案下?

mysql命令列匯入資料庫:

1,將要匯入的.sql檔案移至bin檔案下,這樣的路徑比較方便

2,同上面匯出的第1步

3,進入mysql:mysql -u 使用者名稱 -p

如我輸入的命令列:mysql -u root -p?? (輸入同樣後會讓你輸入mysql的密碼)

4,在mysql-front中新建你要建的資料庫,這時是空資料庫,如新建乙個名為news的目標資料庫

5,輸入:mysql>use 目標資料庫名

如我輸入的命令列:mysql>use news;

6,匯入檔案:mysql>source 匯入的檔名;

如我輸入的命令列:mysql>source news.sql;

mysql備份和還原,都是利用mysqldump、mysql和source命令來完成的。

1.win32下mysql的備份與還原

1.1 備份

開始選單 | 執行 | cmd |利用「cd \program files\mysql\mysql server 5.0\bin」命令進入bin資料夾 | 利用「mysqldump? -u 使用者名稱 -p databasename >exportfilename」匯出資料庫到檔案,如mysqldump -u root -p voice>voice.

sql,然後輸入密碼即可開始匯出。

1.2 還原

進入mysql command line client,輸入密碼,進入到「mysql>」,輸入命令"show databases;",回車,看看有些什麼資料庫;建立你要還原的資料庫,輸入"create database voice;",回車;切換到剛建立的資料庫,輸入"use voice;",回車;匯入資料,輸入"source voice.sql;",回車,開始匯入,再次出現"mysql>"並且沒有提示錯誤即還原成功。

2.linux下mysql的備份與還原

2.1 備份

[root@localhost ~]# cd /var/lib/mysql (進入到mysql庫目錄,根據自己的mysql的安裝情況調整目錄)

[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,輸入密碼即可。

2.2 還原

法一:[root@localhost ~]# mysql -u root -p 回車,輸入密碼,進入mysql的控制台"mysql>",同1.2還原。

法二:[root@localhost ~]# cd /var/lib/mysql (進入到mysql庫目錄,根據自己的mysql的安裝情況調整目錄)

[root@localhost mysql]# mysql -u root -p voice

mysql資料庫如何備份?

4樓:不管你哪美

mysql資料庫備份與還原

備份和恢復資料

生成sql指令碼

在控制台使用mysqldump命令可以用來生成指定資料庫的指令碼文字,但要注意,指令碼文字中只包含資料庫的內容,而不會存在建立資料庫的語句!所以在恢復資料時,還需要自已手動建立乙個資料庫之後再去恢復資料。

mysqldump –u使用者名稱 –p密碼 資料庫名》生成的指令碼檔案路徑

現在可以在c盤下找到mydb1.sql檔案了!

注意,mysqldump命令是在windows控制台下執行,無需登入mysql!!!

執行sql指令碼

執行sql指令碼需要登入mysql,然後進入指定資料庫,才可以執行sql指令碼!!!

執行sql指令碼不只是用來恢復資料庫,也可以在平時編寫sql指令碼,然後使用執行sql 指令碼來運算元據庫!大家都知道,在黑屏下編寫sql語句時,就算發現了錯誤,可能也不能修改了。所以我建議大家使用指令碼檔案來編寫sql**,然後執行之!

source c:\mydb1.sql

注意,在執行指令碼時需要先行核查當前資料庫中的表是否與指令碼檔案中的語句有衝突!例如在指令碼檔案中存在create table a的語句,而當前資料庫中已經存在了a表,那麼就會出錯!

還可以通過下面的方式來執行指令碼檔案:

mysql -uroot -p123 mydb1

mysql –u使用者名稱 –p密碼 資料庫《要執行指令碼檔案路徑

這種方式無需登入mysql!

怎麼備份和還原mysql資料庫

備份資料庫 使用mysqldump命令備份資料庫 還原資料庫 1 使用mysql命令還原資料庫 將game backup.sql 還原至 game 資料庫 2 使用source命令還原資料庫 如果資料庫過大,建議可以使用source命令 mysql資料庫備份與還原 備份和恢復資料 生成sql指令碼 ...

請問mysql怎麼自動備份資料庫

在linux下 可以寫乙個shell指令碼,由crontab定時呼叫這個指令碼以實現備份資料庫。參考 資料備份是資料容災的最後一道防線,即便有著兩地三中心的架構,備份也依然重要。如果備份出問題,備份時影響了交易業務,備份資料無法恢復,這些也是企業難以承受的。所以選擇合適的備份工具尤為重要。每個企業級...

mysql資料庫備份的幾種方法,Mysql資料庫備份的幾種方法

資料備份是資料容災的最後一道防線,即便有著兩地三中心的架構,備份也依然重要。如果備份出問題,備份時影響了交易業務,備份資料無法恢復,這些也是企業難以承受的。所以選擇合適的備份工具尤為重要。每個企業級資料庫都會有配套的備份工具,meb mysql enterprise backup 就是mysql企業...

mysql資料庫備份的問題,用mysqldump備份資料庫,需要把mysql關閉嗎?

你的語句有錯。如果mysqldump放在了system32目錄下的話,可以直接這樣使用,沒有的話你就得用全路徑才行,而且不用你登入到mysql裡面。c documents and settings administrator d mysql bin mysqldump.exe u root p 資料...

mysql在dos命令下備份還原資料庫

備份資料庫 mysqldump u root p 123456 database name d database name backup 20071126.sql 恢復資料庫 刪除原有資料庫,建立資料庫,把備份資料庫匯入。mysqladmin uroot p123456 drop database ...