MySQL資料庫備份以及常用備份工具集合

2022-09-28 19:39:19 字數 4145 閱讀 2663

一、資料庫備份種類

按照資料庫大小備份,有四種型別,分別應用於不同場合,下面簡要介紹一下:

1.1完全備份

這是大多數人常用的方式,它可以備份整個資料庫,包含使用者表、系統表、索引、檢視和儲存過程等所有資料庫物件。但它需要花費更多的時間和空間,所以,一般推薦一周做一次完全備份。

1.2事務日誌備份

事務日誌是乙個單獨的檔案,它記錄資料庫的改變,備份的時候只需要複製自上次備份以來對資料庫所做的改變,所以只需要很少的時間。為了使資料庫具有魯棒性,推薦每小時甚至更頻繁的備份事務日誌。

1.3差異備份

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

1.4檔案備份

資料庫可以由硬碟上的許多檔案構成。如果這個資料庫非常大,並且乙個晚上也不能將它備份完,那麼可以使用檔案備份每晚備份資料庫的一部分。由於一般情況下資料庫不會大到必須使用多個檔案儲存,所以這種備份不是很常用。

按照資料庫的狀態可分為三種:

1.冷備份,此時資料庫處於關閉狀態,能夠較好的保證資料庫的完整性。

2.熱備份,資料庫正處於執行狀態,這種方法依賴於資料庫的[1] 日誌檔案進行備份。

3.邏輯備份,使用軟體從資料庫中提取資料並將結果寫到乙個檔案上。

二、備份工具簡介

mysql按照備份恢復方式分為邏輯備份和物理備份。邏輯備份是備份sql語句,在恢復的時候執行備份的sql語句實現資料庫資料的重現,物理備份就是備份資料檔案了,比較形象點就是cp下資料檔案,但真正備份的時候自然不是的cp這麼簡單。

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

官方位址:

2.1 mysqldump工具

mysqldump是mysql自帶的備份工具,目錄在bin目錄下面:/usr/local/mysql/bin/mysqldump,支援基於innodb的熱備份。但是由於是邏輯備份,所以速度不是很快,適合備份資料比較小的場景。mysqldump完全備份+二進位制日誌可以實現基於時間點的恢復。

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

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

對於innodb儲存引擎表,可以熱備,不必對資料庫進行加鎖的操作,加乙個選項可以進行熱備份,--single-transaction,例如:mysqldump --databases test --single-transaction --flush-logs--master-data=2> /tmp/backup_test_`date +%f-%h-%m`.sql。

ps:注意點,恢復的時候記得關閉二進位制日誌:

mysql> set sql_log_bin=0;

因為這是基於邏輯備份方式,所以執行sql會插入資料,會記錄到二進位制日誌裡面去,因為這事恢復,所以插入的二進位制日誌基本沒有啥意思,可以關閉掉,縮短恢復時間。

2.2基於lvm快照備份

在物理備份中,有基於檔案系統的物理備份(lvm的快照),也可以直接用tar之類的命令對整個資料庫目錄進行打包備份,但是這些只能進行泠備份,不同的儲存引擎備份的也不一樣,myisam自動備份到表級別,而innodb不開啟獨立表空間的話只能備份整個資料庫。

下面就介紹下使用lvm的快照功能進行備份為了安全,首先在資料庫上施加讀鎖

mysql>flush tables with read lock

重新整理一下二進位制日誌,便於做時間點恢復

mysql>flush logs

然後建立快照卷

lvcreate –l 1g –s –n data-snap –p –r/dev/myvg/mydata

最後進入資料庫釋放rbpoesc讀鎖

unlock tables

掛載快照卷進行備份

mount –r /dev/myvg/data-snap /mnt/snap

然後對/mnt/snap下的檔案進行打包備份

還原的時候,關閉mysqld,然後備份二進位制日誌後將原來備份的檔案還原進去,然後通過二進位制日誌還原到出錯的時間點(通過二進位制還原時間點的時候不要忘了暫時關閉二進位制日誌)

