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

資訊專欄INFORMATION COLUMN

基于Mysql數(shù)據(jù)庫(kù)零數(shù)據(jù)丟失恢復(fù)探索

IT那活兒 / 2775人閱讀
基于Mysql數(shù)據(jù)庫(kù)零數(shù)據(jù)丟失恢復(fù)探索

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多精彩內(nèi)容?。。?/span>

備份概述

1. 物理備份<->邏輯備份;
2. 物理備份:基本為I/O操作,效果較高;
3. 邏輯備份:涉及邏輯轉(zhuǎn)換,效率較低;
4. 聯(lián)機(jī)備份<->脫機(jī)備份;
5. 聯(lián)機(jī)備份:備份時(shí)不影響運(yùn)行;
6. 脫機(jī)備份:備份時(shí)需要停庫(kù)操作;復(fù)制文件的冷備最為典型;
7. 本地備份<->遠(yuǎn)程備份;
8. 本地備份:備份集只能存在本地;mysqldump較為典型;
9. 遠(yuǎn)程備份:備份集能存在遠(yuǎn)端;outfile/infile方式較為典型;
10. 全量備份<->增量備份;
11. 全量備份:備份數(shù)據(jù)庫(kù)的全量數(shù)據(jù);
12. 增量備份:備份數(shù)據(jù)庫(kù)的后續(xù)修改。
  • 邏輯備份工具:mysqldump mydumper,load data方式。
  • 物理備份工具:  rsync或scp冷備, mebxtracback全量及增量備份。

場(chǎng)景介


我們?cè)诰S護(hù)數(shù)據(jù)庫(kù)的時(shí)候,可能會(huì)存在某些刪庫(kù)跑路的或某些手抖誤操作,在執(zhí)行的時(shí)候發(fā)出了drop database, truncate ,drop table等危險(xiǎn)操作,或 rm 刪除某個(gè)數(shù)據(jù)目錄的的情況,為保證在這種極端情況下,我們至少要有一份數(shù)據(jù)備份,特對(duì)這些場(chǎng)景做了幾個(gè)恢復(fù)測(cè)試,備份我們通常使用mysqldump 邏輯備份, 遠(yuǎn)程binlog使用mysqlbinlog備份, 而物理備份則是通過xtraback或meb進(jìn)行物理備份。


MYSQLDUMP每天全備+binlog備份方案

下面是對(duì)二種備份恢復(fù)測(cè)試的一個(gè)介紹。

1. 前提條件

數(shù)據(jù)庫(kù)開啟binlog,并實(shí)時(shí)進(jìn)行遠(yuǎn)程備份BINLOG。

2. 數(shù)據(jù)準(zhǔn)備

  • 創(chuàng)建數(shù)據(jù)庫(kù)YWDB,同時(shí)建表student并進(jìn)行數(shù)據(jù)插10行,使用存儲(chǔ)過程方式。

  • 模擬事務(wù)操作,對(duì)表進(jìn)行刪除即可。

  • 使用mysqldump進(jìn)行數(shù)據(jù)庫(kù)全備,可每日定義任務(wù)計(jì)劃進(jìn)行操作。

#!/bin/bash

MYSQLDBUSERNAME=root

MYSQLDBPASSWORD=Ora#01555

#MYSQBASEDIR=/usr/local/mysql

#MYSQL=$MYSQBASEDIR/bin/mysql

MYSQL=/usr/bin/mysql

#MYSQLDUMP=$MYSQBASEDIR/bin/mysqldump

MYSQLDUMP=/usr/bin/mysqldump

BACKDIR=/app/backup/logic

DATEFORMATTYPE1=$(date +%Y-%m-%d)

DATEFORMATTYPE2=$(date +%Y%m%d%H%M%S)

#DBHOME=/msdata/db_mysql

#SOCK=${DBHOME}/mysql.sock

SOCK=/var/lib/mysql/mysql.sock

DATABASES=(

"ywdb"

)

[ -x $MYSQL ] || MYSQL=mysql

[ -x $MYSQLDUMP ] || MYSQLDUMP=mysqldump

[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}

[ -d ${BACKDIR}/${DATEFORMATTYPE1} ] || mkdir ${BACKDIR}/${DATEFORMATTYPE1}

for DBNAME in ${DATABASES[@]};

do ${MYSQLDUMP} --user=${MYSQLDBUSERNAME} --password=${MYSQLDBPASSWORD} -S${SOCK} --routines --events --triggers --master-data=2 --single-transaction --flush-logs --databases ${DBNAME} | gzip > ${BACKDIR}/${DATEFORMATTYPE1}/${DBNAME}-backup-${DATEFORMATTYPE2}.sql.gz

