本章節(jié)采用比較常見(jiàn)的邏輯備份exp/imp息罗。
本系列文章是把作者剛接觸和學(xué)習(xí)Linux時(shí)候的實(shí)操記錄分享出來(lái)轻局,內(nèi)容主要包括Linux入門(mén)的一些理論概念知識(shí)梧却、Web程序迹蛤、mysql數(shù)據(jù)庫(kù)的簡(jiǎn)單安裝部署民珍,希望能夠幫到一些初學(xué)者,少走一些彎路盗飒。
注意:
Linux下區(qū)分大小寫(xiě)嚷量;
Linux多用戶(hù)多線(xiàn)程;
Linux下每個(gè)文件和目錄都有訪(fǎng)問(wèn)權(quán)限逆趣;
linux下Oracle定時(shí)備份
本章節(jié)采用比較常見(jiàn)的邏輯備份exp/imp蝶溶。
一、Oracle數(shù)據(jù)導(dǎo)入導(dǎo)出語(yǔ)法
1.數(shù)據(jù)導(dǎo)出
#導(dǎo)出全庫(kù)(只有dba權(quán)限的用戶(hù)才能導(dǎo)出全庫(kù))
$ exp dba用戶(hù)/dba密碼@實(shí)例名 file=導(dǎo)出文件.dmp log=導(dǎo)出日志文件.log full=y
#導(dǎo)出指定用戶(hù)的表
$ exp dba用戶(hù)/dba密碼@實(shí)例名 file=導(dǎo)出文件.dmp log=導(dǎo)出日志文件名.log owner=用戶(hù)
#也可以使用普通用戶(hù)導(dǎo)出自己的表
$ exp 用戶(hù)/密碼@實(shí)例名 file=導(dǎo)出文件.dmp log=導(dǎo)出日志文件.log
#導(dǎo)出多個(gè)用戶(hù)的表
$ exp dba用戶(hù)/dba密碼@實(shí)例 file=導(dǎo)出文件名.dmp log=導(dǎo)出日志文件.log owner=用戶(hù)1,用戶(hù)2
#導(dǎo)出指定表
$ exp dba用戶(hù)/dba密碼@實(shí)例 file=導(dǎo)出文件.dmp log=導(dǎo)出日志文件.log tables=表1,表2
#只導(dǎo)出表結(jié)構(gòu)
# 在導(dǎo)出語(yǔ)句后追加rows=n參數(shù)即可宣渗,rows=n表示不導(dǎo)出數(shù)據(jù)行抖所。
2.數(shù)據(jù)導(dǎo)入
#導(dǎo)入全庫(kù)
$ exp dba用戶(hù)/dba密碼@實(shí)例 file=導(dǎo)出文件.dmp log=導(dǎo)出日志文件.log full=y
#單個(gè)用戶(hù)的表
$ exp dba用戶(hù)/dba密碼@實(shí)例 file=導(dǎo)出文件.dmp log=導(dǎo)出日志文件.log formuser=導(dǎo)出時(shí)的用戶(hù) touser=要導(dǎo)入的用戶(hù)
#導(dǎo)入指定的表
$ exp dba用戶(hù)/dba密碼@實(shí)例 file=導(dǎo)出文件.dmp log=導(dǎo)出日志文件.log tables=表1,表2
二、定時(shí)備份
1.備份策略
邏輯備份exp痕囱;
備份路徑為/home/db_bak田轧;
定時(shí)備份為每晚23.00執(zhí)行;
保留7天的備份咐蝇;
2.編輯備份腳本ora_bak.sh
# vim /home/db_bak/ora_bak.sh
內(nèi)容如下:
#這里需要重新設(shè)置環(huán)境變量涯鲁,因?yàn)閏rontab定時(shí)器是系統(tǒng)程序,沒(méi)有oracle的環(huán)境變量
#設(shè)置oracle環(huán)境變量
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:/usr/sbin:$ORACLE_HOME/bin
#或者直接執(zhí)行source使oracle的環(huán)境變量生效有序,因?yàn)橹?bash_profile里已經(jīng)配置過(guò)了
# source /home/oracle/.bash_profile
#備份目錄
bak_dir=/home/db_bak
#備份用戶(hù)名
d_name=test
#備份時(shí)間
time=$(date +%Y%m%d%H)
#開(kāi)始備份
exp test/test@orcl file=$bak_dir/$d_name_$time.dmp log=$bak_dir/$d_name_$time.log
#或者異地備份
#exp test/test@172.16.2.100/orcl file=$bak_dir/$d_name_$time.dmp log=$bak_dir/$d_name_$time.log
#刪除7天以前的備份抹腿,注意find語(yǔ)句結(jié)尾的分號(hào)
find $bak_dir -name "*.dmp" -mtime +7 -exec rm -f {} \;
find $bak_dir -name "*.log" -mtime +7 -exec rm -f {} \;
3.添加定時(shí)任務(wù)
方法一:crontab -e,為用戶(hù)設(shè)置定時(shí)器
# crontab -e -u oracle #使用默認(rèn)編輯器設(shè)置給oracle用戶(hù)定時(shí)器
或者切換到orale用戶(hù)后執(zhí)行
$ crontab -e
#增加以下內(nèi)容:
0 23 * * * sh /home/db_bak/ora_bak.sh > /home/db_bak/backup.log 2>&1
#生效后文件存入/var/spool/cron/oracle旭寿,另外crontab -e對(duì)格式有校驗(yàn)
方法二:編輯定時(shí)器文件警绩,為系統(tǒng)設(shè)置定時(shí)器,可以指定執(zhí)行用戶(hù)
# vim /etc/crontab
#增加以下內(nèi)容:
0 23 * * * oracle sh /home/db_bak/ora_bak.sh > /home/db_bak/backup.log 2>&1
三盅称、備份恢復(fù)/導(dǎo)入
切換到oracle用戶(hù)
# su - oracle
$ imp test2/test2@orcl file=/home/db_bak/test_20210830.dmp log=imp.log formuser=test touser=test2
#參數(shù)說(shuō)明:formuser導(dǎo)出時(shí)的用戶(hù)名肩祥,touser要導(dǎo)入的用戶(hù)名
在這里插入圖片描述
在這里插入圖片描述
IT小胖豆:初學(xué)者踩坑之路及過(guò)程分享,希望能夠幫到一些初學(xué)者缩膝,歡迎各位IT打工人混狠,入坑討論-_-