oracle11g自動備份腳本
『壹』 Oracle 11g windows下 增量備份
SQL語句:創建備份目錄
CREATE OR REPLACE DIRECTORY backup AS 'd:\tank';
GRANT READ, WRITE ON DIRECTORY backup TO tank;
以下為windows 批處理腳本,放到計劃任務下。
forfiles /p "d:\tank" /d -30 /c "cmd /c echo deleting @file … && del /f @path"
cd d:\tank
set backupfile=tank_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmp
set logfile=tank_%date:~0,4%-%date:~5,2%-%date:~8,2%.log
"expdp.exe" tank/tank directory=backup mpfile=%backupfile% logfile=%logfile% schemas=tank parallel=4
『貳』 oracle資料庫怎麼自動備份
配置批處理文件
1
新建名為"oracleBackup"的文本文檔(名字自己定),然後重命名後綴為"oracleBackup.bat"的批處理文件。
2
在oracleBackup.bat文件上點擊右鍵,選擇編輯,填寫以下相關內容:
rem ---------------------------------------------------------------------------
rem windows環境下Oracle資料庫的自動備份腳本。
rem 可以將本批處理設成windows任務計劃下自動執行。
@echo off
@echo ================================================
@echo windows環境下Oracle資料庫的自動備份腳本
@echo 說明:啟動備份時,需要配置以下變數
@echo 1、BACKUP_DIR 指定要備份到哪個目錄
@echo 2、ORACLE_USERNAME 指定備份所用的Oracle用戶名
@echo 3、ORACLE_PASSWORD 指定備份所用的Oracle密碼
@echo 4、ORACLE_DB 指定備份所用的Oracle連接名
@echo 5、BACK_OPTION 備份選項,可以為空,可以為full=y,可以為owner=a用戶,b用戶 等等....
@echo 6、RAR_CMD 指定RAR命令行壓縮工具所在目錄
@echo ================================================
rem 以下變數需要根據實際情況配置------> 注意:此腳本必須放在E:\backup目錄下
set BACKUP_DIR=E:\backup
set ORACLE_USERNAME=se
set ORACLE_PASSWORD=xj
set ORACLE_DB=xj_orcl
set BACK_OPTION= OWNER=se
set RAR_CMD="C:\Program Files\WinRAR\Rar.exe"
for /f "tokens=1,2" %%a in ('date/t') do set TODAY=%%a
set BACK_NAME=%ORACLE_DB%_%TODAY%()_
set BACK_FULL_NAME=%BACKUP_DIR%\%BACK_NAME%
rem 開始備份
exp %ORACLE_USERNAME%/%ORACLE_PASSWORD%@%ORACLE_DB% %BACK_OPTION% file="%BACK_FULL_NAME%.dmp" log="%BACK_FULL_NAME%exp.log"
rem 壓縮並刪除原有文件
%RAR_CMD% a -df "%BACK_FULL_NAME%back.rar" "%BACK_FULL_NAME%.dmp" "%BACK_FULL_NAME%exp.log"
rem ---------------------------------------------------------------------------
forfiles /m *.rar -d -7 /c "cmd /c del /f @path"
3
配置相關參數:
BACKUP_DIR:該參數為備份數據文件的存放位置,可根據實際情況進行設置(註:設置的文件路徑不允許包含漢字、特殊字元等內容)。
ORACLE_USERNAME:該參數為指定備份的Oracle資料庫用戶名。
ORACLE_PASSWORD:該參數為指定備份的Oracle資料庫密碼。
ORACLE_DB:該參數為指定備份的Oracle資料庫連接名。
BACK_OPTION:該參數為備份選項,可以為空,也可以為full=y等。
RAR_CMD:指定RAR命令行壓縮工具所在目錄
END
安裝軟體
1
下載WINRAR安裝包。
2
點擊"wrar520sc_setup.exe",進行安裝軟體。
3
根據軟體的安裝路徑,在命名的bat處理文件中配置:RAR_CMD參數。
END
添加定時任務
打開電腦的控制面板,選擇"任務計劃",雙擊打開。頁面如圖所示:
雙擊打開添加定時任務,點擊下一步進入相關設置頁面。頁面如圖所示:
單擊瀏覽按鈕,找到oracleBackup.bat文件添加,然後進行配置:根據實際情況選擇要備份的時間類型,此處以每天執行為例,選擇每天,點擊下一步,設置執行時間。
輸入執行定時任務機器的用戶名及密碼,點擊下一步,進入完成界面,點擊完成,至此,Oracle資料庫定時任務備份的設置。
5
利用修改機器時間進行定時任務的測試。
『叄』 我寫了個Oracle資料庫自動備份腳本,執行後只有log文件,沒有dmp文件,在線等。bat文件內容如下:
大致看了下,沒發現你的批處理有明顯問題。
那就簡單說下排查思路。
1、既然問題出在備份上,就先不要理會刪除備份的問題。
2、相信你寫批處理以前應該手工輸入exp命令成功備份過。
3、把 exp那句輸出到文本或批處理文件如下,用記事本打開backdb.txt看看與你成功備份的手輸命令有和不同,然後做相應修改即可。
exp改為:
echoexp%USER%/%PASSWORD%@%DATABASE%full=yfile=%DATADIR%\%BACKUPDATE%.DMPlog=%LOGDIR%\%BACKUPDATE%.log>backdb.txt
『肆』 Oracle資料庫RMAN的自動備份腳本簡介
Oracle資料庫RMAN的自動備份腳本簡介
各位同學知道Oracle資料庫RMAN如何自動備份腳本嘛?下面我為大家整理了關於Oracle資料庫RMAN的自動備份腳本文章,希望能為你提供幫助:
1、資料庫設置為歸檔方式
2、資料庫的備份腳本
db_full_backup.sh :資料庫全備腳本
db_l0_backup.sh :資料庫0級備份腳本
db_l1_backup.sh :資料庫1級備份腳本
ftp_del.sh :數據FTP清理腳本
rman_bak.sh :數據備份主程序
3、備份原理
每周1、3、6進行0級備份
每周日、2、4、5進行1級備份
備份文件上傳到FTP伺服器
FTP伺服器每周清理一次,但是清理後將周六和周日的備份進行保留(6.bak和0.bak)
所有工作防暑crontab中自動執行備份
4、備份目錄含義
arc :資料庫歸檔目錄
rmanbak :資料庫備份文件的保存目錄
rmanscripts :資料庫腳本存放路徑
5、FTP目錄
ftp上必須手動建立目錄
L0:
---1
---3
---6
---6.bak
L1:
---2
---4
---5
---0
---0.bak
rman_bak.sh腳本主程序
#!/bin/bash
#--------------------------------------------
# Oracle auto backup using rman
#
# author:songrh
# week:1,3,6 Level 0 backup
# 2,4,5,0 Level 1 backup
# Copyright by ChenLong Tec
#--------------------------------------------
#
#
export ORACLE_BASE=/u02/oracle
export ORACLE_HOME=/u02/oracle/proct/9.2.4
export ORACLE_SID=PROD
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export NLS_LANG=american_america.ZHS16GBK
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORA_NL33=$ORACLE_HOME/ocommon/nls/admin/data
export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH
export PATH=$PATH:/opt/local/bin
#
SH_PATH=/u02/rmanscripts
ARC_PATH=/u02/arch
RMAN_BAK_PATH=/u02/rmanbak
#
#FULL_PATH=$RMAN_BAK_PATH/full
L0_PATH=$RMAN_BAK_PATH/L0
L1_PATH=$RMAN_BAK_PATH/L1
#
#DAY_TAG=`date "%Y-%m-%d"`
LOG_TAG=`date "%Y-%m-%d"`
#FIRST_DAY=`date %e`
WEEK=`date %w`
#WEEK=1
#
# FTP configure
IP="122.120.150.155"
FTPUSER="ftpbak"
FTPPASS="******"
FTPROOT0="L0"
FTPROOT1="L1"
#
DISK_USE=`df -k |sed -n '/u02/'p | awk '{print $5}' |sed 's/%//'`
####check path function
############
if [[ $DISK_USE -ge 90 ]]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
fi
if [ "$WEEK" = "6" -o "$WEEK" = "3" -o "$WEEK" = "1" ]; then
if [ ! -d $L0_PATH ]; then
mkdir $L0_PATH
fi
if [ "$WEEK" = "1" ]; then
rm -rf $L0_PATH/*
rm -rf $L1_PATH/*
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp_del.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
if [ ! -d $L0_PATH/$WEEK ]; then
mkdir $L0_PATH/$WEEK
$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK
cd $L0_PATH/$WEEK
$SH_PATH/ftp.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log
else
;
『伍』 oracle資料庫自動備份系統
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。下面我為大家分享一下oracle資料庫自動備份系統的 方法 ,有需要的可以參考一下!
oracle資料庫自動備份系統
實現過程:
1. 建立文件 backup.bat (自定義文件名.bat)
@echo off
REM ###########################################################
REM # Windows Server 2003下Oracle資料庫自動備份批處理腳本
REM ###########################################################
REM 取當前系統時間,可能因 操作系統 不同而取值不一樣
set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%
set CURMON=%date:~0,4%%date:~5,2%
set CURTIME=%time:~0,2%
REM 小時數如果小於10,則在前面補0
if "%CURTIME%"==" 0" set CURTIME=00
if "%CURTIME%"==" 1" set CURTIME=01
if "%CURTIME%"==" 2" set CURTIME=02
if "%CURTIME%"==" 3" set CURTIME=03
if "%CURTIME%"==" 4" set CURTIME=04
if "%CURTIME%"==" 5" set CURTIME=05
if "%CURTIME%"==" 6" set CURTIME=06
if "%CURTIME%"==" 7" set CURTIME=07
if "%CURTIME%"==" 8" set CURTIME=08
if "%CURTIME%"==" 9" set CURTIME=09
set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%
REM 設置所有者、用戶名和密碼
set OWNER=orcl
set USER=bktcgl
set PASSWORD=bktcgl
REM 創建備份用目錄,目錄結構為oraclebak/YYYYMMDD/
if not exist "oraclebak" mkdir oraclebak
cd oraclebak
if not exist "%CURMON%" mkdir %CURMON%
set FILENAME=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%.DMP
set EXPLOG=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%_log.log
REM 調用ORACLE的exp命令導出用戶數據
exp %USER%/%PASSWORD%@%OWNER% file=%FILENAME% log=%EXPLOG% owner=%USER% grants=n
exit
註:
1.bat文件可雙擊或直接在命令行執行,檢查正確與否
2.檢查時可注釋掉exit
3.以上文件實現按月份創建文件夾,按時間生成備份文件
2.建立windows任務
步驟:
開始 -> 所有程序 -> 附件 -> 系統工具 -> 任務計劃程序 -> 操作 -> 創建基本任務
-> 任務名輸入"oracle_backup"(自定義任務名),執行這個任務選擇每天,下一步
-> 起始時間下午12:00,起始日期2012-7-11,下一步 ->(啟動程序)下一步
->在 瀏覽 中查找剛剛寫好的 backup.bat 文件 >下一步 > 完成
註:
1.在任務計劃欄目下新增一個名為"oracle_backup"的任務計劃,表明已經配置完畢。
2.不同系統的任務計劃略有不同,但基本換湯不換葯,不做一一例舉
問題:系統警告"已創建新任務,但可能不能運行,因為無法設置賬戶信息。指定的錯誤是:Ox80041315:任務計劃程序服務沒有運行"
原因:電腦的任務計劃程序服務沒有啟動起來。
解決:開始 > 所有程序 > 管理工具 > 服務,找到"Task Scheler"服務,發現啟動類型為"已禁用",
右鍵單擊更改為"自動",並把它啟動起來,然後重新添加一次任務計劃就可以了。
3.簡單解釋
1. bat:是dos下的批處理文件。批處理文件是無格式的文本文件,它包含一條或多條命令。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用 Cmd.exe按照該文件中各個命令出現的順序來逐個運行它們。
2. Echo 命令:打開回顯或關閉請求回顯功能,或顯示消息。
3. @ 命令:表示不顯示@後面的命令
4. Rem 命令:注釋命令
5. If命令:if表示將判斷是否符合規定的條件,從而決定執行不同的命令。
6. exit :退出命令行
7. GRANTS: 是許可權的意思,在你導出的目標資料庫中可能會有一些表的如select 許可權等賦給了別的用戶。
【GRANTS=Y】導出的時候將這些許可權導出,導入的時候將這些許可權導入。
【GRANTS=N】許可權不被導入。
『陸』 oracle中怎麼設置資料庫自動備份
Oracle自動備份的三種方法:
Oracle自動備份資料庫不外乎以下三種方式:
WINDOWS下的任務計劃(At命令)
UNIX下的Crontab
第三方工具如Viritas
在以上三種方式中Viritas屬於第三方工具,很多人可能都沒有接觸,主要說一下windows的任務計劃與unix的cron
1、生成腳本文件,如backup.rcv 假定文件內容如下:
$>cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format 『/u01/oradata/backup/arch%u_%s_%p』 archivelog all delete input; release channel c1; release channel c2; release channel c3; }
2、生成執行文件在windows上生成backup_archive.bat,內容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,內容包括oracle/ramn/rman cmdfile = backup.rcv
3、加入調度在windows中用任務計劃向導即可,或使用at命令。在unix中,在目標機器上編寫一個文件,用以啟動Oracle自動備份進程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下
$>cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23點對資料庫備份
0 12,18 * * * backup_archive.sh
#表示每天12點,18點備份
Crontab文件的每一行由六個域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來。
『柒』 oracle資料庫如何每天自動執行腳本完成正式資料庫到備份資料庫的備份
寫個腳本完成正式資料庫到備份資料庫的備份
再設定Task Schele 每天某個時間自動執行這個腳本