第一種方式:我本身用的腳本數據庫
set BACKUP_DIR=backupwindows
set ORACLE_USERNAME=masicong服務器
set ORACLE_PASSWORD=masicongdom
set ORACLE_DB=orclide
set BACK_OPTION=SCHEMAS=masicong工具
set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"命令行
set DUMPDIR=DIRECTORY=dump_dir日誌
for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%atoken
set BACK_NAME=%ORACLE_DB%%TODAY%rem
set BACK_FULL_NAME=%BACK_NAME%
rem 開始備份
expdp %ORACLE_USERNAME%/%ORACLE_PASSWORD% %DUMPDIR% %BACK_OPTION% dumpfile=%BACK_FULL_NAME%.dmp logfile=%BACK_FULL_NAME%exp.log
rem 壓縮並剔除原有資料
%RAR_CMD% a -df "%BACK_FULL_NAME%back.rar" "%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%exp.log"
PAUSE
第二種方式:
@echo off
@echo =========================================================================
@echo Oracle 10g 數據庫的自動導出備份腳本(windows環境)。
@echo 說明:啓動備份時,須要配置如下變量
@echo 一、BACKUP_DIR 指定要備份到哪一個中間目錄,壓縮完成後將被移動到BACKUP_WAREHOUSE目錄下
@echo 二、BACKUP_WAREHOUSE 指定歷史備份數據(壓縮後的)及日誌的存放位置
@echo 三、ORACLE_USERNAME 指定備份所用的Oracle用戶名
@echo 四、ORACLE_PASSWORD 指定備份所用的Oracle密碼
@echo 五、ORACLE_DB 指定備份所用的Oracle服務名
@echo 六、BACK_OPTION 備份選項,能夠爲空,能夠爲full=y,能夠爲owner=a用戶,b用戶 或 TABLES=() 等等....
@echo 七、RAR_CMD 指定RAR命令行壓縮工具所在目錄
@echo =========================================================================
REM ======================================================
REM 備份103服務器 ITCQB 賬號下的數據
REM ======================================================
rem 如下變量須要根據實際狀況配置
set BACKUP_DIR=E:\11
set BACKUP_WAREHOUSE=e:\11\11
set ORACLE_USERNAME=manager
set ORACLE_PASSWORD=masicong
set ORACLE_DB=orcl
set BACK_OPTION="SCHEMAS=ekpuser"
set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"
for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a
REM 若是文件名中須要小時及分鐘,用下面第一行語句
REM set BACK_NAME=%ORACLE_DB%_%TODAY%(%time:~0,2%時%time:~3,2%分)_
set BACK_NAME=%ORACLE_DB%_%ORACLE_USERNAME%_%TODAY%
set BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%
REM 將操做記入批處理日誌 %BACK_FULL_NAME%_bat.log
echo ==================備份103服務器 ITCQB賬號下的數據================= >>%BACK_FULL_NAME%_bat.log
echo 備份開始...... >>%BACK_FULL_NAME%_bat.log
echo 當前的時間是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
expdp%ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB%grants=Y %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%_exp.log"
if not exist %BACKUP_WAREHOUSE%\%BACK_NAME%_LOGIC (md %BACKUP_WAREHOUSE%\%BACK_NAME%_LOGIC)
echo 壓縮並刪除原有dmp文件...... >>%BACK_FULL_NAME%_bat.log
echo 當前的時間是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
%RAR_CMD% a -df "%BACK_NAME%_logic.rar" "%BACK_FULL_NAME%.dmp"
REM "%BACK_FULL_NAME%exp.log"
echo 壓縮並刪除原有dmp文件結束! >>%BACK_FULL_NAME%_bat.log
echo 當前的時間是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
echo 開始移動文件...... >>%BACK_FULL_NAME%_bat.log
echo 當前的時間是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
move %BACKUP_DIR%\*.rar %BACKUP_WAREHOUSE%\%BACK_NAME%_LOGIC\
echo 移動文件完成! >>%BACK_FULL_NAME%_bat.log
echo 當前的時間是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
REM net send %userdomain% "數據庫邏輯備份已於:%DATE% %time% 完成!"
echo .
echo 備份完成!!! >>%BACK_FULL_NAME%_bat.log
echo 當前的時間是: %DATE% %time% >>%BACK_FULL_NAME%_bat.log
echo ===============備份103服務器 ITCQB賬號下的數據完成!!!============== >>%BACK_FULL_NAME%_bat.log
move %BACKUP_DIR%\*.log %BACKUP_WAREHOUSE%\%BACK_NAME%_CLOGIC\
echo .