五月开心播播网_国内精品伊人久久久久影院对白_亚洲精品高清视频_国产精品激情_68精品久久久久久欧美_四虎免费av_97精品在线视频_欧美知名女优

您的位置:首頁技術文章
文章詳情頁

linux中數據庫的定時備份

瀏覽:38日期:2023-10-08 21:02:50
目錄1 序言2 crond 相關知識點2.1 crond 是什么?2.2 crontab 進行定時任務設置2.2.1 crontab 指令選項說明2.2.2 crontab 指令使用格式2.2.4 crontab 設置步驟3 各個數據庫備份腳本3.1 Oracle數據庫3.2 Mysql數據庫3.3 postgresql數據庫3.4 mongoDB數據庫4 定時備份數據庫實際操作1 序言

相信大家都還記得這則新聞吧,歐洲云計算巨頭 OVH 位于法國斯特拉斯堡的機房發生嚴重火災,大火徹底摧毀了五層高、占地 500 平方米的 SBG2 數據中心。

當地報紙稱 115 位消防員投入 6 個小時才將其撲滅。經過長達 6 個小時的持續燃燒,SBG2 內的數據恐怕已經徹底丟失。

大火對歐洲范圍內的眾多網站造成嚴重影響。據 Netcraft 稱,目前跨 464000 個域的多達 360 萬個網站皆已下線。

數據是無價的,所以生產環境中定時備份數據庫顯得尤為重要。備份能防止服務器故障和人為誤操作帶來的數據丟失。

生產環境中linux操作系統也是服務器的首選,所以我們今天就以linux為例,說一說數據庫備份。

具體以什么數據庫為例呢,就以這幾年工作中接觸到的幾種常見數據庫為例吧。

OraclemysqlpostgresqlmongoDB

在這里呢也給自己挖一個坑,工作中呢也用到winserver 作為服務器的情況,所以呢后面也整理更新下winserver 環境下數據庫備份。

2 crond 相關知識點2.1 crond 是什么?

crond任務調度相當于我們日常生活中的鬧鐘。可以在某個時間點執行特定的命令和程序。 linux系統自身定期執行的任務工作:例如輪詢系統日志、備份系統數據、清理系統緩存、殺毒等等 用戶執行的工作任務:用戶通過設置任務調度,定時執行自己添加shell腳本或簡單的指令。例如每隔1分鐘和互聯網上時間服務器同步,每天凌晨1點備份數據庫等等

2.2 crontab 進行定時任務設置2.2.1 crontab 指令選項說明

語法:

crontab[-e|-l|-r]-e:編輯crontab 定時任務-l:查詢crontab定時任務-r:刪除當前用戶所有的crontab定時任務2.2.2 crontab 指令使用格式

crontab用戶的定時任務一般分為6段(空格分隔,系統的定時任務則/etc/crontab分為7段),其中前五段位時間設定段,第六段為所要執行的命令或腳本任務段。

①語法:

* * * * * cmd①cmd為要執行的命令或腳本,例如/server/scripts/lee.sh②每個段之間必須要有空格。

② crontab語法格式中時間段的含義表

段含義取值范圍第一個“*”一小時當中的第幾分鐘0-59第二個“*”一天當中的第幾個小時0-23第三個“*”一個月當中的第幾天1-31第四個“*”一年當中的第幾個月1-12第五個“*”一周當中的星期幾0-7(0和7都代表周天)

③ crontab語法格式中特殊符號的含義表

特殊符號含義*"*" 表示任意時間都,就是“每”的意思,舉例:如00 01 * * * cmd 表示每月每周每日的凌晨1點執行cmd任務。-"-" 表示分隔符,表示一個時間范圍段,如17-19點,每小時的00分執行任務。00 17-19 * * * cmd 表示17,18,19點整點分別執行的意思。,"," 表示分隔時間段的意思。30 17,18,19 * * * cmd 表示每天17,18,19點的半點執行cmd 也可以和“-”結合使用,如: 30 3-5,17-19 * * * cmd 表示每天3、4、5和17、18、19 執行/nn代表數字 即”每隔n單位時間”,例如:每10分鐘執行一次任務可以寫 */10 * * * * cmd,其中 /10,的范圍是0-59,也可以寫成0-59/10① 30 23 * * * cmd 表示每天23:30分執行cmd命令② 40 22 * * 1 cmd 表示每周一22:40分執行cmd命令③ 30 0 1-12 * * cmd 表示每月1號和12號 00:30執行cmd命令④ 30 0 * * 1-5 cmd 表示每周一和周五00:30執行命令⑤ */10 4 * * * cmd 表示每天4:00每隔10分鐘執行一次cmd命令2.2.4 crontab 設置步驟

這里我們以每5分鐘同步一次互聯網時間為例進行說明

① 查看crond服務是否啟動

