Mysql備份還有這么多套路,還不了解下?

邏輯備份和物理備份

創(chuàng)新互聯(lián)主營克州網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,重慶APP開發(fā)公司,克州h5微信小程序搭建,克州網(wǎng)站營銷推廣歡迎克州等地區(qū)企業(yè)咨詢

邏輯備份 邏輯備份用于備份數(shù)據(jù)庫的結構(CREAET DATABASE、CREATE TABLE)和數(shù)據(jù)(INSERT),這種備份類型適合數(shù)據(jù)量小、跨SQL服務器、需要修改數(shù)據(jù)等場景。如`mysqldump`命令就是產(chǎn)生一個邏輯備份工具,使用`mysqldump`輸出的文件包含`CREATE TABLE`和`INSERT`語句,能夠直接重建表內(nèi)容和表結構。 使用邏輯備份有以下優(yōu)勢和劣勢:

優(yōu)勢 * 可移植性高,SQL語句可直接適用于其他SQL服務器; * 在數(shù)據(jù)恢復之前可增加、修改數(shù)據(jù); * 數(shù)據(jù)恢復粒度小可以是服務器、數(shù)據(jù)庫、表級別; * 使用文本格式,可讀性高;

劣勢 * 備份時需要訪問mysql服務器,影響其他客戶端; * 需要將數(shù)據(jù)轉換成邏輯格式(SQL,CSV); * 如果命令運行在客戶端,mysql服務器還需要將數(shù)據(jù)發(fā)送給客戶端; * 因為輸出格式為文本文件,占用空間較大;

物理備份 物理備份是包括存儲數(shù)據(jù)庫內(nèi)容的目錄和文件的副本,這種類型的備份適用于需要在出現(xiàn)問題時快速恢復的大型重要數(shù)據(jù)庫。

優(yōu)勢 * 完整的Mysql文件和目錄備份,只需要復制文件不需要轉換,速度比邏輯備份更快; * 除了備份數(shù)據(jù),還能備份配置文件和日志文件; * 不需要運行Mysql服務器就可以完成備份; * 備份工具簡單使用cp、scp、tar命令即可完成備份;

劣勢 * 可移植性不高,恢復數(shù)據(jù)只適用于相同或類似的機器上; * 為了保持數(shù)據(jù)庫文件的一致性,需要停機備份; * 恢復粒度不能按表或用戶恢復;

在線備份和離線備份 在線備份需要mysql服務器處理運行狀態(tài),以便備份工具從mysql服務器中獲取數(shù)據(jù)。離線備份表示mysql服務器處理停止狀態(tài)。兩種備份形式也可以稱為“熱備份”和“冷備份“。

在線備份的主要特性 * 備份不需要停機,對其他客戶端影響較小其他連接能夠正常訪問mysql服務器(依賴操作類型,如讀操作); * 備份需要加鎖,以免在備份期間對數(shù)據(jù)做出修改;

離線備份的主要特性 * 備份期間服務器不可用; * 備份過程更簡單,不會受到客戶端的干擾;

邏輯備份(mysqldump使用) `mysqldump`屬于邏輯備份命令,使用`mysqldump`備份的優(yōu)勢是它非常方便和靈活,可以直接編輯輸出文件或者使用導入到其他的SQL服務器中去,但是它不能用作備份大量數(shù)據(jù)的快速解決方案,對于大數(shù)據(jù)量,即使備份花費的時候可以接受,但是恢復數(shù)據(jù)也可能會非常緩慢,因為執(zhí)執(zhí)行SQL語句會涉及磁盤I/O進行插入,創(chuàng)建索引等。`mysqldump`的使用方式非常簡單: ```shell shell> mysqldump db_name [tbl_name ...] shell> mysqldump --databases db_name ... shell> mysqldump --all-databases ``` 使用`mysqldump`備份時要注意:**數(shù)據(jù)庫的一致狀態(tài),在執(zhí)行`mysqldump`命令時要保證數(shù)據(jù)不會再發(fā)生變更**,保持數(shù)據(jù)的一致性有二種方法: * 使Mysql服務器只讀 * 使用事務加上隔離級別:`REPEATABLE READ ` 使用`REPEATABLE READ`事務隔離級別執(zhí)行`mysqldump`命令(使用事務保持數(shù)據(jù)庫的一致狀態(tài)): ```shell mysqldump --master-data=2 \ --flush-logs \ --single-transaction \ --all-databases > /backup/`date +%F-%H`-mysql-all.sql ``` 備份參數(shù)說明: * --master-data: 將二進制日志文件的名稱和位置備份 * --flush-logs: 開始備份之前刷新mysql服務器日志文件 * --single-transaction:開始備份之前設置事務隔離級別為**REPEATABLE READ**然后發(fā)送一個**START TRANSACTION**命令。 * --all-databases:備份所有數(shù)據(jù)庫 ### 物理備份(復制原始文件) 為了保證復制文件的完整性,備份原始文件好是**停止mysql服務器**,復制原始文件備份由以下步驟完成: 1. 停止mysql服務器 `$ mysqladmin shutdown` 2. 使用合適的工具復制原始數(shù)據(jù)文件 `$ tar cf /tmp/dbbackup.tar ./data` 3. 備份完成后,運行mysql服務器 `$ mysqld_safe`

使用主從備份模式 使用`mysqldump`和`tar`備份或多或少都會對業(yè)務產(chǎn)生影響,使用`mysqldump`備份需要對數(shù)據(jù)加鎖,加鎖就意味著其他客戶端操作受到限制。使用`tar`命令需要停止服務器直接導致數(shù)據(jù)庫服務器不可用,有沒有辦法能解決這兩種問題呢?答案是有的,就是使用主從備份模式。 在單機的基礎上增加一臺Slave機器對Master機器的數(shù)據(jù)進行同步: ![](https://user-gold-cdn.xitu.io/2019/11/20/16e88e37b5005cae?w=374&h=315&f=png&s=10551) 開始備份時對Slave進行備份,這樣即使Slave停機或對數(shù)據(jù)加鎖也不會影響業(yè)務的正常使用,如果公司有條件或業(yè)務非常重要可以選擇這種方案來備份數(shù)據(jù)。 歡迎關注微信公眾號《架構文摘》,高質(zhì)量技術文章第一時間推送。

當前文章:Mysql備份還有這么多套路,還不了解下?
網(wǎng)頁鏈接:http://muchs.cn/article24/chhcje.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、手機網(wǎng)站建設、網(wǎng)站制作品牌網(wǎng)站設計、網(wǎng)站建設、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名