在2023年到2023年之間,mysql資料庫部署在亞馬遜的雲環境中,他們提供了lvm快照,蠻方便快捷的,使用lvm快照,在亞馬遜的萬兆網路下,恢復起來也迅速無比。

2.3 tar包備份

0,準備從庫第一次資料備份,臨時鎖所有表,開啟視窗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視窗,去資料檔案目錄tar包

開啟視窗2

[root@myfstv_21_11 data]# tar -zcvf mysqla1.tar.gz mysqwww.cppcns.comla

tar -zcvf mysqla1.tar.gz mysqla 壓縮完畢

切換到視窗1,執行解鎖命令

mysql> unlocktablewww.cppcns.coms;

query ok, 0 rows affected (0.00 sec)

mysql>

copy tar包到另外乙個mysql庫伺服器上面,覆蓋data目錄,然後重啟mysql資料庫服務。

2.4 percona提供的xtrabackup工具

支援innodb的物理熱備份,支援完全備份,增量備份,而且速度非常快,支援innodb儲存引起的資料在不同資料庫之間遷移,支援複製模式下的從機備份恢復備份恢復,為了讓xtrabackup支援更多的功能擴充套件,可以設立獨立表空間,開啟 innodb_file_per_table功能,啟用之後可以支援單獨的表備份。

支援**熱備與恢復

大資料量的時候,備份恢復都比較快。

xtrabackup可以實現完全備份,增量備份,以及部分備份。

xtrabackup備份原理

xtrabackup基於innodb的crash-recovery功能。它會複製innodb的data file,由於不鎖表,複製出來的資料是不一致的,在恢復的時候使用crash-recovery,使得資料恢復一致。

innodb維護了乙個redo log,又稱為transaction log,事務日誌,它包含了innodb資料的所有改動情況。當innodb啟動的時候,它會先去檢查data file和transaction log,並且會做二步操作:

xtrabackup在備份的時候, 一頁一頁地複製innodb的資料,而且不鎖定表,與此同時,xtrabackup還有另外乙個執行緒監視著transactions log,一旦log發生變化,就把變化過的log pages複製走。為什麼要急著複製走呢?因為transactions log檔案大小有限,寫滿之後,就會從頭再開始寫,所以新資料可能會覆蓋到舊的資料。

在prepare過程中,xtrabackup使用複製到的transactionslog對備份出來的innodb data file進行crash recovery。

國內windows伺服器使用者可以使用:

護衛神好備份軟體 免費版(sqlserver,檔案自動備份)

請平台 p8net mysql管理工具myadmin v1.0 (mysql 定時備份工具)

以上就是mysql資料庫備份以及常用備份工具彙總,希望大家可以喜歡。

本文標題: mysql資料庫備份以及常用備份工具集合

本文位址: /shujuku/mysql/130467.html

備份mysql資料庫 MYSQL資料庫的備份與恢復

mysql資料庫的備份與恢復與資料庫日誌有著緊密聯絡,特別是資料庫的二進位制日誌 binlog 更是對於災難恢復 增量備份起著重極其重要的作用。因此,開啟和熟悉相關日誌是十分必要的。1 二進位制日誌 binlog 二進位制日誌記錄了所有的ddl 資料定義語言 語句和dml 資料操作語言 語句,但是不...

線上mysql備份 線上mysql資料庫備份

bin bash filename mysqlbackup.sh desc mysql databases backup tool.author chenzm email 969113439 qq.com homepage version 0.0.1 lastchange 2013 11 15 09...

mysql 備份優化 Mysql資料庫優化備份恢復

資料庫空間清理 刪除操作會帶來一些資料碎片,正是這些碎片在占用硬碟空間 mysql的 information schema 資料庫中的tables 表記錄了mysql資料庫中每個表占用的空間 表記錄的行數,更新時間,說明等,這個表主要字段如下 table schema 資料庫名 table name...