/sbin/service crond status --查看crond服務是否啟動

[root@xiezhr /]# /sbin/service crond statusRedirecting to /bin/systemctl status crond.service● crond.service - Command Scheduler Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-01-10 21:14:50 CST; 1 months 25 days ago Main PID: 990 (crond) CGroup: /system.slice/crond.service └─990 /usr/sbin/crond -nJan 25 14:00:01 xiezhr crond[990]: /usr/sbin/sendmail: error while loading shared librari...oryJan 25 14:30:02 xiezhr crond[990]: /usr/sbin/sendmail: error while loading shared librari...oryJan 25 15:00:02 xiezhr crond[990]: /usr/sbin/sendmail: error while loading shared librari...oryJan 25 15:30:01 xiezhr crond[990]: /usr/sbin/sendmail: error while loading shared librari...oryJan 25 16:00:01 xiezhr crond[990]: /usr/sbin/sendmail: error while loading shared librari...oryJan 25 16:24:01 xiezhr crond[990]: (*system*) RELOAD (/etc/cron.d/yunjing)Jan 28 11:18:01 xiezhr crond[990]: (*system*) RELOAD (/etc/cron.d/sgagenttask)Jan 28 11:18:01 xiezhr crond[990]: (root) RELOAD (/var/spool/cron/root)Feb 07 12:03:01 xiezhr crond[990]: (*system*) RELOAD (/etc/cron.d/yunjing)Feb 07 12:03:01 xiezhr crond[990]: (root) RELOAD (/var/spool/cron/root)Hint: Some lines were ellipsized, use -l to show in full.

如果crond服務沒啟動則執行如下命令啟動crond服務

/sbin/service crond start 啟動服務

查看進程

[root@xiezhr /]# ps -ef|grep crondroot 990 1 0 Jan10 ?00:00:22 /usr/sbin/crond -nroot 19552 15271 0 16:10 pts/1 00:00:00 grep --color=auto crond

② 編寫shell腳本

在home路徑下添加如下shell腳本

[root@xiezhr home]# vim /home/my.sh/usr/sbin/ntpdate time.windows.com >/dev/null 2>&1

③ 給腳本增加執行權限

[root@xiezhr home]# chmod u+x /home/my.sh

④ 設置定時任務crontab

[root@xiezhr home]# crontab -e*/5 * * * * /home/my.sh

3 各個數據庫備份腳本3.1 Oracle數據庫#!/bin/bashexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1;export ORACLE_SID=orcl;export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH;export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK#以上代碼為Oracle數據庫運行賬號oracle的系統環境變量設置,必須添加,否則crontab任務計劃不能執行。date=date +%Y_%m_%d #獲取系統當前日期時間days=7 #設置刪除7天之前的備份文件orsid=192.168.1.100:1521/orcl #Oracle數據庫服務器IP、端口、SIDorowner=scott #備份此用戶下面的數據bakuser=system #用此用戶來執行備份,必須要有備份操作的權限bakpass=oracle #執行備注的用戶密碼bakdir=/backup/oracledata #備份文件路徑,需要提前創建好bakdata=$orowner'_'$date.dmp #備份數據庫名稱baklog=$orowner'_'$date.log #備份執行時候生成的日志文件名稱ordatabak=$orowner'_'$date.tar.gz #最后保存的Oracle數據庫備份文件cd $bakdir #進入備份目錄mkdir -p $orowner #按需要備份的Oracle用戶創建目錄cd $orowner #進入目錄exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #執行備份tar -zcvf $ordatabak $bakdata $baklog #壓縮備份文件和日志文件find $bakdir/$orowner -type f -name '*.log' -exec rm {} \; #刪除備份文件find $bakdir/$orowner -type f -name '*.dmp' -exec rm {} \; #刪除日志文件find $bakdir/$orowner -type f -name '*.tar.gz' -mtime +$days -exec rm -rf {} \; #刪除7天前的備份(注意:{} \中間有空格)以上exp備份,如果要采用expd備份,只需將上面執行語句換成下面的即可expdp $bakuser/$bakpass@$orsid full=y cluster=n directory=$bakdir dumpfile=$bakdir/$orowner/$bakdata logfile=$bakdir/$orowner/$baklog 3.2 Mysql數據庫#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/binexport PATHdbuser='root' #數據庫用戶名dbpasswd='123456' #數據庫密碼dbname='test1 test2' #數據庫名,可以定義多個數據庫,中間以空格隔開,如 test1 test2backtime=`date +%Y%m%d%H%M%S` #備份時間logpath= '/home/mysql/backup' #日志備份路徑datapath='/home/mysql/backup' #數據備份路徑echo '備份時間為${backtime},備份數據庫表 ${dbname} 開始' >> ${logpath}/mysqllog.log #日志記錄頭部#正式備份數據庫for table in $dbname; do source=`mysqldump -u ${dbuser} -p${dbpasswd} ${table}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;#備份成功以下操作if [ '$?' == 0 ];then cd $datapathtar jcf ${table}${backtime}.tar.bz2 ${backtime}.sql > /dev/null #為節約硬盤空間,將數據庫壓縮rm -f ${datapath}/${backtime}.sql #刪除原始文件,只留壓縮后文件cd $datapathrm -rf `find . -name '*.sql.gz' -mtime +30` >> ${logpath}/mysqllog.log 2>&1 #刪除30天前備份文件echo '數據庫表 ${dbname} 備份成功!!' >> ${logpath}/mysqllog.logelseecho “數據庫表 ${dbname} 備份失敗!!” >> ${logpath}/mysqllog.log #備份失敗則進行以下操作fidone3.3 postgresql數據庫#!/bin/bashpg_user ='postgres'export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'export exp_date=`date '+%Y%m%d'`pg_dump -U postgres dbpostgres -f /u01/backup/$exp_date.sql gzip -1 /u01/backup/$exp_date.sql #壓縮備份文件find /u01/backup -mtime +14 -exec rm {} \; #刪除七天前備份文件3.4 mongoDB數據庫#!/bin/shDUMP=/home/webapp/Downloads/mongoDB/mongodbserver/bin/mongodump #mongodump備份文件執行路徑OUT_DIR=/home/webapp/backup/mongo_bak/mongod_bak_now #臨時備份目錄TAR_DIR=/home/webapp/backup/mongo_bak/mongod_bak_list #備份存放路徑DATE=`date +%Y_%m_%d_%H_%M_%S` #獲取當前系統時間DB_USER=XXXX#數據庫賬號DB_PASS=XXXX #數據庫密碼DB_NAME=TEST #數據庫名稱IP=xx.xx.xx.xx:27017DAYS=365 #DAYS=30代表刪除30天前的備份,即只保留最近30天的備份TAR_BAK='mongod_bak_$DATE.tar.gz' #最終保存的數據庫備份文件名cd $OUT_DIRrm -rf $OUT_DIRmkdir -p $OUT_DIR/$DATE$DUMP -h $IP -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATE #備份數據庫tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #壓縮為.tar.gz格式find $TAR_DIR/ -mtime +$DAYS -delete #刪除30天前的備份exit4 定時備份數據庫實際操作

