mysql 開發進階篇系列 42 邏輯備份與恢復

来源:https://www.cnblogs.com/MrHSR/archive/2018/09/21/9647699.html
-Advertisement-
Play Games

一.概述 在作何資料庫里,備份與恢復都是非常重要的。好的備份方法和備份策略將會使得資料庫中的數據更加高效和安全。對於DBA來說,進行備份或恢復操作時要考慮的因素大概有如下: (1) 確定要備份的表的存儲引擎是事務型(innodb)還是非事務型。兩種不同的存儲引擎備份方式在處理數據一致性方面是不太一樣 ...


一.概述

         在作何資料庫里,備份與恢復都是非常重要的。好的備份方法和備份策略將會使得資料庫中的數據更加高效和安全。對於DBA來說,進行備份或恢復操作時要考慮的因素大概有如下:

(1) 確定要備份的表的存儲引擎是事務型(innodb)還是非事務型。兩種不同的存儲引擎備份方式在處理數據一致性方面是不太一樣。
(2) 確定使用全備份還是增量備份。增量備份是備份每天的增量日誌,恢復時需要全備份加所有增量備份。這裡與sql server的完整備份+日誌備份或差異備份有點類似。
(3) 可以考慮複製方法來做異地備份。但複製不能代替備份,因為有可能發生誤操作。
(4) 要定期備份。
(5) 確保mysql的log -bin開啟,才能實現完整恢復,或基於時間的恢復,或基於位置的恢復。
(6) 經常做備份恢複測試,確保備份是有效的,並且可以恢復的。
(7) mysql與sqlserver在備份上很大區別的概念是mysql可以基於表備份,而sql server基於庫備份。

 

二. 邏輯備份和恢復

  在mysql中,邏輯備份最大的優點是對於各種存儲引擎,都可以用同樣的訪求來備份。而物理備份則不同,不同存儲引擎有著不同的備份方法。 因此對於不同存儲引擎混全的資料庫,用邏輯備份會簡單一些。

  2.1 邏輯備份
    mysql邏輯備份是將資料庫中的數據備份為一個文本文件。可以被查看和編輯。在mysql中,使用mysqldump工具來完成邏輯備份。在前面章節"mysql 開發進階篇系列 35 工具篇 "中有講到該導出工具的用法。

  2.2下麵簡演示一個備份與恢復的例子

  -- 查看當前最新日誌編號
  SHOW MASTER STATUS

        

 -- 備份test庫,庫中testbackup表有6條數據
 SELECT * FROM testbackup

        

 -- 將test庫備份為test.dmp文件 -F備份後生成新日誌
 [root@hsr data]# pwd
  /usr/local/mysql/data
  [root@hsr data]# mysqldump -uroot -p --single-transaction -F test > test.dmp
  Enter password:     

  備份後查看如下圖所示:
        

  備份後查看最新日誌編號(備份成功後生成了新的日誌序號)
        

 -- 誤操作
 DELETE FROM testbackup WHERE id=6
 -- 查看binlog日誌,裡面有誤操作數據,需要在my.cnf中設置binlog_rows_query_log_events=1
 SHOW BINLOG EVENTS IN 'mysql-bin.000038';

        

 -- 還原test.dmp文件
 [root@hsr data]# mysql -uroot -p test < test.dmp
 Enter password:
 -- 在查看數據,此時數據已還原。
 SELECT * FROM testbackup

        

  總結:在還原數據時有一個問題是,如果線上還原生產資料庫,那自備份以後,用戶操作的數據就會都要丟失。二種方法:(1)是還原一個副本,從副本中獲取誤操作的數據。(2) 線上還原,全備之後到誤操作時刻之間,用戶寫入的數據在binlog中,需要恢復出來。

 

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在前面十五篇博客中,幾乎每一篇都有介紹Nmap,這裡系統地介紹下每個參數: 註意:區分每個參數的大小寫 -iL:列好的IP放在一個文本裡面,可以直接掃描這個文本 用法:namp -iL <文本名> -iR:隨機掃指定數目的IP: 用法:nmap -iR <IP數量> 示例:我現在隨機掃描50個IP的 ...
  • 防火牆簡單的識別方式: 如圖: 可以簡單明瞭看出:發送SYN不回應,發送ACK回RST可以說明開啟過濾等等 基於這個原理,我們可以寫一個腳本來對防火牆來探測和識別: 這裡的flags==18或者是6或者是4,是TCP中FLAG代表的數字: OK,我們可以試試這個腳本: 如果腳本是從windows移過 ...
  • Hive的命名空間分為:hiveconf , system, env 和 hivevar 1、hiveconf 的命名空間指的是hive-site.xml下麵配置的環境變數 2、system的命名空間是系統的變數,包含JVM的運行信息 3、evn的命名空間是指環境變數,包含Shell環境下的變數信息 ...
  • 一、安裝xrdp工具: # yum install xrdp # yum install tigervnc-server # service xrdp start 以上三個命令執行完畢安裝完成,服務也已經啟動。 二、打開windows遠程視窗 輸入linux主機IP,點擊確定。 即可連接 ...
  • 1.有關優先順序 1.1 Configuration --> FreeRTOS MAX_PRIORITIES 設置任務優先順序的數量:配置應用程式有效的優先順序數目。任何數量的任務都可以共用一個優先順序,使用協程可以單獨的給與它們優先權。見MAX_CO_ROUTINE_PRIORITIES。 在RTOS內核 ...
  • 什麼是neo4j資料庫? neo4j資料庫是圖資料庫的一種,屬於nosql的一種,常見的nosql資料庫還有redis、memcached、mongDB等,不同於傳統的關係型資料庫,nosql數據也有其獨特之處,例如圖資料庫,在處理對象(在圖資料庫中稱為節點)之間的關係的能力要遠高於傳統的關係型數據 ...
  • 一 SQL刪除列的語句是: 但是,如果某列有約束時,不能直接刪除,需要先刪除約束,再刪除列。如果某個列是外鍵,在不知道外鍵約束名稱的情況下,那麼首先是查找外鍵約束名稱,根據名稱刪除約束,然後再刪除列。 二 如何查找外鍵約束 上述代碼在使用的時候需要給@TableName賦值實際的表名,@Column ...
  • 多表查詢連接 準備倆張員工信息表,我們要查詢員工信息及員工所在部門.那麼就需要倆張表進 行連接查詢,多表查詢. 外鏈接 語法 select 欄位列表 from 表1 inner/left/right join 表2 on 表1.欄位 = 表2.欄位; 第一種情況交叉連接: 不適用任何匹配條件.生成笛 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...