国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于Mysql數據庫零數據丟失恢復探索(下)

IT那活兒 / 886人閱讀
基于Mysql數據庫零數據丟失恢復探索(下)

點擊上方“IT那活兒”,關注后了解更多精彩內容!!!

上篇文章跟大家介紹了MYSQLDUMP每天全備+binlog備份的方案,今天再跟大家分享一款強悍企業級的MYSQL數據庫備份工具,是什么呢?我們一起往下看!

PXB簡介

XtraBackup是percona 公司貢獻給開源社區的一款操作簡單功能強悍企業級的MYSQL數據庫備份工具。它的實現是基于innodb對事務的支持,利用其崩潰恢復的功能來實現的。MySQL所有的更新操作都是在內存中完成的,然后異步的刷入磁盤進行持久化。支持事務的存儲引擎,為了保證MySQL宕機后內存中還未刷出的更新不會丟失,設計了事務引擎日志(redo log)。通過將該部分的更新記錄到日志中,然后記錄日志序號(LSN),異步線程在將臟頁刷新到磁盤的同時,維護一個檢查點LSN,兩個LSN之間的差異就是數據宕機后丟失的更新。在數據庫啟動時,只要事務日志保存完好,就可以根據redo log和undo log將數據庫恢復到崩潰前的一致性狀態。
1. 功能和特性
  • 具有在線non-locking熱備功能;
  • 提供全備、增備功能;
  • 提供壓縮、加密功能;
  • 提供流備份功能;
  • 提供庫、單表維度備份功能;
  • 提供基于時間點恢復功能;

2. 版本兼容說明

  • Xtrabackup 2.4 支持mysql 5.6 5.7
  • Xtranbackup 8.0 支持mysql 8.0.*

PXB介質下載


PXB安裝的三種方式

1. 二進制安裝

  • 下載安二進制包
Wgethttps://www.percona.com/downloads/XtraBackup/Percona-
XtraBackup-2.4.7/binary/tarball/percona-xtrabackup-2.4.7-
Linux-x86_64.tar.gz


  • 解壓并創建軟連接:


# tar zxvf percona-xtrabackup-2.4.7-Linux-x86_64.tar.gz
# mv percona-xtrabackup-2.4.7-Linux-x86_64
/usr/local/xtrabackup
# ln -s /usr/local/xtrabackup/bin/* /usr/bin/


  • 查看版本:


# xtrabackup --version
xtrabackup version 2.4.7 based on MySQL server 5.7.13 Linux 
(x86_64) (revision id: 6f7a799)

2. 源碼安裝:

  • 安裝依賴包


yum install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bison libtool ncurses-devel    libgcrypt-devel libev-devel libcurl-devel vim-common
libev-devel 包yum安裝不上時,可手動RPM包安裝
rpm -ivh glibc-2.12-1.166.el6.x86_64.rpm
rpm -ivh libev-4.03-3.el6.x86_64.rpm libev-devel-4.03-3.el6.x86_64.rpm


  • 解壓源碼包:


tar -zxvf percona-xtrabackup-2.3.3.tar.gz
cd percona-xtrabackup-2.3.3


  • 編譯安裝:

cmake -DBUILD_CONFIG=xtrabackup_release -DWITH_MAN_PAGES=OFF 
&& make -j4
make install


  • 添加到基本命令:


cp /usr/local/xtrabackup/bin/innobackupex /usr/bin
cp /usr/local/xtrabackup/bin/xtrabackup /usr/bin

3. yum源安裝

  • 安裝Percona的庫:


yum install http://www.percona.com/downloads/percona-
release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm


  • 測試Percona庫:


yum list|grep percona


  • 安裝包:


yum install percona-xtrabackup


實驗環境

1. Os環境:CentOS Linux release 7.2.1511 (Core)
2. 數據庫版本: 5.7.20
3. Xtrabackup版本:5.7.13
4. 賬號:bkpuser

備份與恢復

1. 全量備份與恢復示例

  • 數據庫全量備份


xtrabackup --defaults-file=/etc/my.cnf --host=localhost --
user=bkpuser --password=Ora#01555 -
s/var/lib/mysql/mysql.sock --backup --target-dir=/app/pxb
  • 新建庫,并更新數據


mysql -uroot -pOra#01555 -e create database db1;
mysql -uroot -pOra#01555 -e create table db1.t1(id int,name varchar(20));
mysql -uroot -pOra#01555 -e insert into db1.t1 values(1,"a"),(2,"b"),(3,"c");
mysql -uroot -pOra#01555 -e select * from db1.t1;


  • binlog備份正常


