oracle如何用expdp定時備份數據庫?Oracle是甲骨文公司憑借自已30年的設計經驗,成功打造的功能強大的關系數據庫管理系統,用oracle命令備份數據庫,生成dmp文件,保存了整一套的用戶及表數據信息。而且還原簡單。加上widnows的批處理bat命令,實現每天0點備份,那么,具體要怎么操作呢?現把oracle用expdp實現定時備份數據庫的詳細方法步驟送上給大家,一起去看看吧!
步驟一:
1、在“運行”里打開cmd
2、輸入命令:sqlplus system/123456@orcl
其中system是登錄數據庫的用戶名
123456是用戶名的密碼
orcl是數據庫實例名稱
3、如果提示命令無效,那就是你沒有配置好oracle的環境變量(想當年我也被這個問題困擾著),配置oracle環境變量的方法如下:
1、右擊“我的電腦”->選擇“屬性”->選擇“高級”->單擊“環境變量”
2、選擇“Path”這一行,單擊“編 輯”,在“Path”的變量值文本框的最后面先加入一個分號“:”,然后再分號后面加入sqlplus文件的目錄路徑,如“C:/Program Files/oracle/product/10.2.0/db_1/BIN”,然后點擊“確定”按鈕。
3、如果在“系統變量”列表框下面的“變量”列中找不到“ORACLE_HOME”和“ORACLE_SID”這兩個變量,則需要下面操作,否則無需一下操作。
4、在“系統變量”中點擊“新建”按鈕,在“變量名”中輸入“ORACLE_HOME”,變量值中輸入Oracle的安裝目錄路徑,如“C:/Program Files/oracle/product/10.2.0/db1”,然后點擊“確定”按鈕。
5、在“系統變量”中點擊“新建”按鈕,在“變量名”中輸入“ORACLE_SID”,變量值中輸入數據庫的實例名,然后點擊“確定”按鈕。
ORACLE_HOME:Oracle數據庫軟件的安裝目錄
ORACLE_SID:Oracle數據庫的實例名
Oracle 數據庫實例名:用于和操作系統進行聯系的標識,即數據庫和操作系統之間的交換是通過數據庫實例名來體現的。
步驟二:創建oracle的備份目錄
1、sql>create directory dpdata1 as 'D:/temp/dmp';這僅僅是在oracle里設定的目錄,并沒有真正創建
2、可以通過這句命令查看到這個目錄 sql>select * from dba_directories;
3、賦于要導出數據表的所屬用戶權限 sql>grant read,write on directory dpdata1 to sshe;
4、好了,到了關鍵一步,之前走了不少彎路,但其它是小問題,在網上零零碎碎查了很多資料,終于找到原因。
首先,要切換回命令窗口,不要再在sql>下運行,然后輸入命令:
expdp system/123456@orcl directory=dpdata1 dumpfile=sshe.dmp logfile=sshe.log schemas=sshe
5、上面報了一個錯ORA-39002:操作無效
原因是D:/temp/dmp這個目錄不存在,別以為create directory之后就會自動生成文件夾,也別以為執行expdp后會自動生成文件夾,要自己手動新建這個目錄文件夾的。新建文件夾后再試一下,果然成功了!恭喜你,已成功備份!
6、如果你要問,導出來的dmp文件怎樣還原回去。好吧,做人做到底,為了省去你再找方法的麻煩,這里我也做一個演示(一般備份的數據是等到數據庫有問題時才用的上)。
首先,再一次登錄數據庫 sqlplus system/123456@orcl
然后,刪除目標數據庫用戶 drop user sshe cascade;
7、現在來再一次創建用戶,可以用命令創建,也可以在plsql里創建,這里在plsql創建。
用system登錄數據庫,然后右鍵users--新建
然后填寫你的賬號名稱,必須和備份時的用戶一致,并賦于相應的權限
最后點擊應用,完成用戶創建。
8、返回DOS命令窗口,不再是sql>
輸入導入命令:impdp system/123456@orcl directory=dpdata1 dumpfile=SSHE.DMP logfile=sshe.log schemas=sshe
導入成功!
步驟三:定時執行備份任務
1、做一個按年月日命名的批處理。在D:/temp/目錄下新建一個文件,隨便命名為.bat,我的命名為sshe.bat,編輯為如下代碼
-------------------------------------------------------------------------
@echo off
rem set backupfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmp
rem set logfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.log
rem delete 30days files
forfiles /p "D:/temp/dmp" /d -30 /c "cmd /c echo deleting @file ... && del /f @path"
cd D:/temp/dmp
rem backup schemas
set backupfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmp
set logfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.log
expdp sshe/sshe directory=DIR_DP dumpfile=%backupfile% logfile=%logfile% schemas=sshe parallel=4
-------------------------------------------------------------------------------
可以試執行一下,會自動生成一個以年月日命名的備份文件
forfiles /p "D:/temp/dmp" /d -30 /c "cmd /c echo deleting @file ... && del /f @path"的作用是:刪除本目錄下30天以后的備份文件,這個挺有用的。
(之前有人反映說上面bat排版有問題,可能是系統自動縮進了,現在再重新修改了,如果還沒有是有排版問題,請參照以下圖--2017.12.5改)
2、做一個windows每晚自動運行數據庫備份的bat,我的命名為auto.bat編輯如下內容
------------------------------------------------------------------------------
@ECHO OFF
schtasks /create /tn SSHE數據庫定時備份 /tr "D:/dmp/sshe_bak.bat" /sc daily /st 00:00:00 /ru "system"
PAUSE
EXIT
windows每晚自動運行數據庫備份bat
------------------------------------------------------------------------------
(之前有人反映說上面bat排版有問題,可能是系統自動縮進了,現在再重新修改了,如果還沒有是有排版問題,請參照以下圖--2017.12.5改)
3、雙擊auto.bat,就會在windows添加一個定時任務,每晚0點0分就會自動執行一次sshe.bat,從而完成自動備份的目的。
4、右鍵我的電腦:管理——任務計劃程序——任務計劃程序庫,可以看到剛才添加進去的定時任務
5、可以將電腦的時鐘設為23點59分50秒,等待10秒鐘,看看自動備份能否成功。如果成功那就大功告成了!!
教程結束,以上就是關于oracle如何用expdp定時備份?oracle用expdp實現定時備份數據庫圖文詳細教程的全部內容,希望大家看完有所收獲!
相關教程推薦:
使用Navicat for Oracle工具連接oracle的圖文教程
Oracle VM VirtualBox工具怎么用 VirtualBox虛擬機安裝教程圖解
Oracle VM VirtualBox虛擬機的安裝使用圖文教程
新聞熱點
疑難解答
圖片精選