1樓:匿名使用者
1、備份一個資料庫
mysqldump基本語法:
mysqldump -u username -p dbname table1 table2 ...-> backupname.sql
其中:dbname參數列示資料庫的名稱;
table1和table2參數列示需要備份的表的名稱,為空則整個資料庫備份;
backupname.sql參數列設計備份檔案的名稱,檔名前面可以加上一個絕對路徑。通常將資料庫被分成一個字尾名為sql的檔案;
使用root使用者備份test資料庫下的person表
mysql怎樣利用對所有資料庫進行備份的備份
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模式 磁碟讀寫差別很大,說明讀了很多未修改的頁面。
請點選輸入**描述
如何實現mysql「實時備份」
3樓:
實現兩個mysql資料庫之間同步同步原理:
mysql 為了實現replication 必須開啟bin-log 項,也是開啟二進位制的mysql 日誌記錄選項。mysql 的bin log 二
進位制日誌,可以記錄所有影響到資料庫表中儲存記錄內容的sql 操作,如insert / update / delete 操作,而不記錄
select 這樣的操作。因此,我們可以通過二進位制日誌把某一時間段內丟失的資料可以恢復到資料庫中(如果二進位制日
志中記錄的日誌項,包涵資料庫表中所有資料,那麼, 就可以恢復本地資料庫的全部資料了)。 而這個二進位制日誌,
如果用作遠端資料庫恢復,那就是replication 了。這就是使用replication 而不用sync 的原因。這也是為什麼要設
置bin-log = 這個選項的原因。
在同步過程中,最重要的同步參照物,就是同步使用那一個二進位制日誌檔案,從那一條記錄開始同步。下面就介紹
下怎樣實現兩個mysql資料庫之間的主從同步。
一、 概述
mysql從3.23.15版本以後提供資料庫複製(replication)功能,利用該功能可以實現兩個資料庫同步、主從模式、
互相備份模式的功能。本文件主要闡述瞭如何在linux系統中利用mysql的replication進行雙機熱備的配置。
如何備份整個mysql資料庫
4樓:海里的月光
1、首先開啟mysql資料庫軟體進入軟體主介面。
2、然後再左側樹裡開啟自己的的資料庫。
3、然後需要點選需要備份的資料庫名。
4、如圖所示為開啟資料庫後介面。
5、然後需要點選轉儲sql檔案選項。
6、然後需要開啟選擇儲存檔案路徑並選擇儲存。
7、點選儲存即可在路徑備份好格式為sql的資料庫檔案。
5樓:愛可生雲資料庫
資料備份是資料容災的最後一道防線,即便有著兩地三中心的架構,備份也依然重要。如果備份出問題,備份時影響了交易業務,備份資料無法恢復,這些也是企業難以承受的。所以選擇合適的備份工具尤為重要。
每個企業級資料庫都會有配套的備份工具,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模式 磁碟讀寫差別很大,說明讀了很多未修改的頁面。
請點選輸入**描述
MySQL全備份如何只恢復庫或者表
看不懂,沒用,機都開不了,還備份 mysql中怎麼單獨備份一個表?備份單個表的語句為 mysqldump u root p 資料庫名 tb name d bbb.sql 備份的目的有三個 做災難恢復 對損壞的資料進行恢復和還原 需求改變 因需求改變而需要把資料還原到改變以前 測試 測試新功能是否可用...
如何用mysql命令備份和恢復,如何用source 命令匯入mysql資料庫?
mysql資料庫備份和還原常用的命令是進行mysql資料庫備份和還原的關鍵,沒有命令,什麼都無從做起,更談不上什麼備份還原,只有給系統這個命令,讓它去執行,才能完成mysql資料庫備份和還原的操作,下面為大家分享一下操作的常用的命令。一 備份命令 1 備份mysql資料庫的命令 mysqldump ...
如何檢視MySQL索引,怎麼檢視mysql 索引的建立語句
用phpmyadmin檢視 開啟你要檢視的表,點選結構,屬性就是,你可以新增索引,刪除索引。如何檢視mysql索引 怎麼檢視mysql 索引的建立語句 non unique 如果索引不能包括重複詞,則為0。如果可以,則為1。key name 索引的名稱。seq in index 索引中的列序列號,從...