sh binlog.sh


  • 模擬刪除所有數據文件,刪庫跑路


cd /var/lib/mysql && rm -rf *
  • 使用xtrabackup全量恢復


 停止掉運行的數據庫實例:


service mysqld stop
準備:
xtrabackup --host=localhost --user=bkpuser --
password=Ora#01555  -S/var/lib/mysql/mysql.sock --prepare --
target-dir=/app/pxb
拷回數據:
xtrabackup --host=localhost --user=bkpuser --
password=Ora#01555  -S/var/lib/mysql/mysql.sock --
datadir=/var/lib/mysql --copy-back --target-dir=/app/pxb
修改目錄屬性啟動數據庫:
chown -R mysql.mysql /var/lib/mysql
chmod -R 755 /var/lib/mysql
啟動服務:
service mysqld start


  • 使用mysqlbinlog增量恢復

查看備份的位置:
cat xtrabackup_info
binlog_pos = filename on.000009, position 4226787
使用mysqlbinlog恢復后面的位置:
mysqlbinlog on.000009 on.000010 --start-position=4226787 | mysql -uroot -pOra#01555
mysql -uroot -pOra#01555 -e select * from db1.t1;


  • 核查數據是否恢復正常

2. 增量備份與恢復示例

  • 增量備份全備
xtrabackup --user=root --password=Ora#01555 --backup --
target-dir=/app/pxb/full
  • 模擬數據增加1

  • 增量備份1
xtrabackup --user=root --password=Ora#01555 --backup --
target-dir=/app/pxb/incr1 --incremental-
basedir=/app/pxb/full
  • 模擬數據2

  • 增量備份2


xtrabackup --user=root --password=Ora#01555 --backup --
target-dir=/app/pxb/incr2 --incremental-
basedir=/app/pxb/incr1
  • 模擬數據3

  • 刪庫跑路

  • 進行數據恢復操作

 準備全備份的日志:
xtrabackup --user=root --password=Ora#01555 --prepare --
apply-log-only --target-dir=/app/pxb/full
準備增量備份的日志:
xtrabackup --user=root --password=Ora#01555 --prepare --
apply-log-only --target-dir=/app/pxb/full --incremental-
dir=/app/pxb/incr1
xtrabackup --user=root --password=Ora#01555 --prepare --
apply-log-only --target-dir=/app/pxb/full --incremental-
dir=/app/pxb/incr2
全備份準備:
# xtrabackup --user=root --password=Ora#01555 --prepare 
--target-dir=/app/pxb/full
拷回數據:
xtrabackup --user=root --password=Ora#01555 --
datadir=/var/lib/mysql --copy-back --target-
dir=/app/pxb/full
mysqlbinlog進行數據恢復:
mysqlbinlog on.000006 on.000007 --start-position=154 | mysql 
-uroot -pOra#01555

數據是否恢復檢查:

總結

在MYSQL企業運維中,務必保證多從庫,并且在數據冗余的同時,要切記不能缺少備份,備份重于一切,這是數據丟失后,數據恢復的最后一根稻草,在MYSQL里,物理備份+BINLOG實時備份,可保證我們數據盡可能零丟失,特別是在一些人為或極端不可抗的情況下,備份顯得尤其重要.


本文來源:IT那活兒微信公眾號(上海新炬王翦團隊)

更多精彩干貨分享

點擊下方名片關注

IT那活兒

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129723.html

相關文章

  • TiDB at 豐巢:嘗鮮分布式數據

    摘要:為此,一款高性能的分布式數據庫,日漸成為剛需。基于如上的原因,我們選擇了,作為豐巢的核心系統的分布式數據庫,來取代和。 作者:豐巢技術團隊 隨著豐巢業務系統快速增長,其核心系統的數據量,早就跨越了億級別,而且每年增量仍然在飛速發展。整個核心系統隨著數據量的壓力增長,不但系統架構復雜度急劇增長,數據架構更加復雜,傳統的單節點數據庫,已經日漸不能滿足豐巢的需求,當單表數量上億的時候,Ora...

    sixgo 評論0 收藏0
  • 單排學Redis【白銀】

    摘要:對于數據結構哈希表我們在上一篇也已經詳細說了。鍵空間示意圖的數據庫就是使用字典哈希表來作為底層實現的,對數據庫的增刪改查都是構建在字典哈希表的操作之上的。 前言 只有光頭才能變強 今天繼續來學習Redis,上一篇從零單排學Redis【青銅】已經將Redis常用的數據結構過了一遍了。如果還沒看的同學可以先去看一遍再回來~ 這篇主要講的內容有: Redis服務器的數據庫 Redis對過期...

    denson 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<