[ $? -eq 0 ] && echo "${DBNAME} has been backuped successful" || echo "${DBNAME} has been backuped failed"

/bin/sleep 5

done

find /app/backup/logic -type d -name `date +"%Y-%m-%d" -d "-7 day"`| xargs rm -rf


  • 模擬某人誤刪除表,并同時(shí)操作多個(gè)事務(wù)進(jìn)行,盡量模擬生產(chǎn)。

delete from  student;

  • 此時(shí)業(yè)務(wù)無法找到student記錄,急急忙忙尋找救援。

3. 創(chuàng)建YWDBNEW庫(kù)進(jìn)行數(shù)據(jù)恢復(fù)

create database ywdbnew DEFAULT CHARACTER SET utf8mb4 ;

use ywdbnew

create table student(

id int(4) primary key not null auto_increment,

name varchar(32) not null,

sex varchar(2) not null,

phone varchar(32) not null unique,

brithplace varchar(32) not null,

grade int(1) not null

);

4. 全備恢復(fù)到Y(jié)WDBNEW庫(kù)

5. Mysqlbinlog進(jìn)行恢復(fù)

  • 全備的binlog及pos地址

[root@node1 2021-11-08]# cat ywdb-backup-20211108165900.sql 
|grep -i mast

-- CHANGE MASTER TO MASTER_LOG_FILE=on.000009,
MASTER_LOG_POS=154;
  • Truncate的POS地址

  • YWDBNEW中恢復(fù)了所需的數(shù)據(jù)

source /tmp/truncatebefore.sql

  • 再插入到企業(yè)DB YWDB

Insert into ywdb.student select * from ywdbnew.student;

Select count(*) from ywdb.student;


6. 注意事項(xiàng)

  • 備份時(shí),由于不同的企業(yè)使用不同的方案,在恢復(fù)時(shí)要注意恢復(fù)到另一個(gè)庫(kù)時(shí),要看原先是否已備份DB,有可能原先的腳本會(huì)有USE選項(xiàng)。

  • Mysqlbinlog恢復(fù)時(shí)需要重寫到新的DB,使用參數(shù)--rewrite-db=ywdb->ywdbnew,否則會(huì)寫入到錯(cuò)誤的庫(kù)中。

本篇先介紹到此,下篇將結(jié)合xtraback進(jìn)行和大家分享。

更多精彩干貨分享

點(diǎn)擊下方名片關(guān)注

IT那活兒

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/129724.html

相關(guān)文章

  • TiDB at 豐巢:嘗鮮分布式數(shù)據(jù)庫(kù)

    摘要:為此,一款高性能的分布式數(shù)據(jù)庫(kù),日漸成為剛需?;谌缟系脑颍覀冞x擇了,作為豐巢的核心系統(tǒng)的分布式數(shù)據(jù)庫(kù),來取代和。 作者:豐巢技術(shù)團(tuán)隊(duì) 隨著豐巢業(yè)務(wù)系統(tǒng)快速增長(zhǎng),其核心系統(tǒng)的數(shù)據(jù)量,早就跨越了億級(jí)別,而且每年增量仍然在飛速發(fā)展。整個(gè)核心系統(tǒng)隨著數(shù)據(jù)量的壓力增長(zhǎng),不但系統(tǒng)架構(gòu)復(fù)雜度急劇增長(zhǎng),數(shù)據(jù)架構(gòu)更加復(fù)雜,傳統(tǒng)的單節(jié)點(diǎn)數(shù)據(jù)庫(kù),已經(jīng)日漸不能滿足豐巢的需求,當(dāng)單表數(shù)量上億的時(shí)候,Ora...

    sixgo 評(píng)論0 收藏0
  • 單排學(xué)Redis【白銀】

    摘要:對(duì)于數(shù)據(jù)結(jié)構(gòu)哈希表我們?cè)谏弦黄惨呀?jīng)詳細(xì)說了。鍵空間示意圖的數(shù)據(jù)庫(kù)就是使用字典哈希表來作為底層實(shí)現(xiàn)的,對(duì)數(shù)據(jù)庫(kù)的增刪改查都是構(gòu)建在字典哈希表的操作之上的。 前言 只有光頭才能變強(qiáng) 今天繼續(xù)來學(xué)習(xí)Redis,上一篇從零單排學(xué)Redis【青銅】已經(jīng)將Redis常用的數(shù)據(jù)結(jié)構(gòu)過了一遍了。如果還沒看的同學(xué)可以先去看一遍再回來~ 這篇主要講的內(nèi)容有: Redis服務(wù)器的數(shù)據(jù)庫(kù) Redis對(duì)過期...

    denson 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<