欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL數(shù)據(jù)庫備份以及常用備份工具集合

 更新時間:2015年08月31日 11:02:12   投稿:lijiao  
數(shù)據(jù)庫備份種類按照數(shù)據(jù)庫大小備份,有四種類型,分別應(yīng)用于不同場合。本文將MySQL 數(shù)據(jù)庫備份種類以及常用備份工具進(jìn)行匯總,方便大家學(xué)習(xí)。

一、數(shù)據(jù)庫備份種類

按照數(shù)據(jù)庫大小備份,有四種類型,分別應(yīng)用于不同場合,下面簡要介紹一下:

1.1完全備份

這是大多數(shù)人常用的方式,它可以備份整個數(shù)據(jù)庫,包含用戶表、系統(tǒng)表、索引、視圖和存儲過程等所有數(shù)據(jù)庫對象。但它需要花費更多的時間和空間,所以,一般推薦一周做一次完全備份。

1.2事務(wù)日志備份

事務(wù)日志是一個單獨的文件,它記錄數(shù)據(jù)庫的改變,備份的時候只需要復(fù)制自上次備份以來對數(shù)據(jù)庫所做的改變,所以只需要很少的時間。為了使數(shù)據(jù)庫具有魯棒性,推薦每小時甚至更頻繁的備份事務(wù)日志。

1.3差異備份

也叫增量備份。它是只備份數(shù)據(jù)庫一部分的另一種方法,它不使用事務(wù)日志,相反,它使用整個數(shù)據(jù)庫的一種新映象。它比最初的完全備份小,因為它只包含自上次完全備份以來所改變的數(shù)據(jù)庫。它的優(yōu)點是存儲和恢復(fù)速度快。推薦每天做一次差異備份。

1.4文件備份

數(shù)據(jù)庫可以由硬盤上的許多文件構(gòu)成。如果這個數(shù)據(jù)庫非常大,并且一個晚上也不能將它備份完,那么可以使用文件備份每晚備份數(shù)據(jù)庫的一部分。由于一般情況下數(shù)據(jù)庫不會大到必須使用多個文件存儲,所以這種備份不是很常用。

按照數(shù)據(jù)庫的狀態(tài)可分為三種:

1.冷備份,此時數(shù)據(jù)庫處于關(guān)閉狀態(tài),能夠較好的保證數(shù)據(jù)庫的完整性。

2.熱備份,數(shù)據(jù)庫正處于運行狀態(tài),這種方法依賴于數(shù)據(jù)庫的[1] 日志文件進(jìn)行備份。

3.邏輯備份,使用軟件從數(shù)據(jù)庫中提取數(shù)據(jù)并將結(jié)果寫到一個文件上。

二、備份工具簡介

mysql按照備份恢復(fù)方式分為邏輯備份和物理備份。邏輯備份是備份sql語句,在恢復(fù)的時候執(zhí)行備份的sql語句實現(xiàn)數(shù)據(jù)庫數(shù)據(jù)的重現(xiàn),物理備份就是備份數(shù)據(jù)文件了,比較形象點就是cp下數(shù)據(jù)文件,但真正備份的時候自然不是的cp這么簡單。

這2種備份各有優(yōu)劣,一般來說,物理備份恢復(fù)速度比較快,占用空間比較大,邏輯備份速度比較慢,占用空間比較小。

官方地址:http://dev.mysql.com/doc/refman/5.6/en/backup-and-recovery.html

2.1 mysqldump工具

Mysqldump是mysql自帶的備份工具,目錄在bin目錄下面:/usr/local/mysql/bin/mysqldump,支持基于innodb的熱備份。但是由于是邏輯備份,所以速度不是很快,適合備份數(shù)據(jù)比較小的場景。Mysqldump完全備份+二進(jìn)制日志可以實現(xiàn)基于時間點的恢復(fù)。

對myisam存儲引擎的表,只能使用溫備份,這個時候要防止數(shù)據(jù)的寫入,所以先加上讀鎖。這個時候也可以進(jìn)入數(shù)據(jù)庫手動加讀鎖,不過這樣比較麻煩,可以在mysqldump工具中直接有一個加鎖的選擇,就是 --lock-all-tables ,例如mysqldump --databases test --lock-all-tables --flush-logs > /tmp/backup_test_`date+%F-%H-%M`.sql。

如果是備份單張表,直接在庫名字test后面加上表名字即可。