每天凌晨1點備份以上常見數據庫

① 創建備份腳本

在home路徑下創建backup.sh 并添加以上數據庫備份shell腳本

[root@xiezhr home]# vim /home/bakcup/backup.sh# 要備份那個數據庫,就往backup.sh 添加對應的shell腳本即可

③ 給腳本增加執行權限

[root@xiezhr home]# chmod u+x /home/bakcup/backup.sh

③ 設置定時任務crontab

[root@xiezhr home]# crontab -e0 1 * * * /home/bakcup/backup.sh

本期到此就結束了,下一期我們說一說winserver環境下數據庫備份。

到此這篇關于linux中數據庫的定時備份的文章就介紹到這了,更多相關數據庫定時備份linux篇內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Linux
欧美成人一区二区三区| 亚洲一区中文字幕在线观看| 91网站免费| 国产99久久久国产精品潘金| 艳妇乳肉亭妇荡乳av| av成人网在线| 亚洲综合一区二区三区| 中文字幕人妻一区二区| 国产精品夫妻自拍| 久久久久久久久精| 精品一区二区三区在线播放视频| 亚洲毛片亚洲毛片亚洲毛片| 久久久精品久久久久久96| 国产成人女人毛片视频在线| 国产美女在线观看| 亚洲在线免费视频| 国产伦理久久久久久妇女| 天堂久久久久久| 欧美成人免费网站| 精品欧美一区二区三区在线观看 | 爱福利视频一区| 中文字幕免费在线| 国产91精品网站| 国产成人免费精品| 国产综合18久久久久久| av电影在线播放高清免费观看| 日韩免费电影一区| 亚洲欧美视频一区二区| 亚洲色图欧美自拍| 国产成人1区| 37pao成人国产永久免费视频| 成人3d精品动漫精品一二三| 国产精品99久久久久久白浆小说| 成人国产免费电影| 超碰在线免费观看97| 亚洲黄色天堂| 亚洲天堂手机在线| 国语自产精品视频在免费| 欧美日韩一区二区三区不卡视频| 一道本在线观看视频| 精品电影一区| 中字幕一区二区三区乱码| 99久久99久久精品国产片果冻 | 国产日产高清欧美一区二区三区| 一区二区精品视频| 中文字幕日本一区| 538任你躁在线精品视频网站| 精品国产123| 黄动漫视频高清在线| 欧美影视一区二区| 一本一本久久| 欧美bbbbbbbbbbbb精品| 日韩福利电影在线| 色av中文字幕| 国产专区欧美专区| 好吊日精品视频| 91嫩草在线播放| 永久免费看mv网站入口78| 久久精品国产亚洲一区二区| 九九热爱视频精品视频| 香蕉久久视频| 成人av资源在线播放| 国产亚洲一区二区三区不卡| 亚洲 欧美 另类人妖| 黄色成人在线播放| 天天看天天操| 欧美一区2区三区4区公司二百| 九一亚洲精品| 日日摸天天爽天天爽视频| 久久一二三四| 在线www天堂网在线| 亚洲色图久久久| 亚洲丰满少妇videoshd| 天堂а在线中文在线无限看推荐| 蜜桃av噜噜一区二区三| 精品亚洲porn| 黄网站免费看| 尤物九九久久国产精品的分类 | 97精品视频在线看| 国产又粗又猛又色又| 一级黄色免费在线观看| 欧美一区二区久久| 欧美精品导航| 国产激情99| 久久久久久久久网| 国产日韩欧美在线一区| 一个人免费观看日本www视频| 日韩中文字幕一区| 99久久99久久免费精品蜜臀| 中文在线中文字幕| 亚洲女人在线观看| 国产亚洲精品资源在线26u| 日本激情免费| 日本福利一区二区三区| 亚洲va国产天堂va久久en| japanese色系久久精品| 亚洲影视一区二区| 成人激情在线播放| 久久久欧美精品sm网站| 人与动性xxxxx免费视频| 亚洲自拍小视频免费观看| 91在线国产福利| 最新日韩精品| 国产一级淫片a| 国产欧美日韩网站| 成人免费福利视频| 欧美情侣在线播放| 91精品国产自产在线观看永久∴| 欧美风狂大伦交xxxx| 成年人在线观看视频免费| 亚洲午夜久久久久中文字幕久| 最新国产在线| 国产在线观看无码免费视频| 色阁综合伊人av| 久久青草欧美一区二区三区| 妞干网免费在线视频| 少妇饥渴放荡91麻豆| 亚洲色在线视频| 秋霞午夜av一区二区三区| 91看片一区| 在线国产三级| 日本泡妞xxxx免费视频软件| 亚洲成人黄色在线| 国产自产视频一区二区三区 | 欧美性猛交xxxx黑人| 国产一区二区视频在线看| 中国女人内谢25xxxx免费视频| 国产亚洲精品熟女国产成人| 视频一区亚洲| 精品精品欲导航| 中文字幕成在线观看| 人妻精品一区一区三区蜜桃91 | 欧美爱爱网站| 第四色播日韩| 亚洲熟女一区二区| 国产精品久久久久久久久久久久午夜片| 成人动漫一区二区三区| 久草在线资源视频| av网站中文字幕| 超碰在线免费观看97| 欧美一级在线亚洲天堂| 欧美一级高清大全免费观看| 首页亚洲中字| 九色在线网站| 亚洲国产精品国自产拍久久| 三级一区二区三区| 日韩精品一区二区在线| 99精品综合| 国产精品美女午夜爽爽| 亚洲日本va中文字幕久久| 99久久亚洲| 亚洲综合激情另类专区老铁性| 亚洲成人免费观看| 日韩一区在线看| 天堂成人国产精品一区| 第四色成人网| 国产成人福利夜色影视| 黑人40厘米全进去| 欧美大交乱xxxxxbbb| 欧美一区二区三区爽爽爽| 欧美亚洲综合另类| 亚洲精品老司机| 销魂美女一区二区三区视频在线| 成人盗摄视频| 99热播精品免费| 亚洲在线精品视频| 日批免费观看视频| 精品乱码一区| 日韩中文字幕免费| 中文字幕久久亚洲| 在线亚洲男人天堂| 国产日韩欧美a| 视频一区视频二区在线观看| 伊人精品久久| 一区二区三区电影大全| 美女被黑人40厘米进入| 三级视频网站在线观看| 伊人久久婷婷色综合98网| 国产日韩综合一区二区性色av| 久久久久久久久久久免费精品| 亚洲人在线观看| 69av成年福利视频| 国产激情综合五月久久| 国产综合18久久久久久| 欧美日韩精品久久久免费观看| 成人国产在线视频| 久久免费国产视频| 日韩经典第一页| 一区二区三区在线观看网站| 国产亚洲欧美日韩俺去了| 欧美专区18| 日韩成人一区二区三区在线观看| 中文字幕乱码亚洲无线精品一区 | 亚洲美女高潮久久久| 日韩亚洲视频在线| 国产精品一区二区不卡视频| 91福利视频网| 国产va免费精品高清在线观看| 欧美一区第一页| 国产91九色视频|