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

用shell寫一個mysql數(shù)據(jù)備份腳本

 更新時間:2017年12月19日 08:47:59   投稿:laozhang  
本篇文章教給大家用shell寫一個mysql數(shù)據(jù)備份腳本,這是一個簡單備份MYSQL數(shù)據(jù)庫的方法,一起跟著學(xué)習(xí)下吧。

思路

其實很簡單

寫一個shell腳本通過mysql的mysqldump,將數(shù)據(jù)導(dǎo)出成對應(yīng)的sql文件;使用linux的crontab定時運(yùn)行對應(yīng)腳本,將sql,文件保存到對應(yīng)的目錄下;可想而知,隨著數(shù)據(jù)量的增加和備份的頻率都會導(dǎo)致備份服務(wù)器的硬盤資源使用率也會直線攀升;為了解決這個問題,我們就需要,定時清理備份內(nèi)容;而我還是簡單的使用了個shell腳本,通過crontab定時去清理; 注意

這里有幾個問題需要注意的:

通過mysqldump來導(dǎo)出對應(yīng)的庫表的sql,這樣必然會造成mysql服務(wù)器的資源消耗(cup,內(nèi)存,io等); mysqldump默認(rèn)的方式會造成鎖表,這個很恐怖,會導(dǎo)致線上的服務(wù)的中斷,也許時間是短暫的,但是這是致命的;(可以通過配置改成事務(wù)形式,不鎖表)隨著數(shù)據(jù)量的增大,mysqldump導(dǎo)出sql的時間也會增長;

當(dāng)然數(shù)據(jù)備份,你可以選擇對應(yīng)的時間段,按照對應(yīng)的業(yè)務(wù)的情況定義備份的周期,又或者如果 mysql服務(wù)器上庫多,根據(jù)不同業(yè)業(yè)務(wù),不同時間段備份;這也是可以的。。??淳唧w業(yè)務(wù)情況咯!

因為我的只是開發(fā)和測試用,數(shù)據(jù)量不會很大,所以影響就可以忽略了,只要在大家都下班了后備份就沒關(guān)系了(所以我定的是:每天深夜12點(diǎn)備份,一個月后吧上個月的清理了)

1.mysqldump的權(quán)限說明

mysqldump 所需要的權(quán)限說明:

對于table 來說mysqldump 最少要有select 權(quán)限。對于view 來說mysqldump 要有show view 權(quán)限。對于trrigger 來說mysqldump 要有trriger 權(quán)限。如果要產(chǎn)生一份一致的備份 mysqldump 要有l(wèi)ock tables 權(quán)限。

下面是用戶創(chuàng)建預(yù)計(有不懂的可以另行g(shù)oogle,就不多展開了):

create user dumper@'127.0.0.1';
grant select on tempdb.* to dumper@'127.0.0.1';
grant show view on tempdb.* to dumper@'127.0.0.1';
grant lock tables on tempdb.* to dumper@'127.0.0.1';
grant trigger on tempdb.* to dumper@'127.0.0.1';

2.shell腳本(導(dǎo)出數(shù)據(jù)sql)

#!/bin/sh

# Database info
DB_USER="dumper"
DB_PASS="..."
DB_HOST="..."
# Database array
DB_NAME=("hotel" "food" "foodweb")
# Others vars
BIN_DIR="/usr/bin"      #the mysql bin path
BCK_DIR="/home/mysql-backups"  #the backup file directory
DATE=`date +%F`
# create file
mkdir $BCK_DIR/$DATE
# TODO
# /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sql
for var in ${DB_NAME[@]};
do
  $BIN_DIR/mysqldump --opt --single-transaction --master-data=2 -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/$DATE/db_$var.sql
done

參數(shù)說明:

