oracle用expdp定時備份全部步驟詳解[轉]

用oracle命令備份數據庫,生成dmp文件,保存了整一套的用戶及表數據信息。還原簡單。加上widnows的批處理bat命令,實現天天0點備份,現把經驗送上給你們!javascript

 

工具/原料

 
  • oracle11g 11.2.0 64位

百度經驗:jingyan.baidu.comhtml

方法/步驟

 
  1. 1

    在「運行」裏打開cmdjava

  2. 2

    輸入命令:sqlplus system/123456@orclsql

    其中system是登陸數據庫的用戶名數據庫

    123456是用戶名的密碼windows

    orcl是數據庫實例名稱oracle

     

  3. 3

    若是提示命令無效,那就是你沒有配置好oracle的環境變量(想當年我也被這個問題困擾着),配置oracle環境變量的方法以下:ssh

     

    一、右擊「個人電腦」->選擇「屬性」->選擇「高級」->單擊「環境變量」二、選擇「Path」這一行,單擊「編 輯」,在「Path」的變量值文本框的最後面先加入一個分號「:」,而後再分號後面加入sqlplus文件的目錄路徑,如「C:\Program Files\oracle\product\10.2.0\db_1\BIN」,而後點擊「肯定」按鈕。三、若是在「系統變量」列表框下面的「變量」列中找不到「ORACLE_HOME」和「ORACLE_SID」這兩個變量,則須要下面操做,不然無需一下操做。四、在「系統變量」中點擊「新建」按鈕,在「變量名」中輸入「ORACLE_HOME」,變量值中輸入Oracle的安裝目錄路徑,如「C:\Program Files\oracle\product\10.2.0\db_1」,而後點擊「肯定」按鈕。五、在「系統變量」中點擊「新建」按鈕,在「變量名」中輸入「ORACLE_SID」,變量值中輸入數據庫的實例名,而後點擊「肯定」按鈕。工具

    ORACLE_HOME:Oracle數據庫軟件的安裝目錄ORACLE_SID:Oracle數據庫的實例名Oracle 數據庫實例名:用於和操做系統進行聯繫的標識,即數據庫和操做系統之間的交換是經過數據庫實例名來體現的。spa

     

    END

百度經驗:jingyan.baidu.com

第二步,EXPDP備份命令

 
  1. 1

    建立oracle的備份目錄:

    sql>create directory dpdata1 as 'D:\temp\dmp';

    這僅僅是在oracle裏設定的目錄,並無真正建立

  2. 2

    能夠經過這句命令查看到這個目錄

    sql>select * from dba_directories;

  3. 3

    賦於要導出數據表的所屬用戶權限

    sql>grant read,write on directory dpdata1 to sshe;

  4. 4

    好了,到了關鍵一步,以前走了很多彎路,但其它是小問題,在網上零零碎碎查了不少資料,終於找到緣由。

    首先,要切換回命令窗口,不要再在sql>下運行,而後輸入命令:

    expdp system/123456@orcl directory=dpdata1 dumpfile=sshe.dmp logfile=sshe.log schemas=sshe

     

  5. 5

    上面報了一個錯ORA-39002:操做無效

    緣由是D:\temp\dmp這個目錄不存在,別覺得create directory以後就會自動生成文件夾,也別覺得執行expdp後會自動生成文件夾,要本身手動新建這個目錄文件夾的。新建文件夾後再試一下,果真成功了!恭喜你,已成功備份!

  6. 6

    若是你要問,導出來的dmp文件怎樣還原回去。好吧,作人作到底,爲了省去你再找方法的麻煩,這裏我也作一個演示(通常備份的數據是等到數據庫有問題時才用的上)。

     

    首先,再一次登陸數據庫 sqlplus system/123456@orcl

    而後,刪除目標數據庫用戶 drop user sshe cascade;

  7. 7

    如今來再一次建立用戶,能夠用命令建立,也能夠在plsql裏建立,這裏在plsql建立。

    用system登陸數據庫,而後右鍵users--新建

    而後填寫你的帳號名稱,必須和備份時的用戶一致,並賦於相應的權限

    最後點擊應用,完成用戶建立。

  8. 8

    返回DOS命令窗口,再也不是sql>

    輸入導入命令:impdp system/123456@orcl directory=dpdata1 dumpfile=SSHE.DMP logfile=sshe.log schemas=sshe

    導入成功!

    END

百度經驗:jingyan.baidu.com

步驟3 定時執行備份任務

 
  1. 作一個按年月日命名的批處理。在D:\temp\目錄下新建一個文件,隨便命名爲.bat,個人命名爲sshe.bat,編輯爲以下代碼

    -------------------------------------------------------------------------

    @echo offrem set backupfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmprem set logfile=f_database_%date:~0,4%-%date:~5,2%-%date:~8,2%.logrem delete 30days filesforfiles /p "D:\temp\dmp" /d -30  /c "cmd /c echo deleting @file ... && del /f @path"cd D:\temp\dmp

    rem backup schemasset backupfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.dmpset logfile=sshe_%date:~0,4%-%date:~5,2%-%date:~8,2%.logexpdp 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天之後的備份文件,這個挺有用的。

  2. 作一個windows每晚自動運行數據庫備份的bat,個人命名爲auto.bat編輯以下內容

    ------------------------------------------------------------------------------

    @ECHO OFFschtasks /create /tn SSHE數據庫定時備份 /tr "D:\temp\sshe_bak.bat" /sc daily /st 00:00:00 /ru "system" PAUSEEXIT

    ------------------------------------------------------------------------------

  3. 雙擊auto.bat,就會在windows添加一個定時任務,每晚0點0分就會自動執行一次sshe.bat,從而完成自動備份的目的。

  4. 右鍵個人電腦:管理——任務計劃程序——任務計劃程序庫,能夠看到剛纔添加進去的定時任務

  5. 能夠將電腦的時鐘設爲23點59分50秒,等待10秒鐘,看看自動備份可否成功。若是成功那就大功告成了!!

     

    原文:http://jingyan.baidu.com/article/9113f81b2040862b3314c757.html

相關文章
相關標籤/搜索