最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql數(shù)據(jù)庫(kù)增量備份的思路和方法

 更新時(shí)間:2017年09月15日 10:50:43   投稿:mrr  
MySQL數(shù)據(jù)庫(kù)增量備份,在這之前修改我們的數(shù)據(jù)庫(kù)配置文件/etc/my.cnf開啟bin-log日志功能即可,下面小編給大家分享Mysql數(shù)據(jù)庫(kù)增量備份的思路詳解,一起看看吧

MySQL數(shù)據(jù)庫(kù)增量備份,在這之前修改我們的數(shù)據(jù)庫(kù)配置文件/etc/my.cnf開啟bin-log日志功能即可。接下來(lái)是我參考了下網(wǎng)上的一些方法,自己寫的,主要還是要能學(xué)到他的一些思路和方法。

#function:MYSQL增量備份
#version:1.0.0
#author:wangyanlin
#date:2017/08/02
#-----------------------------------------------------------------------------------------------
#!/bin/sh
export LANG=en_US.UTF-8
#設(shè)置時(shí)間
DATE=`date +%Y%m%d`
#設(shè)置信息
USER=root
PASSWORD=withub
#設(shè)置路徑
cd /
/usr/bin/mkdir -p mysql_bak/daily 
/usr/bin/mkdir -p mysql_bak/logs
BakDir=/mysql_bak/daily
BinDir=/var/lib/mysql
LogFile=/mysql_bak/logs/Daily_$DATE.log
BinlogFile=/var/lib/mysql/mysql-bin.index
/usr/bin/mysqladmin -u$USER -p$PASSWORD flush-logs #刷新日志
Counter=`wc -l $BinlogFile | awk '{print $1}'`
NextNum=0
start_time=`date +'%Y-%m-%d %H:%M:%S'`
echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next1 Bakup start! >> $LogFile
#這個(gè)for循環(huán)用于比對(duì)$Counter,$NextNum這兩個(gè)值來(lái)確定文件是不是存在或最新的。
for file in `cat $BinlogFile`
do
  base=`basename $file`
  #basename用于截取mysql-bin.00000*文件名,去掉./mysql-bin.000005前面的./
  NextNum=`expr $NextNum + 1`
  if [ $NextNum -eq $Counter ]
  then
    echo $base skip! >> $LogFile
  else
    dest=$BakDir/$base
    if(test -e $dest)
    #test -e用于檢測(cè)目標(biāo)文件是否存在,存在就寫exist!到$LogFile去。
    then
      echo $base exist! >> $LogFile
    else
      cp $BinDir/$base $BakDir
      echo $base copying >> $LogFile
    fi
  fi
done
echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next2 Bakup succ! >> $LogFile
end_time=`date +'%Y-%m-%d %H:%M:%S'`
start_seconds=$(date --date="$start_time" +%s);
end_seconds=$(date --date="$end_time" +%s);
echo "本次備份運(yùn)行時(shí)間: "$((end_seconds-start_seconds))"s" >> $LogFile

添加計(jì)劃任務(wù):

                       crontab -e

                       00 03 * * * /root/MySQL_incrementbak.sh    #每天的凌晨3點(diǎn)開始增量備份日

logs日志打印出來(lái)的效果:

PS:下面看下mysql全量和增量備份腳本

全量:

[root@master leo]# cat DBfullBak.sh 
#!/bin/bash
#use mysqldump to fully backup mysql data
BakDir=/root/leo/full
LogFile=/root/leo/full/bak.log
Date=`date +%Y%m%d`
Begin=`date +"%Y年%m月%d日 %H:%M:%S"`
cd $BakDir
DumpFile=$Date.sql
GZDumpFile=$Date.sql.tgz
mysqldump -uroot -p123456 --all-databases --lock-all-tables --routines --triggers --events --master-data=2 --flush-logs > $DumpFile
tar zcvf $GZDumpFile $DumpFile
rm $DumpFile
Last=`date +"%Y年%m月%d日 %H:%M:%S"`
echo 開始:$Begin 結(jié)束:$Last $GZDumpFile succ >> $LogFile

參數(shù)注釋:

--all-databases #備份所有庫(kù)
--lock-all-tables #為所有表加讀鎖
--routinge  #存儲(chǔ)過(guò)程與函數(shù)
--triggers  #觸發(fā)器
--events   #記錄事件
--master-data=2 #在備份文件中記錄當(dāng)前二進(jìn)制日志的位置,并且為注釋的,1是不注釋掉在主從復(fù)制中才有意義
--flush-logs  #日志滾動(dòng)一次

結(jié)果如下:

[root@master full]# ls
20140728.sql.tgz bak.log
[root@master full]# cat bak.log 
開始:2014年07月28日 19:02:59 結(jié)束:2014年07月28日 19:02:59 20140728.sql.tgz succ
開始:2014年07月28日 19:12:01 結(jié)束:2014年07月28日 19:12:01 20140728.sql.tgz succ
[root@master full]#

增量備份:

