當前位置:首頁 » 編程軟體 » oracle11g自動備份腳本

oracle11g自動備份腳本

發布時間: 2023-07-30 16:04:04

『壹』 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.sh :數據FTP上傳腳本

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 每天某個時間自動執行這個腳本

熱點內容
python3graphics 發布:2025-02-05 21:36:57 瀏覽:511
為什麼英雄聯盟一個伺服器進不去 發布:2025-02-05 21:36:12 瀏覽:182
伺服器搭建網站開發教材 發布:2025-02-05 21:31:57 瀏覽:567
pythonrose 發布:2025-02-05 21:31:46 瀏覽:923
php數組從小到大排序 發布:2025-02-05 21:26:01 瀏覽:324
單片機存儲器擴展 發布:2025-02-05 21:17:35 瀏覽:966
sqler圖 發布:2025-02-05 21:10:58 瀏覽:630
網路編程android 發布:2025-02-05 21:05:49 瀏覽:346
python時間毫秒數 發布:2025-02-05 20:51:32 瀏覽:331
clash安卓如何切換節點 發布:2025-02-05 20:48:20 瀏覽:890