使用Xtrabackup對資料庫備份和恢復

来源:https://www.cnblogs.com/reset-li/archive/2018/03/09/8510765.html
-Advertisement-
Play Games

須安裝Xtrabackup工具 註:生產環境中還原恢復操作不可直接使用備份源文件,須單獨拷貝一份做恢復使用 一、完全備份及還原 1、備份資料庫 2、破壞資料庫 3、恢複數據庫 二、完全、增量備份及還原 1、完全備份資料庫 2、對資料庫修改並做增量備份 3、破壞資料庫 4、恢複數據庫 三、單表導出和導 ...


須安裝Xtrabackup工具

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
yum install percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm

註:生產環境中還原恢復操作不可直接使用備份源文件,須單獨拷貝一份做恢復使用

一、完全備份及還原

1、備份資料庫

innobackupex --user=root --password=li123456 /backups

 2、破壞資料庫

rm -rf /app/mysqldb/*

3、恢複數據庫

systemctl stop mysqld  #停止服務
innobackupex --apply-log /backups/2018-03-05_18-11-28/ #對備份進行整理
innobackupex --copy-back /backups/2018-03-05_18-11-28/ #還原資料庫,還原前需確認資料庫目錄為空
chown -R mysql.mysql /app/mysqldb/  #修複屬主屬組
systemctl start mysqld  #啟動服務

 

 

二、完全、增量備份及還原

 1、完全備份資料庫

innobackupex --user=root --password=li123456 /backups/

 

2、對資料庫修改並做增量備份

MariaDB [(none)]> create database ceshi;

 

mkdir /backups/inc1    #創建存儲第一次增量備份的目錄,便於管理
innobackupex --user=root --password=li123456 --incremental /backups/inc1 --incremental-basedir=/backups/2018-03-07_15-23-30

 

MariaDB [(none)]> drop database test ;

 

mkdir /backups/inc2  #創建存儲第二次增量備份的目錄
innobackupex --user=root --password=li123456 --incremental /backups/inc2 --incremental-basedir=/backups/inc1/2018-03-07_15-42-56

 

 3、破壞資料庫

rm -rf /app/mysqldb/*

4、恢複數據庫

systemctl stop mysqld    #停止服務
innobackupex --apply-log --redo-only /backups/2018-03-07_15-23-30/  #對完全備份進行整理
innobackupex --apply-log --redo-only /backups/2018-03-07_15-23-30/ --incremental-dir=/backups/inc1/2018-03-07_15-42-56  #對第一次增量備份進行整理
innobackupex --apply-log --redo-only /backups/2018-03-07_15-23-30/ --incremental-dir=/backups/inc2/2018-03-07_16-00-17  #對第二次增量備份進行整理
innobackupex --copy-back /backups/2018-03-07_15-23-30/  #還原資料庫,還原前需確認資料庫目錄為空
chown -R mysql.mysql /app/mysqldb/  #修複屬主屬組
systemctl start mysqld  #啟動服務

 

三、單表導出和導入

註:需MySQL 5.6及以上版本才支持此功能

1、單表備份

innobackupex --user=root --password=li123456 --include='reset_gq.wp_users' /backups

 

2、導出表結構

mysql -uroot -p -e 'show create table reset_gq.wp_users'

 

3、刪除表

mysql -uroot -p -e 'drop table reset_gq.wp_users'

 

 4、單表恢復

innobackupex --apply-log --export /backups/2018-03-09_12-26-33/

創建表結構

MariaDB [reset_gq]> CREATE TABLE `wp_users` (
-> `ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
-> `user_login` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
-> `user_pass` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
-> `user_nicename` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
-> `user_email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
-> `user_url` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
-> `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
-> `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
-> `user_status` int(11) NOT NULL DEFAULT 0,
-> `display_name` varchar(250) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '',
-> PRIMARY KEY (`ID`),
-> KEY `user_login_key` (`user_login`),
-> KEY `user_nicename` (`user_nicename`),
-> KEY `user_email` (`user_email`)
-> ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

 

MariaDB [reset_gq]> alter table wp_users discard tablespace;  #刪除wp_users表空間

 

cp /backups/2018-03-09_12-26-33/reset_gq/wp_users.{cfg,exp,ibd} /app/mysqldb/reset_gq/

chown -R mysql.mysql /app/mysqldb/reset_gq/

MariaDB [reset_gq]> alter table wp_users import tablespace;  #導入表空間


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

-Advertisement-
Play Games
更多相關文章
  • MySQL的備份主要分為邏輯備份和物理備份 邏輯備份 在MySQL中邏輯備份的最大優點是對各種存儲引擎都可以用同樣的方法來備份。而物理備份則不同,不同的存儲引擎有著不同的備份方法。Mysql中的邏輯備份是將資料庫中的數據備份為一個文本文件,備份的文件可以被查看和編輯,在mysql中常用mysqldu ...
  • sql 某一欄位 數量大於1 SELECT * FROM ecm_goods_spec AWHERE ( SELECT count( * ) FROM ecm_goods_spec BWHERE A.`goods_id` = B.`goods_id` ) >1 ...
  • 系列文章首發平臺為[果凍想個人博客][2]。果凍想,是一個原創技術文章分享網站。在這裡果凍會分享他的技術心得,技術得失,技術人生。我在[果凍想][2]等待你,也希望你能和我分享你的技術得與失,期待。 前言 網上已經有那麼多的關於CentOS 7如何安裝MySQL的文章了, 那為什麼我還要寫這沒一篇關 ...
  • 左外 右外連接 select * from tb1 left join tb2 on(tb1.id = tb2.id) select * from tb1 right join tb2 on(tb1.id = tb2.id) JOIN: 如果表中有至少一個匹配,則返回行 LEFT JOIN: 即使右 ...
  • Mysql安裝 1. 下載並安裝MySQL官方的 Yum Repository 下載完成後安裝 2. 安裝Mysql服務 3. 啟動Mysql服務 首先啟動mysql 查看mysql運行狀態 此時mysql服務已經啟動成功 4. 登錄並設置mysql 此時MySQL已經開始正常運行,不過要想進入My ...
  • 背景:SEO下選擇某查詢條件 查詢展示信息為裝修設計師以及設計師作品。設計師原型設計為:選擇某風格 例如:簡約,則列表出現擁有簡約風格的設計師信息以及該設計師類型為簡約的作品(3條靠前記錄) 瀏覽原型後發現問題:若不選擇風格時,直接 sor t瀏覽量完事。但是選擇某項之後 要在前端體現選擇作用,就和 ...
  • 對於mysql的執行計劃可以在select前添加Explain來實現,它可以告訴我們你的語句性能如何。 下麵是對explain的具體說明,也都是官方的,以後進行參考。 SELECT類型,可以為以下任何一種: SIMPLE:簡單SELECT(不使用UNION或子查詢) PRIMARY:最外面的SELE ...
  • 基礎概念 派生表是從SELECT語句返回的虛擬表。派生表類似於臨時表,但是在SELECT語句中使用派生表比臨時表簡單得多,因為它不需要創建臨時表的步驟。 術語:*派生表*和子查詢通常可互換使用。當SELECT語句的FROM子句中使用獨立子查詢時,我們將其稱為派生表。 以下說明瞭使用派生表的查詢: 請 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...