婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 用shell寫一個mysql數(shù)據(jù)備份腳本

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

熱門標簽:電銷機器人好品牌門薩維l 凱立德科技館地圖標注 甘孜電話機器人廠家 做地圖標注都需要什么工具 銀川電銷外呼系統(tǒng)定制 西安400電話在哪里辦理 哈爾濱crm外呼系統(tǒng)價格 上海智能外呼系統(tǒng)需要多少錢 中科嘉智人工智能電銷機器人

思路

其實很簡單

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

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

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

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

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

1.mysqldump的權限說明

mysqldump 所需要的權限說明:

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

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

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腳本(導出數(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[=#]

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

--single-transaction

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

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

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

說明:

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

crontab -e
0 0 * * * /home/sh/mysql-backups/dump.sh
0 0 1 * * /home/sh/mysql-backups/del.sh
您可能感興趣的文章:
  • HBASE 常用shell命令,增刪改查方法
  • shell腳本實現(xiàn)mysql定時備份、刪除、恢復功能
  • shell簡單處理mysql查詢結果的方法
  • Shell下實現(xiàn)免密碼快速登陸MySQL數(shù)據(jù)庫的方法
  • MySQL數(shù)據(jù)庫的shell腳本自動備份
  • 通過shell腳本對mysql的增刪改查及my.cnf的配置

標簽:安康 山南 浙江 平頂山 濮陽 四川 那曲 安徽

巨人網絡通訊聲明:本文標題《用shell寫一個mysql數(shù)據(jù)備份腳本》,本文關鍵詞  用,shell,寫,一個,mysql,數(shù)據(jù)備份,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《用shell寫一個mysql數(shù)據(jù)備份腳本》相關的同類信息!
  • 本頁收集關于用shell寫一個mysql數(shù)據(jù)備份腳本的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 凤山市| 太湖县| 呼玛县| 双牌县| 云南省| 玉门市| 雷山县| 横山县| 绍兴市| 铜陵市| 广河县| 揭东县| 东乡族自治县| 海南省| 奉新县| 苗栗县| 海伦市| 巴林右旗| 余江县| 垣曲县| 舞钢市| 忻州市| 湖北省| 安图县| 临汾市| 甘肃省| 葫芦岛市| 仲巴县| 吴旗县| 贵溪市| 确山县| 蓬莱市| 都安| 延寿县| 龙南县| 延安市| 碌曲县| 通城县| 徐汇区| 鄂托克前旗| 合作市|