--master-data[=#]

在備份導(dǎo)出的文件里追加二進(jìn)制binlog文件的位置和名稱
如果值等于1,就會添加一個CHANGE MASTER語句
如果值等于2,就會在CHAGE MASTER語句前添加注釋(不起作用了唄~)
這個參數(shù)會--lock-all-tables鎖表,除非你指定了--single-transaction
這種情況下,鎖表只會在dump開始的時候持續(xù)一小段時間,照理說 在dump的時候,任何動作都會影響到binlog文件 dump結(jié)束之后,選項會自動關(guān)閉鎖表功能

--single-transaction

以事務(wù)的形式執(zhí)行

3.shell腳本(按時批量清除N天前腳本)

#!/bin/sh
find /home/mysql-backups -mtime +30 -name "*.*" -exec rm -Rf {} \;

說明:

/home/lifeccp/dicom/studies :準(zhǔn)備要進(jìn)行清理的任意目錄 -mtime:標(biāo)準(zhǔn)語句寫法+10:查找10天前的文件,這里用數(shù)字代表天數(shù),+30表示查找30天前的文件 ".":希望查找的數(shù)據(jù)類型,".jpg"表示查找擴(kuò)展名為jpg的所有文件,""表示查找所有文件 -exec:固定寫法 rm -rf:強(qiáng)制刪除文件,包括目錄 {} ; :將find的結(jié)果放到里面 4.crontab定時啟動腳本

crontab -e
0 0 * * * /home/sh/mysql-backups/dump.sh
0 0 1 * * /home/sh/mysql-backups/del.sh

相關(guān)文章

  • 基于 Mysql 實現(xiàn)一個簡易版搜索引擎

    基于 Mysql 實現(xiàn)一個簡易版搜索引擎

    本文基于 Mysql 8.0 版本,數(shù)據(jù)庫引擎采用的是 InnoDB,關(guān)于 Mysql 實現(xiàn)一個簡易版搜索引擎,感興趣的朋友可以參考下文
    2021-08-08
  • mysql排序ORDER BY不生效的問題解決

    mysql排序ORDER BY不生效的問題解決

    order by作為一個常用的功能,在項目中應(yīng)該經(jīng)常用到,本文主要介紹了mysql排序ORDER BY不生效的問題解決,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • MySql中如何使用 explain 查詢 SQL 的執(zhí)行計劃

    MySql中如何使用 explain 查詢 SQL 的執(zhí)行計劃

    explain命令是查看查詢優(yōu)化器如何決定執(zhí)行查詢的主要方法。這篇文章重點(diǎn)給大家介紹MySql中如何使用 explain 查詢 SQL 的執(zhí)行計劃,感興趣的朋友一起看看吧
    2018-05-05
  • 一篇文章帶你掌握MySQL索引下推

    一篇文章帶你掌握MySQL索引下推

    索引條件下推,也叫索引下推,英文全稱Index Condition Pushdown,簡稱ICP,索引下推是MySQL5.6新添加的特性,用于優(yōu)化數(shù)據(jù)的查詢,下面這篇文章主要給大家介紹了關(guān)于MySQL索引下推的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • MySQL中使用表別名與字段別名的基本教程

    MySQL中使用表別名與字段別名的基本教程

    這篇文章主要介紹了MySQL中使用表別名與字段別名的基本教程,利用SELECT語句和AS子句進(jìn)行取別名的操作,需要的朋友可以參考下
    2015-12-12
  • sql?distinct多個字段的使用

    sql?distinct多個字段的使用

    這篇文章主要介紹了sql?distinct多個字段的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL對中文進(jìn)行排序詳解及實例

    MySQL對中文進(jìn)行排序詳解及實例

    這篇文章主要介紹了MySQL對中文進(jìn)行排序詳解及實例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • mysql實現(xiàn)合并結(jié)果集并去除重復(fù)值

    mysql實現(xiàn)合并結(jié)果集并去除重復(fù)值

    這篇文章主要介紹了mysql實現(xiàn)合并結(jié)果集并去除重復(fù)值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • VSCODE連接MySQL數(shù)據(jù)庫服務(wù)圖文教程

    VSCODE連接MySQL數(shù)據(jù)庫服務(wù)圖文教程

    最近做網(wǎng)頁碰到連接數(shù)據(jù)庫的問題,上網(wǎng)查了挺久終于搞明白了,下面這篇文章主要給大家介紹了關(guān)于VSCODE連接MySQL數(shù)據(jù)庫服務(wù)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • mysql主從庫不同步問題解決方法

    mysql主從庫不同步問題解決方法

    本來配置可以使用的mysql主從庫同步的數(shù)據(jù)庫,突然出現(xiàn)無法同步的情況。那么大家可以參考下面的方法解決下。
    2011-08-08

最新評論

柳州市| 东阿县| 同德县| 怀仁县| 青铜峡市| 股票| 余姚市| 青龙| 稷山县| 孝感市| 塔河县| 道孚县| 保定市| 白城市| 淮阳县| 轮台县| 定西市| 鹤壁市| 利津县| 津市市| 壤塘县| 沅江市| 乐业县| 孟津县| 磐石市| 琼结县| 信宜市| 长垣县| 大安市| 彭阳县| 菏泽市| 长治市| 济宁市| 濮阳县| 龙陵县| 西青区| 肥城市| 陇川县| 涿州市| 沂源县| 肥城市|