国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

用shell寫一個mysql數據備份腳本

2024-07-24 12:50:45
字體:
來源:轉載
供稿:網友

思路

其實很簡單

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

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

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

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

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

1.mysqldump的權限說明

mysqldump 所需要的權限說明:

對于table 來說mysqldump 最少要有select 權限。對于view 來說mysqldump 要有show view 權限。對于trrigger 來說mysqldump 要有trriger 權限。如果要產生一份一致的備份 mysqldump 要有lock tables 權限。

下面是用戶創建預計(有不懂的可以另行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腳本(導出數據sql)

#!/bin/sh# Database infoDB_USER="dumper"DB_PASS="..."DB_HOST="..."# Database arrayDB_NAME=("hotel" "food" "foodweb")# Others varsBIN_DIR="/usr/bin" #the mysql bin pathBCK_DIR="/home/mysql-backups" #the backup file directoryDATE=`date +%F`# create filemkdir $BCK_DIR/$DATE# TODO# /usr/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /mnt/mysqlBackup/db_`date +%F`.sqlfor 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.sqldone

參數說明:

--master-data[=#]

在備份導出的文件里追加二進制binlog文件的位置和名稱
如果值等于1,就會添加一個CHANGE MASTER語句
如果值等于2,就會在CHAGE MASTER語句前添加注釋(不起作用了唄~)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 许昌市| 昌图县| 土默特左旗| 澜沧| 望奎县| 澄迈县| 枣庄市| 威宁| 大同县| 古蔺县| 聊城市| 增城市| 商河县| 通辽市| 武乡县| 汉阴县| 咸宁市| 深水埗区| 和静县| 陆良县| 天水市| 兴国县| 宁南县| 佛教| 隆化县| 肃宁县| 西乡县| 双柏县| 新郑市| 饶阳县| 普格县| 中卫市| 通江县| 攀枝花市| 五莲县| 佛坪县| 铁岭市| 历史| 清远市| 柘荣县| 青冈县|