真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql中怎么備份表 mysql備份表sql

如何對mysql備份

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

創(chuàng)新互聯(lián)技術團隊10年來致力于為客戶提供網(wǎng)站設計、網(wǎng)站制作、高端網(wǎng)站設計、全網(wǎng)整合營銷推廣、搜索引擎SEO優(yōu)化等服務。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術團隊,先后服務、推廣了上1000+網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構單位。

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

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

Xtrabackup一直作為MEB 開源版?zhèn)涮ザ嬖?,從MySQL 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如何備份數(shù)據(jù)

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

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

#MySQLdump常用

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

1.2、 mysqldump常用操作實例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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中怎么備份表 mysql備份表sql
文章分享:http://weahome.cn/article/dosiico.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部