[root@master leo]# cat DBDailyBak.sh 
#!/bin/bash
BakDir=/root/leo/binlog/
BinDir=/var/lib/mysql
LogFile=/root/leo/binlog/bak.log
BinFile=/var/lib/mysql/mysql-bin.index
mysqladmin -uroot -p123456 flush-logs
Counter=`wc -l $BinFile|awk '{print $1}'`
NextNum=0
for file in `cat $BinFile`
do 
 base=`basename $file`
 NextNum=`expr $NextNum + 1`
 if [ $NextNum -eq $Counter ]
 then
  echo $base skip! >> $LogFile
 else
  dest=$BakDir/$base
  if(test -e $dest)
  then
   echo $base exist! >> $LogFile
  else
   cp $BinDir/$base $BakDir/
   echo $base copying >> $LogFile
  fi
 fi
done
echo `date +"%Y年%m月%d日 %H:%M:%S"` $Next Bakup succ~ >> $LogFile

總結(jié)

以上所述是小編給大家介紹的Mysql數(shù)據(jù)庫(kù)增量備份的思路和方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Ubuntu查看修改mysql的登錄名和密碼、安裝phpmyadmin

    Ubuntu查看修改mysql的登錄名和密碼、安裝phpmyadmin

    這篇文章主要介紹了Ubuntu查看修改mysql的登錄名和密碼、安裝phpmyadmin,本文分步驟給大家講解的非常詳細(xì),需要的朋友可以參考下
    2019-11-11
  • SQL-?join多表關(guān)聯(lián)問(wèn)題

    SQL-?join多表關(guān)聯(lián)問(wèn)題

    這篇文章主要介紹了SQL-?join多表關(guān)聯(lián)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-12-12
  • 簡(jiǎn)單整理MySQL的日志操作命令

    簡(jiǎn)單整理MySQL的日志操作命令

    這篇文章主要介紹了MySQL的日志操作命令,其中重點(diǎn)講述了MySQL的日志刪除方法,需要的朋友可以參考下
    2015-12-12
  • MySQL 查看庫(kù)中大表信息的幾種方法

    MySQL 查看庫(kù)中大表信息的幾種方法

    本文主要介紹了MySQL 查看庫(kù)中大表的幾種方法,為了識(shí)別可能影響數(shù)據(jù)庫(kù)性能的表,下面主要了4種方式,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • MySQL基礎(chǔ)入門之Case語(yǔ)句用法實(shí)例

    MySQL基礎(chǔ)入門之Case語(yǔ)句用法實(shí)例

    case語(yǔ)句是mysql中的一個(gè)條件語(yǔ)句,可以在字段中使用case語(yǔ)句進(jìn)行復(fù)雜的篩選以及構(gòu)造新的字段,下面這篇文章主要給大家介紹了關(guān)于MySQL基礎(chǔ)入門之Case語(yǔ)句用法的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Mysql中mysql.user用戶表詳解

    Mysql中mysql.user用戶表詳解

    在本篇文章里小編給大家分享了關(guān)于Mysql中mysql.user用戶表的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考下。
    2019-09-09
  • MySQL數(shù)據(jù)庫(kù)的主從同步配置與讀寫分離

    MySQL數(shù)據(jù)庫(kù)的主從同步配置與讀寫分離

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)的主從同步配置與讀寫分離,需要的朋友可以參考下
    2018-01-01
  • Mysql中JSON字段的值的實(shí)現(xiàn)示例

    Mysql中JSON字段的值的實(shí)現(xiàn)示例

    本文中介紹了如何通過(guò)SQL語(yǔ)句查詢JSON字段中的特定數(shù)據(jù),如查詢數(shù)組中的元素,提取映射中的值,以及使用不同的JSON函數(shù)來(lái)處理數(shù)據(jù),感興趣的可以了解一下
    2024-09-09
  • sql與mysql有哪些區(qū)別

    sql與mysql有哪些區(qū)別

    在本篇文章里小編給大家分享了關(guān)于sql與mysql的區(qū)別的內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-06-06
  • MySQL存儲(chǔ)過(guò)程的創(chuàng)建和使用示例詳解

    MySQL存儲(chǔ)過(guò)程的創(chuàng)建和使用示例詳解

    文章介紹了MySQL存儲(chǔ)過(guò)程的概念、創(chuàng)建與刪除、調(diào)用、變量使用、參數(shù)、流程控制、管理和案例,存儲(chǔ)過(guò)程可以封裝SQL指令,提高執(zhí)行效率,但也有一定局限性,感興趣的朋友跟隨小編一起看看吧
    2025-02-02

最新評(píng)論

荥经县| 库尔勒市| 渭南市| 清涧县| 沙雅县| 佛山市| 肇州县| 视频| 逊克县| 佛学| 拜泉县| 兴宁市| 天津市| 长沙县| 扶风县| 莱芜市| 合水县| 马关县| 界首市| 莲花县| 合作市| 呼玛县| 玉山县| 郯城县| 禹城市| 张家港市| 屯门区| 宜昌市| 怀化市| 濮阳市| 花垣县| 全椒县| 肥东县| 吴桥县| 宁蒗| 安国市| 吉隆县| 内江市| 弋阳县| 鄯善县| 西充县|