用job來(lái)實(shí)現(xiàn),可以把腳本文件寫為存儲(chǔ)過(guò)程直接用job調(diào)用就好了,這個(gè)定時(shí)執(zhí)行,如果執(zhí)行一次可以用PLSQL Developer直接導(dǎo)入sql腳本執(zhí)行
創(chuàng)新互聯(lián)專注于企業(yè)成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、壽陽(yáng)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為壽陽(yáng)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
第一步:創(chuàng)建腳本文件。
在Oracle數(shù)據(jù)庫(kù)重,創(chuàng)建腳本文件的方式很多。如可以直接在記事本中創(chuàng)建腳本文件,也可以通過(guò)SQL*Plus工具直接創(chuàng)建。不過(guò),筆者的意見(jiàn)是,在SQL*Plus中直接創(chuàng)建腳本文件的話,比較麻煩。這主要是因?yàn)樵赟QL*Plus工具中,命令編輯能力非常有效。如不能夠使用鍵盤上的箭頭鍵定位輸入的位置,不能夠使用DEL鍵刪除輸入的內(nèi)容等等。而且閱讀起來(lái)也比較困難。
第二步:編輯腳本文件。
在我們使用腳本文件的時(shí)候,往往需要根據(jù)實(shí)際情況,對(duì)其進(jìn)行稍微的調(diào)整。對(duì)腳本文件進(jìn)行編輯,也有兩種方式。一是通過(guò)SQL*Plus工具,二是第三方獨(dú)立的腳本編輯軟件。
對(duì)于一些調(diào)整不大的腳本文件,我們可以直接利用SQL*Plus工具打開(kāi),然后進(jìn)行編輯。但是,對(duì)于需要進(jìn)行大量修改的腳本文件,則筆者建議數(shù)據(jù)庫(kù)管理員采用第三方獨(dú)立的腳本編輯軟件。原因很簡(jiǎn)單,就如同上面所說(shuō)的那樣,SQL*Plus工具腳本命令編輯功能非常的薄弱。若采用這個(gè)工具對(duì)現(xiàn)成的腳本語(yǔ)句進(jìn)行編輯的話,則可能工作量還是重新編寫一個(gè)來(lái)的輕。所以,數(shù)據(jù)庫(kù)管理員要根據(jù)實(shí)際的情況,選擇合適的腳本編輯工具。
另外,在編輯的過(guò)程中,要注意語(yǔ)法的正確性。特別是要注意,不能夠改變其固有的格式。如不要不小心刪除了最后的“/”符號(hào)結(jié)束。
第三步:運(yùn)行腳本文件。
腳本建立好之后,如何運(yùn)行腳本呢?在Oracle系統(tǒng)中也提供了許多方式。數(shù)據(jù)庫(kù)管理員可以根據(jù)自己的使用習(xí)慣來(lái)進(jìn)行選擇。
一是通過(guò)Start語(yǔ)句來(lái)調(diào)用腳本文件。其語(yǔ)法是Start Filemame[相關(guān)參數(shù)]。在運(yùn)行這個(gè)命令的時(shí)候,需要注意幾個(gè)問(wèn)題。
1、腳本文件的擴(kuò)展名問(wèn)題。上面在建立腳本文件的時(shí)候,筆者就跳掉過(guò),為了在SQL*Plus等工具中可以直接調(diào)用這個(gè)腳本文件,最好能夠把擴(kuò)展名改為Oracle數(shù)據(jù)庫(kù)能夠接受的擴(kuò)展名。默認(rèn)情況下,擴(kuò)展名設(shè)置為SQL即可。
2、腳本文件的路徑問(wèn)題。若用戶在利用Start調(diào)用腳本文件的時(shí)候,若沒(méi)有清楚的指名保存路徑的話,則SQL*Plus工具會(huì)現(xiàn)在當(dāng)前的目錄中進(jìn)行查找;若沒(méi)有的話,則會(huì)根據(jù)環(huán)境變量中確定的目錄中進(jìn)行查找。而一般情況下,我們把腳本文件都會(huì)獨(dú)立存放。所以,在使用Start命令執(zhí)行腳本文件的時(shí)候,最好能夠注明腳本文件的絕對(duì)路徑名。防止語(yǔ)句執(zhí)行錯(cuò)誤。
另外@命令也可以起到跟Start命令一樣的作用。只不過(guò),前者的使用范圍更廣一點(diǎn)。@命令可以脫離SQL*PLUS工具而使用。如可以直接在微軟操作系統(tǒng)中的命令行方式下使用。當(dāng)然,這操作系統(tǒng)要事先部署了Oracle數(shù)據(jù)庫(kù)環(huán)境。
二是可以直接利用SQL*Plus工具打開(kāi)文本文件,執(zhí)行腳本語(yǔ)句。然后點(diǎn)擊“文件”、“執(zhí)行”命令執(zhí)行這個(gè)腳本語(yǔ)句。這種方式的好處就是,系統(tǒng)會(huì)主動(dòng)提示用戶需要輸入的參數(shù)。
總之,腳本文件是我們管理Oracle數(shù)據(jù)庫(kù)的一大利器。我們好好利用腳本文件,可以提高Oracle數(shù)據(jù)庫(kù)的管理效率。畢竟,每次在需要的時(shí)候,都去編寫命令是一件很麻煩的事情。而腳本文件的最大好處,就是可以提高語(yǔ)句的重復(fù)利用,節(jié)省我們編寫語(yǔ)句、調(diào)試測(cè)試的時(shí)間。
連接數(shù)據(jù)庫(kù)SQL connect / as sysdba
運(yùn)行腳本SQL @/admin/XX.sql 這里的/adminXX.sql 是絕對(duì)路徑名, linux系統(tǒng)的話要注意 目錄權(quán)限問(wèn)題,windows就不用。
首先,做一個(gè)簡(jiǎn)單的sql文件(log.sql)。
在這個(gè)SQL文件中我們創(chuàng)建了一個(gè)表。
接下來(lái),我們來(lái)建一個(gè)bat批處理文件(log.bat)。
在這個(gè)bat文件里面我們調(diào)用絕對(duì)路徑的sql文件,并將執(zhí)行過(guò)程及結(jié)果輸出到log.txt文件中。
最后,我們運(yùn)行bat文件,執(zhí)行多個(gè)sql腳本plsql語(yǔ)句。
bat文件調(diào)用數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程:
假設(shè)數(shù)據(jù)庫(kù)中一個(gè)存儲(chǔ)過(guò)程,名稱為Produce_log
我們只需要修改獨(dú)立的sql文件如下即可:
execute Produce_log;
exit;
樓主:供參考
利用任務(wù)計(jì)劃、批處理文件和ORACLE的EXP導(dǎo)出功能,可以根據(jù)日期自動(dòng)生成ORACLE備份文件,大大方便了ORACLE數(shù)據(jù)備份。
建議一(做周備份并壓縮為RAR)以下為ORACLE 自動(dòng)備份批處理文件內(nèi)容,請(qǐng)配合任務(wù)計(jì)劃實(shí)現(xiàn) :
例:
@ECHO OFF
SET BACKPATH=d:\
ECHO 準(zhǔn)備備份數(shù)據(jù)庫(kù)
REM 7天一個(gè)循環(huán)
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN
ECHO E %BACKPATH%\ONE
:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK
:BACK
EXP ccense/ccense FILE=%BACKPATH_FULL%.DMP
RAR a %BACKPATH_FULL%.rar %BACKPATH_FULL%.DMP
DEL %BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
說(shuō)明:
文件名以星期來(lái)命名
備份后調(diào)用rar進(jìn)行壓縮
這樣可以保存一個(gè)星期的歷史數(shù)據(jù)
注意:需要把program files/winrar目錄下的rar.exe拷貝到系統(tǒng)system32目錄下
建議二:
1,批處理文件backup.bat\.
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log
將生成oracle2006-01-09.dmp文件
exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log
將生成oracle星期一.dmp文件,則每周循環(huán)保留一個(gè)備份文件,共7個(gè)備份文件循環(huán) $date$日期參數(shù)可靈活運(yùn)用。
1:并行執(zhí)行的話,可以多開(kāi)窗口
2:串行執(zhí)行多個(gè)腳本的話,可以使用把下面內(nèi)部保存在1個(gè)sql腳本內(nèi)容,這樣自動(dòng)調(diào)用多個(gè)腳本執(zhí)行
@@D:\SQL\autoExec\1.sql
@@D:\SQL\autoExec\2.sql
@@D:\SQL\autoExec\3.sql