mysql完整備份策略

2021-10-19 15:10:27 字數 2757 閱讀 1849

備份頻率

備份方式

儲存期限

每小時一次

日誌備份

30天每天一次

增量30天

每週一次

全量4周

每月一次

全量6月

每年一次

全量2年

儲存方式:本地+異地

#!/bin/bash

. /etc/profile

week=

`date +%a`

today=

`date +%y%m%d`

month=

`date -d "$" +%y%m01`

year=

`date -d "$" +%y1231`

echo

"*****====begin `

date +%y%m%d' '%t`

**********=="

ip=`ip addr|

grep inet|

grep 10|

awk''

|awk -f"/"''`

time=

`date +%y%m%d'_'%h%m%s`

dir=/dbbackup/$ip

mon=

$dir/month

yea=

$dir/year

full=

$dir/$

"_full_bak"

incr=

$dir/$

"_incr_bak"

log=/data/scripts/logs/$.log

# 第一次需要全備

flag=0

# 目錄不存在建立,同時進行全備if[

! -d $dir];

then

echo

"first backup must full backup"

mkdir -p $dir

flag=1

else

bakdir=

`find $dir -mindepth 1 -maxdepth 1 -type d -name "*_bak"

|sort -nr |

head -1`

if[ -z $bakdir];

then

echo

"first phyiscal must full backup"

flag=1

fifiparam=

"--user=backup --protocol=tcp --port=3306 --parallel=4 --compress --compress-threads=8 --no-timestamp"if[

$flag

= 1 -o $week

="saturday" -o $today

=$month -o $today

=$year];

then

echo

"begin full backup to $full"

innobackupex $param

$full

>

$log 2>

&1 bak=

`find $dir -mindepth 1 -maxdepth 1 -type d -name "*_full_bak"

|sort -nr |

head -1`

if[$today

=$month];

thenif[

! -d $mon];

then

mkdir -p $mon

fifind

$mon -mindepth 1 -maxdepth 1 -type d -mtime +365 -exec rm -rf \;

echo

`date +%y%m%d' '%t`

": copy to month"

cp -rn $bak

$mon

elif

[$today

=$year];

thenif[

! -d $yea];

then

mkdir -p $yea

fifind

$yea -mindepth 1 -maxdepth 1 -type d -mtime +1825 -exec rm -rf \;

echo

`date +%y%m%d' '%t`

": copy to year"

cp -rn $bak

$yea

fielse

lastbak=

`find $dir -mindepth 1 -maxdepth 1 -type d -name "*_bak"

|sort -nr |

head -1`

echo

"begin incr backup,base-on backup: $lastbak"

innobackupex $param --incremental $incr --incremental-basedir $lastbak

>

$log 2>

&1fi

find

$dir -mindepth 1 -maxdepth 1 -type d -name "*_bak" -mtime +30 -exec rm -rf \;

echo

"*****=end `

date +%y%m%d' '%t`

**********=="

mysql完整備份案例

vim etc my.cnf 修改配置檔案使其支援漢字 修改內容 systemctl restart mariadb 重啟服務 create database client default charset utf8 若配置檔案沒有生效則刪除已建立的庫,重新在建立庫時進行修改 drop databas...

mysql完整備份與恢復

1 備份單個資料庫 mysql資料庫自帶了乙個很好用的備份命令,就是mysqldump,他的基本使用如下 語法 mysqldump u 使用者名稱 p 資料庫名 備份的檔名 備份一 1 備份 mysqldump uroot p test opt test bak.sql 2 檢視備份資料的內容 eg...

完整備份 增量備份 差異備份

完整備份 增量備份 差異備份 完整備份 對資料檔案進行完整的備份 複製 乙份在本地或網路其他位置。比較消耗資源,但是可以保證資料完整性。a a 增量備份 在上一次完整備份 增量備份的基礎上只對每次發生變化 新增或修改 的資料檔案進行遞增備份。這種備份方式備份比較方便,可以減少資源消耗。但是有乙個問題...