備份頻率
備份方式
儲存期限
每小時一次
日誌備份
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 增量備份 在上一次完整備份 增量備份的基礎上只對每次發生變化 新增或修改 的資料檔案進行遞增備份。這種備份方式備份比較方便,可以減少資源消耗。但是有乙個問題...