日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 自动热备份_mysql(mariadb)定时自动热备份+增量+远程备份脚本

發(fā)布時間:2023/12/31 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 自动热备份_mysql(mariadb)定时自动热备份+增量+远程备份脚本 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

優(yōu)點(diǎn):熱備份,不影響業(yè)務(wù),增量備份,遠(yuǎn)程備份。

目的:自動打包備份到遠(yuǎn)程10.0.0.111備份服務(wù)器

前提:

1.安裝xtrabackup

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

yum install percona-xtrabackup-22

2.創(chuàng)建目錄

mkdir -p /data/backup

mkdir -p /data/backuptar/

3.添加mysql公鑰到備份服務(wù)器(10.0.0.111),能免密碼遠(yuǎn)程登錄。

4.創(chuàng)建備份用戶

GRANT RELOAD,LOCK TABLES,REPLICATION CLIENT ON *.* TO [email?protected] IDENTIFIED BY ‘passwd‘;

FLUSH PRIVILEGES;

------------------------

#!/bin/bash

backdir=/data/backup

backupbin=/usr/bin

begintime=`date +"%Y-%m-%d %H:%M:%S"`

format_time=`date +"%Y-%m-%d_%H_%M_%S"`

time_cost=$backdir/xtrabackup_time.txt

week=`date +%w`

user_name=bkuser

password="passwd"

file_cnf=/etc/my.cnf.d/wsrep.cnf

backtar=/data/backuptar/

remote_host="10.0.0.111"

remote_dir=/data/mysqlbak_remote_23

remote_user="wanzi"

out_log=$backdir/xtrabackup_log_$format_time

if [ -d "$backdir/rec5" ];then

echo "開始打包5次的備份"

cd $backdir

tar -zcf lastweek.gz ./*

mv lastweek.gz $backtar/$format_time.lastweek.gz

echo "完成5次備份打包"

cd $backtar

rm -rf `ls |grep -v "$format_time.lastweek.gz"`

echo "刪除本地上次備份完成"

echo "開始刪除遠(yuǎn)程備份....."

ssh $remote_user@$remote_host "cd $remote_dir;rm -rf ./*"

echo "刪除遠(yuǎn)程多余備份完成"

echo "開始拷貝本地備份到遠(yuǎn)程服務(wù)器..."

scp $backtar/$format_time.lastweek.gz $remote_host:/$remote_dir

echo "遠(yuǎn)程備份完成"

rm -rf $backdir

mkdir $backdir

fi

#fullbackup

if [ ! -d "$backdir/fullbackup" ];then

echo "在$begintime開始全量備份" >>$time_cost

$backupbin/innobackupex --defaults-file=$file_cnf --user=$user_name --password=$password --no-timestamp --slave-info ?$backdir/fullbackup 1>$out_log 2>&1

echo "完成全備"

elif [ ! -d "$backdir/rec0" ];then

echo "#####start 0 incremental backup at $BEGINTIME to directory rec0" >>$time_cost

$backupbin/innobackupex --defaults-file=$file_cnf ?--no-timestamp --user=$user_name --password=$password --slave-info ?--incremental --incremental-basedir=$bac

kdir/fullbackup $backdir/rec0 1> $out_log 2>&1

echo "完成第0次增量備份"

elif [ ! -d "$backdir/rec1" ];then

echo "#####start 1 incremental backup at $BEGINTIME to directory rec1" >>$time_cost

$backupbin/innobackupex --defaults-file=$file_cnf ?--no-timestamp --user=$user_name --password=$password --slave-info ?--incremental --incremental-basedir=$bac

kdir/rec0 $backdir/rec1 1> $out_log 2>&1

echo "完成第1次增量備份"

elif [ ! -d "$backdir/rec2" ];then

echo "#####start 2 incremental backup at $BEGINTIME to directory rec2" >>$time_cost

$backupbin/innobackupex --defaults-file=$file_cnf ?--no-timestamp --user=$user_name --password=$password --slave-info ?--incremental --incremental-basedir=$bac

kdir/rec1 $backdir/rec2 1> $out_log 2>&1

echo "完成第2次增量備份"

elif [ ! -d "$backdir/rec3" ];then

echo "#####start 3 incremental backup at $BEGINTIME to directory rec3" >>$time_cost

$backupbin/innobackupex --defaults-file=$file_cnf ?--no-timestamp --user=$user_name --password=$password --slave-info ?--incremental --incremental-basedir=$bac

kdir/rec2 $backdir/rec3 1> $out_log 2>&1

echo "完成第3次增量備份"

elif [ ! -d "$backdir/rec4" ];then

echo "#####start 4 incremental backup at $BEGINTIME to directory rec4" >>$time_cost

$backupbin/innobackupex --defaults-file=$file_cnf ?--no-timestamp --user=$user_name --password=$password --slave-info ?--incremental --incremental-basedir=$bac

kdir/rec3 $backdir/rec4 1> $out_log 2>&1

echo "完成第4次增量備份"

elif [ ! -d "$backdir/rec5" ];then

echo "#####start 5 incremental backup at $BEGINTIME to directory rec5" >>$time_cost

$backupbin/innobackupex --defaults-file=$file_cnf ?--no-timestamp --user=$user_name --password=$password --slave-info ?--incremental --incremental-basedir=$bac

kdir/rec4 $backdir/rec5 1> $out_log 2>&1

echo "完成第5次增量備份"

fi

ENDTIME=`date +"%Y-%m-%d %H:%M:%S"`

begin_data=`date -d ?"$BEGINTIME" +%s`

end_data=`date -d ?"$ENDTIME" +%s`

spendtime=`expr $end_data - $begin_data`

echo "it takes $spendtime sec for packing the data directory" >>$time_cost

echo "備份結(jié)束......"`date`

原文:http://jin544642965.blog.51cto.com/1389736/1769710

總結(jié)

以上是生活随笔為你收集整理的mysql 自动热备份_mysql(mariadb)定时自动热备份+增量+远程备份脚本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。