exp方式導(dǎo)出:1、根據(jù)日期自動(dòng)生成 Oracle 備份文件@echo off echo 正在備份Oracle數(shù)據(jù)庫(kù),請(qǐng)稍等...... exp userid='用戶名/密碼@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%da...
exp方式導(dǎo)出:
1、根據(jù)日期自動(dòng)生成 Oracle 備份文件
@echo off
echo 正在備份Oracle數(shù)據(jù)庫(kù),請(qǐng)稍等......
exp userid='用戶名/密碼@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.dmp log=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%.log owner=res
echo 任務(wù)完成!
2、根據(jù)日期時(shí)間分秒自動(dòng)生成 Oracle 備份文件
@echo off
echo 正在備份Oracle數(shù)據(jù)庫(kù),請(qǐng)稍等......
exp userid='用戶名/密碼@SID' file=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%.dmp log=D:\bak\res_%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%.log
echo 任務(wù)完成!
3、用exit結(jié)尾備份完后自動(dòng)退出:
@echo off
echo ================================================
echo Windows環(huán)境下Oracle數(shù)據(jù)庫(kù)的自動(dòng)備份腳本
echo 1. 使用當(dāng)前日期命名備份文件。
echo 2. 自動(dòng)刪除7天前的備份。
echo ================================================
::以“YYYYMMDD”格式取出當(dāng)前時(shí)間。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%
::創(chuàng)建備份目錄。
if not exist "D:\backup\data" mkdir D:\backup\data
if not exist "D:\backup\log" mkdir D:\backup\log
set DATADIR=D:\backup\data
set LOGDIR=D:\backup\log
exp userid='用戶名/密碼@SID' file=%DATADIR%\data_%BACKUPDATE%.dmp log=%LOGDIR%\log_%BACKUPDATE%.log
::刪除7天前的備份。
forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path"
exit
注:如果有時(shí)我們寫bat腳本執(zhí)行時(shí)一閃而過(guò),無(wú)法排錯(cuò);那么我可以在腳本的最后加個(gè)pause(如上面的腳本可以把exit換成pause),用pause結(jié)尾執(zhí)行完后,會(huì)提示按任意鍵來(lái)繼續(xù)或退出,這樣我就能知道是什么報(bào)錯(cuò)。
expdp方法導(dǎo)出:
用exit結(jié)尾備份完后自動(dòng)退出:
@echo off
echo ================================================
echo Windows環(huán)境下Oracle數(shù)據(jù)庫(kù)的自動(dòng)備份腳本
echo 1. 使用當(dāng)前日期命名備份文件。
echo 2. 自動(dòng)刪除10天前的備份。
echo 3.使用expdb命令導(dǎo)出需要先在數(shù)據(jù)庫(kù)中創(chuàng)建備份文件存貯目錄,sql如下:
echo create directory backdir as 'D:\backup\data';
echo ================================================
::以“YYYYMMDD”格式取出當(dāng)前時(shí)間。
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%
::設(shè)置用戶名、密碼和sid。
set bakdbname=app
set bakdbpasswd=123
set sid=orcl
set dumpbame=appbak
set bakdbhome=D:\backup\data
::創(chuàng)建備份目錄。
if not exist "D:\backup\data" mkdir D:\backup\data
::expdp備份
expdp %bakdbname%/%bakdbpasswd%@%sid% directory=backdir dumpfile=%dumpbame%_%BACKUPDATE%.dmp logfile=%dumpbame%_%BACKUPDATE%.log
::切換目錄
d:
cd %bakdbhome%
::調(diào)用rar進(jìn)行壓縮
::方法一winrar把log、dmp文件壓縮成zip,不保留原始文件log,dmp文件(任選一種)
"C:\Program Files\WinRAR\Rar" a -m5 -dw %dumpbame%_%BACKUPDATE%".zip" %dumpbame%_%BACKUPDATE%.DMP
::方法二用winrar把log、dmp文件壓縮成zip并保留原始文件log,dmp文件(任選一種),去掉dw這個(gè)參數(shù)
"C:\Program Files\WinRAR\WinRAR.exe" a -m5 %dumpbame%_%BACKUPDATE%".zip" %dumpbame%_%BACKUPDATE%.log %dumpbame%_%BACKUPDATE%.DMP
::刪除10天前的備份。
forfiles /p "%bakdbhome%" /s /m *.zip /d -10 /c "cmd /c del @path"
forfiles /p "%bakdbhome%" /s /m *.log /d -10 /c "cmd /c del @path"
forfiles /p "%bakdbhome%" /s /m *.dmp /d -10 /c "cmd /c del @path"
exit
-----------------------------------
?著作權(quán)歸作者所有:來(lái)自51CTO博客作者M(jìn)_ling的原創(chuàng)作品,請(qǐng)聯(lián)系作者獲取轉(zhuǎn)載授權(quán),否則將追究法律責(zé)任
windows下oracle數(shù)據(jù)庫(kù)自動(dòng)備份bat腳本
https://blog.51cto.com/meiling/1573848
來(lái)源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺(tái),并已注明來(lái)源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)聯(lián)系小編,我們會(huì)及時(shí)審核處理。
聲明:江蘇教育黃頁(yè)對(duì)文中觀點(diǎn)保持中立,對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或者完整性不提供任何明示或暗示的保證,不對(duì)文章觀點(diǎn)負(fù)責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。
Copyright©2013-2025 ?JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺(tái)保留所有權(quán)利
蘇公網(wǎng)安備32010402000125
蘇ICP備14051488號(hào)-3技術(shù)支持:南京博盛藍(lán)睿網(wǎng)絡(luò)科技有限公司
南京思必達(dá)教育科技有限公司版權(quán)所有 百度統(tǒng)計(jì)