對于innodb存儲引擎表,可以熱備,不必對數(shù)據(jù)庫進(jìn)行加鎖的操作,加一個選項可以進(jìn)行熱備份,--single-transaction,例如:mysqldump --databases test --single-transaction --flush-logs--master-data=2> /tmp/backup_test_`date +%F-%H-%M`.sql。

PS:注意點,恢復(fù)的時候記得關(guān)閉二進(jìn)制日志:

mysql> set sql_log_bin=0;
因為這是基于邏輯備份方式,所以執(zhí)行sql會插入數(shù)據(jù),會記錄到二進(jìn)制日志里面去,因為這事恢復(fù),所以插入的二進(jìn)制日志基本沒有啥意思,可以關(guān)閉掉,縮短恢復(fù)時間。

2.2基于LVM快照備份

在物理備份中,有基于文件系統(tǒng)的物理備份(LVM的快照),也可以直接用tar之類的命令對整個數(shù)據(jù)庫目錄進(jìn)行打包備份,但是這些只能進(jìn)行泠備份,不同的存儲引擎?zhèn)浞莸囊膊灰粯樱琺yisam自動備份到表級別,而innodb不開啟獨立表空間的話只能備份整個數(shù)據(jù)庫。

下面就介紹下使用LVM的快照功能進(jìn)行備份為了安全,首先在數(shù)據(jù)庫上施加讀鎖

mysql>FLUSH TABLES WITH READ LOCK
刷新一下二進(jìn)制日志,便于做時間點恢復(fù)

mysql>FLUSH LOGS
然后創(chuàng)建快照卷

lvcreate –L 1G –s –n data-snap –p –r/dev/myvg/mydata
最后進(jìn)入數(shù)據(jù)庫釋放讀鎖

UNLOCK TABLES
掛載快照卷進(jìn)行備份

mount –r /dev/myvg/data-snap /mnt/snap
然后對/mnt/snap下的文件進(jìn)行打包備份

還原的時候,關(guān)閉mysqld,然后備份二進(jìn)制日志后將原來備份的文件還原進(jìn)去,然后通過二進(jìn)制日志還原到出錯的時間點(通過二進(jìn)制還原時間點的時候不要忘了暫時關(guān)閉二進(jìn)制日志)

在2010年到2012年之間,mysql數(shù)據(jù)庫部署在亞馬遜的云環(huán)境中,他們提供了LVM快照,蠻方便快捷的,使用lvm快照,在亞馬遜的萬兆網(wǎng)絡(luò)下,恢復(fù)起來也迅速無比。

2.3 tar包備份

0,準(zhǔn)備從庫第一次數(shù)據(jù)備份,臨時鎖所有表,開啟窗口1

mysql> flush tables with read lock; 
Query OK, 0 rows affected (0.00 sec) 
mysql> show master status; 
+++++ 
| File | Position | Binlog_Do_DB |Binlog_Ignore_DB | 
| mysql-bin.000003 | 194554 | | | 
1 row in set (0.00 sec) 

PS:這個窗口不能exit,要一直保持知道tar完包為止。

--重新開一個shell窗口,去數(shù)據(jù)文件目錄tar包

開啟窗口2

[root@myfstv_21_11 data]# tar -zcvf mysqla1.tar.gz mysqla 
tar -zcvf mysqla1.tar.gz mysqla 壓縮完畢 

切換到窗口1,執(zhí)行解鎖命令

mysql> unlocktables; 
Query OK, 0 rows affected (0.00 sec) 
mysql> 
 copy tar包到另外一個mysql庫服務(wù)器上面,覆蓋data目錄,然后重啟mysql數(shù)據(jù)庫服務(wù)。

 2.4 percona提供的xtrabackup工具

支持innodb的物理熱備份,支持完全備份,增量備份,而且速度非???,支持innodb存儲引起的數(shù)據(jù)在不同數(shù)據(jù)庫之間遷移,支持復(fù)制模式下的從機(jī)備份恢復(fù)備份恢復(fù),為了讓xtrabackup支持更多的功能擴(kuò)展,可以設(shè)立獨立表空間,打開 innodb_file_per_table功能,啟用之后可以支持單獨的表備份。

支持在線熱備與恢復(fù)

大數(shù)據(jù)量的時候,備份恢復(fù)都比較快。

xtrabackup可以實現(xiàn)完全備份,增量備份,以及部分備份。

xtrabackup備份原理

