日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows)

發(fā)布時間:2023/12/10 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這是最近寫的一個Oracle數(shù)據(jù)庫自動備份的批處理,經(jīng)過測試正常運行,記錄如下。包括兩部分,邏輯備份和冷備份,如有不完整之處,還往看到本文的高手指導!

注:這些內(nèi)容是本人經(jīng)過一番學習和多次測試調(diào)試后的結果,如果想轉載,請以連接的形式,謝謝合作!

第一部分,邏輯備份

下面是:AutoBackup_Logic.bat --邏輯備份的主文件,直接在計劃任務中調(diào)用就可以了。

@echo off

rem

rem 需要配置的參數(shù)說明:

rem BAT_HOME:即本批處理所在的目錄;

rem DUMP_DIR:即要備份到的數(shù)據(jù)文件目錄,存在與數(shù)據(jù)字典表:dba_directories 中。

rem

set BAT_HOME=E:/BAT

set DUMP_DIR=E:/Temp/DBBackup

set BKFILE=%Date:~0,4%%Date:~5,2%%Date:~8,2%

set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%

call %BAT_HOME%/LogicBackup.bat %DUMP_DIR% >%BAT_HOME%/LogicBackup_%BKFILE%%HHMMSS%.log

echo Completed!

下面是:LogicBackup.bat

@echo off

rem call LogicBackup.bat %DUMP_DIR%

rem ==========================================================================================

rem???? 本批處理實現(xiàn)支持expdp數(shù)據(jù)泵的Oracle數(shù)據(jù)庫版本的數(shù)據(jù)庫邏輯備份,流程為:導出數(shù)據(jù)到

rem dump_dir 數(shù)據(jù)庫目錄下,然后把dmp文件以rar格式放入當天備份日期命名的目錄下,便于以后按

rem 照日期恢復。

rem

rem 需要配置的參數(shù)說明:

rem BAT_HOME:即本批處理所在的目錄;

rem BKDIR:是調(diào)用本批處理時傳進來的參數(shù) dump_dir,即要備份到的數(shù)據(jù)文件目錄。

rem

rem Author: Sanlavo

rem Time: 2007-06-07

rem ==========================================================================================

rem

echo 備份開始...

echo 當前的時間是: %DATE% %time%

set BAT_HOME=E:/BAT

set BKDIR=%1

set BKFILE=%Date:~0,4%%Date:~5,2%%Date:~8,2%

set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%

expdp system/sys parfile=%BAT_HOME%/ScriptsLib/parfiletest.sql

if not exist %BKDIR%/%BKFILE%_LOGIC (

md %BKDIR%/%BKFILE%_LOGIC

) else (

echo 目錄 %BKDIR%/%BKFILE%_LOGIC 已經(jīng)存在

)

echo 開始壓縮文件...

