1. 程式人生 > >windows下使用bat批處理文件定時自動備份oracle數據庫並上傳ftp服務器

windows下使用bat批處理文件定時自動備份oracle數據庫並上傳ftp服務器

upd 使用 pup bye upload ora file ftp服務器 .bat

使用bat批處理文件備份oracle(前提是配置好oracle數據庫客戶端)
在D盤目錄下創建個dbbackup目錄建個dbbak.bat

@echo off   

echo ================================================   

echo  Windows環境下Oracle數據庫的自動備份腳本  

echo  1. 使用當前日期命名備份文件。  

echo  2. 自動刪除15天前的備份。  

echo ================================================  

::以“YYYYMMDD”格式取出當前時間。  

set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%

::創建備份目錄。  

if not exist "D:\dbbackup\data"    mkdir D:\dbbackup\data  

if not exist "D:\dbbackup\log"     mkdir D:\dbbackup\log  

set DATADIR=D:\dbbackup\data

set LOGDIR=D:\dbbackup\log

exp userid=‘ntes/123@orcl‘  file=%DATADIR%\njtes_%BACKUPDATE%.dmp log=%LOGDIR%\njtesog_%BACKUPDATE%.log  

::刪除15天前的備份。  

forfiles /p "%DATADIR%" /s /m *.* /d -15 /c "cmd /c del @path"  

forfiles /p "%LOGDIR%" /s /m *.* /d -15 /c "cmd /c del @path" 

::上傳文件到FTP服務器
echo open IP地址>ftpupload.txt
echo user 用戶名 密碼>>ftpupload.txt
echo binary>>ftpupload.txt     //設定以二進制方式傳送文件
echo hash>>ftpupload.txt       //切換已傳輸的每個數據塊的數字簽名 (#) 打印
echo put  %DATADIR%\njtes_%BACKUPDATE%.dmp>>ftpupload.txt      //上傳文件
echo bye>>ftpupload.txt
ftp -n -s:ftpupload.txt
del ftpupload.txt /q     .//刪除生成的ftpupload.txt文件,這個文件都是上面的信息可以不用保留
exit

註:dbbak.bat備份腳本放在了D:\dbbackup,如果ftpupload.txt文件不做刪除的話會在dbbak.bat腳本的(D:\dbbackup)同級目錄生成的。

windows下使用bat批處理文件定時自動備份oracle數據庫並上傳ftp服務器