xtraBackup基于InnoDB的crash-recovery功能。它會復(fù)制innodb的data file,由于不鎖表,復(fù)制出來的數(shù)據(jù)是不一致的,在恢復(fù)的時候使用crash-recovery,使得數(shù)據(jù)恢復(fù)一致。

InnoDB維護(hù)了一個redo log,又稱為transaction log,事務(wù)日志,它包含了innodb數(shù)據(jù)的所有改動情況。當(dāng)InnoDB啟動的時候,它會先去檢查data file和transaction log,并且會做二步操作:

xtraBackup在備份的時候, 一頁一頁地復(fù)制innodb的數(shù)據(jù),而且不鎖定表,與此同時,XtraBackup還有另外一個線程監(jiān)視著transactions log,一旦log發(fā)生變化,就把變化過的log pages復(fù)制走。為什么要急著復(fù)制走呢?因為transactions log文件大小有限,寫滿之后,就會從頭再開始寫,所以新數(shù)據(jù)可能會覆蓋到舊的數(shù)據(jù)。

在prepare過程中,XtraBackup使用復(fù)制到的transactionslog對備份出來的innodb data file進(jìn)行crash recovery。

國內(nèi)windows服務(wù)器用戶可以使用:

護(hù)衛(wèi)神好備份軟件 免費版(sqlserver,文件自動備份)

請平臺 p8net mysql管理工具M(jìn)yAdmin v1.0 (mysql 定時備份工具)

以上就是MySQL數(shù)據(jù)庫備份以及常用備份工具匯總,希望大家可以喜歡。

相關(guān)文章

  • Mysql中使用時間查詢的詳細(xì)圖文教程

    Mysql中使用時間查詢的詳細(xì)圖文教程

    在項目開發(fā)中,一些業(yè)務(wù)表字段經(jīng)常使用日期和時間類型,下面這篇文章主要給大家介紹了關(guān)于Mysql中使用時間查詢的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • SQL使用WHERE條件語句的項目實踐

    SQL使用WHERE條件語句的項目實踐

    本文將介紹WHERE子句中使用的通用語法,它還將概述如何在單個WHERE子句中組合多個搜索條件謂詞以更細(xì)粒度的方式過濾數(shù)據(jù),以及如何使用NOT操作符排除而不是包含滿足給定搜索條件的行,感興趣的可以了解一下
    2023-09-09
  • 刪除mysql服務(wù)的具體方法

    刪除mysql服務(wù)的具體方法

    在本篇文章里小編給各位分享了是關(guān)于刪除mysql服務(wù)的具體方法,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • 圖文詳解mysql5.7安裝教程

    圖文詳解mysql5.7安裝教程

    這篇文章主要以圖文結(jié)合的方式為大家詳細(xì)介紹了mysql5.7安裝教程的相關(guān)資料,需要的朋友可以參考下
    2016-05-05
  • MySQL庫表名大小寫的選擇

    MySQL庫表名大小寫的選擇

    一般在數(shù)據(jù)庫使用規(guī)范中,我們都會看到這么一條:庫名及表名一律使用小寫英文。你有沒有思考過,為什么推薦使用小寫呢?庫表名是否應(yīng)該區(qū)分大小寫呢?帶著這些疑問,我們一起來看下本篇文章。
    2021-06-06
  • MySQL雙Master配置的方法詳解

    MySQL雙Master配置的方法詳解

    本篇文章是對MySQL雙Master配置進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • MySQL外鍵設(shè)置的方法實例

    MySQL外鍵設(shè)置的方法實例

    這篇文章主要介紹了MySQL外鍵設(shè)置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • MySQL實現(xiàn)行列轉(zhuǎn)換

    MySQL實現(xiàn)行列轉(zhuǎn)換

    這篇文章介紹了MySQL實現(xiàn)行列轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Mysql 數(shù)據(jù)庫訪問類

    Mysql 數(shù)據(jù)庫訪問類

    Mysql數(shù)據(jù)庫訪問類 實現(xiàn)代碼,對于想學(xué)習(xí)mysql操作類的朋友值得一看
    2009-02-02
  • MySQL通過binlog恢復(fù)數(shù)據(jù)

    MySQL通過binlog恢復(fù)數(shù)據(jù)

    通過了解binlog日志的相關(guān)配置,簡單掌握通過binlog對數(shù)據(jù)庫進(jìn)行數(shù)據(jù)恢復(fù)操作。有此需求的朋友可以參考下
    2021-05-05

最新評論