电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

linux中數(shù)據(jù)庫的定時備份

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

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

當(dāng)?shù)貓蠹埛Q 115 位消防員投入 6 個小時才將其撲滅。經(jīng)過長達(dá) 6 個小時的持續(xù)燃燒,SBG2 內(nèi)的數(shù)據(jù)恐怕已經(jīng)徹底丟失。

大火對歐洲范圍內(nèi)的眾多網(wǎng)站造成嚴(yán)重影響。據(jù) Netcraft 稱,目前跨 464000 個域的多達(dá) 360 萬個網(wǎng)站皆已下線。

數(shù)據(jù)是無價的,所以生產(chǎn)環(huán)境中定時備份數(shù)據(jù)庫顯得尤為重要。備份能防止服務(wù)器故障和人為誤操作帶來的數(shù)據(jù)丟失。

生產(chǎn)環(huán)境中l(wèi)inux操作系統(tǒng)也是服務(wù)器的首選,所以我們今天就以linux為例,說一說數(shù)據(jù)庫備份。

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

OraclemysqlpostgresqlmongoDB

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

2 crond 相關(guān)知識點2.1 crond 是什么?

crond任務(wù)調(diào)度相當(dāng)于我們?nèi)粘I钪械聂[鐘。可以在某個時間點執(zhí)行特定的命令和程序。 linux系統(tǒng)自身定期執(zhí)行的任務(wù)工作:例如輪詢系統(tǒng)日志、備份系統(tǒng)數(shù)據(jù)、清理系統(tǒng)緩存、殺毒等等 用戶執(zhí)行的工作任務(wù):用戶通過設(shè)置任務(wù)調(diào)度,定時執(zhí)行自己添加shell腳本或簡單的指令。例如每隔1分鐘和互聯(lián)網(wǎng)上時間服務(wù)器同步,每天凌晨1點備份數(shù)據(jù)庫等等

2.2 crontab 進(jìn)行定時任務(wù)設(shè)置2.2.1 crontab 指令選項說明

語法:

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

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

①語法:

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

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

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

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

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

這里我們以每5分鐘同步一次互聯(lián)網(wǎng)時間為例進(jìn)行說明

① 查看crond服務(wù)是否啟動

/sbin/service crond status --查看crond服務(wù)是否啟動

[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服務(wù)沒啟動則執(zhí)行如下命令啟動crond服務(wù)

/sbin/service crond start 啟動服務(wù)

查看進(jìn)程

[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

③ 給腳本增加執(zhí)行權(quán)限

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

④ 設(shè)置定時任務(wù)crontab

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

3 各個數(shù)據(jù)庫備份腳本3.1 Oracle數(shù)據(jù)庫#!/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數(shù)據(jù)庫運(yùn)行賬號oracle的系統(tǒng)環(huán)境變量設(shè)置,必須添加,否則crontab任務(wù)計劃不能執(zhí)行。date=date +%Y_%m_%d #獲取系統(tǒng)當(dāng)前日期時間days=7 #設(shè)置刪除7天之前的備份文件orsid=192.168.1.100:1521/orcl #Oracle數(shù)據(jù)庫服務(wù)器IP、端口、SIDorowner=scott #備份此用戶下面的數(shù)據(jù)bakuser=system #用此用戶來執(zhí)行備份,必須要有備份操作的權(quán)限bakpass=oracle #執(zhí)行備注的用戶密碼bakdir=/backup/oracledata #備份文件路徑,需要提前創(chuàng)建好bakdata=$orowner'_'$date.dmp #備份數(shù)據(jù)庫名稱baklog=$orowner'_'$date.log #備份執(zhí)行時候生成的日志文件名稱ordatabak=$orowner'_'$date.tar.gz #最后保存的Oracle數(shù)據(jù)庫備份文件cd $bakdir #進(jìn)入備份目錄mkdir -p $orowner #按需要備份的Oracle用戶創(chuàng)建目錄cd $orowner #進(jìn)入目錄exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog #執(zhí)行備份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備份,只需將上面執(zhí)行語句換成下面的即可expdp $bakuser/$bakpass@$orsid full=y cluster=n directory=$bakdir dumpfile=$bakdir/$orowner/$bakdata logfile=$bakdir/$orowner/$baklog 3.2 Mysql數(shù)據(jù)庫#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/binexport PATHdbuser='root' #數(shù)據(jù)庫用戶名dbpasswd='123456' #數(shù)據(jù)庫密碼dbname='test1 test2' #數(shù)據(jù)庫名,可以定義多個數(shù)據(jù)庫,中間以空格隔開,如 test1 test2backtime=`date +%Y%m%d%H%M%S` #備份時間logpath= '/home/mysql/backup' #日志備份路徑datapath='/home/mysql/backup' #數(shù)據(jù)備份路徑echo '備份時間為${backtime},備份數(shù)據(jù)庫表 ${dbname} 開始' >> ${logpath}/mysqllog.log #日志記錄頭部#正式備份數(shù)據(jù)庫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 #為節(jié)約硬盤空間,將數(shù)據(jù)庫壓縮rm -f ${datapath}/${backtime}.sql #刪除原始文件,只留壓縮后文件cd $datapathrm -rf `find . -name '*.sql.gz' -mtime +30` >> ${logpath}/mysqllog.log 2>&1 #刪除30天前備份文件echo '數(shù)據(jù)庫表 ${dbname} 備份成功!!' >> ${logpath}/mysqllog.logelseecho “數(shù)據(jù)庫表 ${dbname} 備份失敗!!” >> ${logpath}/mysqllog.log #備份失敗則進(jìn)行以下操作fidone3.3 postgresql數(shù)據(jù)庫#!/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數(shù)據(jù)庫#!/bin/shDUMP=/home/webapp/Downloads/mongoDB/mongodbserver/bin/mongodump #mongodump備份文件執(zhí)行路徑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` #獲取當(dāng)前系統(tǒng)時間DB_USER=XXXX#數(shù)據(jù)庫賬號DB_PASS=XXXX #數(shù)據(jù)庫密碼DB_NAME=TEST #數(shù)據(jù)庫名稱IP=xx.xx.xx.xx:27017DAYS=365 #DAYS=30代表刪除30天前的備份,即只保留最近30天的備份TAR_BAK='mongod_bak_$DATE.tar.gz' #最終保存的數(shù)據(jù)庫備份文件名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 #備份數(shù)據(jù)庫tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE #壓縮為.tar.gz格式find $TAR_DIR/ -mtime +$DAYS -delete #刪除30天前的備份exit4 定時備份數(shù)據(jù)庫實際操作

每天凌晨1點備份以上常見數(shù)據(jù)庫

① 創(chuàng)建備份腳本

在home路徑下創(chuàng)建backup.sh 并添加以上數(shù)據(jù)庫備份shell腳本

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

③ 給腳本增加執(zhí)行權(quán)限

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

③ 設(shè)置定時任務(wù)crontab

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

本期到此就結(jié)束了,下一期我們說一說winserver環(huán)境下數(shù)據(jù)庫備份。

到此這篇關(guān)于linux中數(shù)據(jù)庫的定時備份的文章就介紹到這了,更多相關(guān)數(shù)據(jù)庫定時備份linux篇內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Linux
主站蜘蛛池模板: 珠海冷却塔降噪维修_冷却塔改造报价_凉水塔风机维修厂家- 广东康明节能空调有限公司 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 西安烟道厂家_排气道厂家_包立管厂家「陕西西安」推荐西安天宇烟道 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 杭州网络公司_百度SEO优化-外贸网络推广_抖音小程序开发-杭州乐软科技有限公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 | 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 博客-悦享汽车品质生活 | 100国际学校招生 - 专业国际学校择校升学规划 | 汽车水泵_汽车水泵厂家-瑞安市骏迪汽车配件有限公司 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 | 烟台金蝶财务软件,烟台网站建设,烟台网络推广 | 锂电混合机-新能源混合机-正极材料混料机-高镍,三元材料混料机-负极,包覆混合机-贝尔专业混合混料搅拌机械系统设备厂家 | 深圳货架厂_仓库货架公司_重型仓储货架_线棒货架批发-深圳市诺普泰仓储设备有限公司 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 精准猎取科技资讯,高效阅读科技新闻_科技猎 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | 重庆中专|职高|技校招生-重庆中专招生网 | 诗词大全-古诗名句 - 古诗词赏析| 南京欧陆电气股份有限公司-风力发电机官网 | 真空吸污车_高压清洗车厂家-程力专用汽车股份有限公司官网 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 旅游规划_旅游策划_乡村旅游规划_景区规划设计_旅游规划设计公司-北京绿道联合旅游规划设计有限公司 | 广州展台特装搭建商|特装展位设计搭建|展会特装搭建|特装展台制作设计|展览特装公司 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 派财经_聚焦数字经济内容服务平台| 3d可视化建模_三维展示_产品3d互动数字营销_三维动画制作_3D虚拟商城 【商迪3D】三维展示服务商 广东健伦体育发展有限公司-体育工程配套及销售运动器材的体育用品服务商 | 浙江上沪阀门有限公司| 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | BAUER减速机|ROSSI-MERSEN熔断器-APTECH调压阀-上海爱泽工业设备有限公司 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 |