rar a %BKDIR%/%BKFILE%_LOGIC/%BKFILE%%HHMMSS%_LOGIC_FULL.rar %BKDIR%/*.dmp

echo 壓縮文件 %BKFILE%%HHMMSS%_LOGIC_FULL.rar 完成

echo 開始移動文件...

move %BKDIR%/*.dmp %BKDIR%/%BKFILE%_LOGIC/

move %BKDIR%/*.log %BKDIR%/%BKFILE%_LOGIC/

echo 移動文件完成

echo 開始刪除dmp文件...

del /f /s /q %BKDIR%/%BKFILE%_LOGIC/*.dmp

echo 刪除dmp文件完成

net send %userdomain% "數(shù)據(jù)庫邏輯備份已于:%DATE% %time% 完成!"

echo .

echo 備份已于:%DATE% %time% 完成!

echo .

rem 移動批處理的日志文件到備份目錄下面

xcopy %BAT_HOME%/LogicBackup_%BKFILE%*.log %BKDIR%/%BKFILE%_LOGIC/

echo Successfully Completed!

下面是expdp的parfile參數(shù)的文件(parfiletest.sql)內(nèi)容:

directory=dump_dir

dumpfile=DBBackup_Logic_%U.dmp

logfile=DBBackup_Logic.log

filesize=80M

full=y

job_name=EXP_DB_FULL

到此,邏輯備份批處理完成,可以用命令來定時執(zhí)行,例如:

c:/>at 06:06 /every:S E:/BAT/AutoBackup_Logic.bat

這樣,邏輯備份將會在每周星期六凌晨六點六分執(zhí)行。

第二部分,冷備份:

下面是:AutoBackup.bat--主文件

@echo off

set BAT_HOME=E:/BAT

set DUMP_DIR=E:/Temp/DBBackup

call ColdBackup.bat orcl %DUMP_DIR% >%BAT_HOME%/ColdBackup_%DATE:~0,10%.log

pause

下面是備份流程文件:ColdBackup.bat

@echo off

rem E:/BAT>ColdBackup.bat orcl E:/Temp/DBBackup

rem

rem==============================================

rem 要備份的文件列表有:參數(shù)文件、控制文件、數(shù)據(jù)文件、重做日志文件

rem

rem 參數(shù)文件有:

rem %ORACLE_HOME%/database/spfile.ora

rem %ORACLE_HOME%/database/PWD.ora

rem %ORACLE_HOME%/database/pfile.ora

rem

rem 控制文件:可以通過查詢數(shù)據(jù)字典視圖v$control 確認控制文件的位置和清單

rem select status,name from v$controlfile;

rem

rem 數(shù)據(jù)文件:可以通過查詢數(shù)據(jù)字典視圖 dba_data_files 確定數(shù)據(jù)文件的位置和清單

rem select status,file_name from dba_data_files;

rem

rem 重做日志文件:查詢數(shù)據(jù)字典v$logfile可以確認聯(lián)機重做日志文件的位置和清單

rem select group#,status,member from v$logfile;

rem Author: Sanlavo

rem Time: 11:35 2007-5-31

rem==============================================

rem

rem 請在這里配置好本批處理程序所放的路徑BAT_HOME以及ORACLE_HOME:

set ORACLE_HOME=D:/oracle/product/10.2.0/db_1

set BAT_HOME=E:/BAT

set BKFILE=%Date:~0,4%%Date:~5,2%%Date:~8,2%

set HHMMSS=%time:~0,2%%time:~3,2%%time:~6,2%

rem 數(shù)據(jù)庫脫機

call %BAT_HOME%/ShutdownDB.bat %1

rem %1 為數(shù)據(jù)庫?%2為備份文件路徑

rem 創(chuàng)建備份目錄

if exist %2/%BKFILE%_DBBackup (

echo %2/%BKFILE%_DBBackup 已經(jīng)存在

) else (

mkdir %2/%BKFILE%_DBBackup

echo %2/%BKFILE%_DBBackup 已經(jīng)創(chuàng)建

)

rem copy備份文件到備份目錄中

rem call xcopyfiles.bat %1 %2

rem begin ==============================================

echo 數(shù)據(jù)庫 %1 冷備份開始...

rem 備份 dbs 目錄下參數(shù)文件

xcopy %ORACLE_HOME%/dbs/*.* %2/%BKFILE%_DBBackup/dbs /S /I /C /Y /F

rem 備份 %ORACLE_HOME%/database 目錄下參數(shù)文件

xcopy %ORACLE_HOME%/database/*.* %2/%BKFILE%_DBBackup/database /S /I /C /Y /EXCLUDE:ScriptsLib/databaseExclude.lst /F

rem 備份數(shù)據(jù)庫控制文件、數(shù)據(jù)文件、重做日志文件

rem 創(chuàng)建數(shù)據(jù)庫命名的文件夾,存放相關文件

if not exist %2/%BKFILE%_DBBackup/%1 (

md %2/%BKFILE%_DBBackup/%1

)

rem 從filepath.txt中讀取文件路徑信息并copy到目標路徑

for /f %%i in (%BAT_HOME%/ScriptsLib/filepath.txt)? do (

xcopy %%i %2/%BKFILE%_DBBackup/%1 /S /I /C /Y /F

)

echo 數(shù)據(jù)庫 %1 冷備份完成!

rem end ==============================================

echo 啟動數(shù)據(jù)庫

rem 上面的操作過程中以及修改了環(huán)境路徑,所以掉不到該批處理文件

%BAT_HOME:~0,2%

cd %BAT_HOME%

call %BAT_HOME%/StartupDB.bat %1

:Operation

:End

rem if exist *.dmp (

rem move *.dmp %BKFILE%_DBBackup & goto End1

rem echo Move dump file successfull

rem )else (

rem echo 不存在數(shù)據(jù)庫備份文件 & goto End1

rem )

rem End

rem :: 把日期目錄下的文件移動到當前目錄

rem :: move %BKFILE%_DBBackup/*.bat

rem :End1

rem echo *

rem echo Operation Successfully

rem echo *

pause

上文中的:databaseExclude.lst 內(nèi)容如下:

.log

.exe

即,排除日志文件和exe文件,其他的全部備份。

上文中的:filepath.txt

內(nèi)容是經(jīng)過數(shù)據(jù)字典查詢后得到的比如控制文件、數(shù)據(jù)文件、日志文件等的路徑列表,例如:

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/CONTROL01.CTL

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/CONTROL02.CTL

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/CONTROL03.CTL

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/USERS01.DBF

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSAUX01.DBF

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/UNDOTBS01.DBF

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/SYSTEM01.DBF

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/EXAMPLE01.DBF

D:/SDEDB.DBF

E:/SDEDB/SDE_DATA01.DBF

E:/SDEDB/SDE_INDEX01.DBF

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/WJ01.DBF

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO01.LOG

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO02.LOG

D:/ORACLE/PRODUCT/10.2.0/ORADATA/ORCL/REDO03.LOG

...

在冷備份中涉及到數(shù)據(jù)庫的關閉和啟動,這里不在羅索了。關于冷備份的執(zhí)行,也可以模仿邏輯備份部分,在計劃任務中調(diào)用。

(完)

上面這些內(nèi)容整整花了我近兩周的時間,唉,這就是低手的原因了,希望加緊進程,步入高手行列,以后遇到問題后能很快解決,而且更高質(zhì)量的解決。

總結

以上是生活随笔為你收集整理的oracle自动备份定时任务,Oracle数据库定时自动备份批处理代码(Windows)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。