2009年12月11日 星期五

oracle-xe簡易備份資料庫

查了網路上許多的文件, 有的還滿複雜的.

對於我現在工作與初學者的角度來看, 其實我只是要備份整個XE資料庫

偏偏ORACLE又不像MySql一樣, 簡單複製一整個.MVI檔就好.

找到一個好指令, 不過必須要記得DATABASE中, 使用者的帳號密碼就是了.

以下是文章內容…

oraclebox is a solaris box with oracle 10g installed

oraclebox#  export ORACLE_HOME=/u01/app/oracle/oracle/product/10.2.0/db_1
(set this to ur own oracle home dir)
oraclebox# cd $ORACLE_HOME/bin
oraclebox# ./exp 'username/password@orcl
(follow the prompts - this will create a file called expdat.dmp - copy this
to the Oracle XE server)

xebox is a debian box with oracle xe edition installed

xebox# export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/
xebox# cd $ORACLE_HOME/bin
xebox# ./imp 'username/password@xe'

不過在匯入前, 記得要先有原本資料庫的帳號密碼要先建立.

同時在匯入時, 要輸入相對應的帳號名稱.

記得先匯入 system 帳號對應的.dmp檔案, 之後再匯入其他的, 才不會出錯!

資料備份 – 使用 Export、Import:
● 有關 Oracle 資料備份的方式有很多種,還可分為:離線式、線上式、熱備份、冷備份,本文僅挑重點敘述。欲知詳細步驟及各種備份方式的特點請自行參考相關書籍。
● 此項 EXP 備份工具,較適合備份「部份 Table 或全部 Table」、「部份 Object 或所有 Object」,亦可備份「整個資料庫」。此工具將資料 Dump 出來是以 Binary 的方式,因此無法用記事本開啟檔案。此外,須具備足夠權限才能 Export 別人 Schema 的 Object,且有少數系統內建的 Schema 亦無法以此方式 Export。
Export (備份):
開啟命令提示字元,輸入 “exp system/用戶密碼@資料庫名稱” → 詢問陣列緩衝區的大小(值的大小僅會影響備份速度) → 匯出檔案名稱(如:backup1.dmp,預設最後會將檔案匯出在 C 槽底下) → 詢問匯出類型(分為:1.整個資料庫 2.使用者 3.表格) → 接下來選項大部份都可選 “yes”(例如是否要壓縮) → 自動開始備份

Import (回復):
開啟命令提示字元,輸入 “imp system/用戶密碼@資料庫名稱” → 詢問從哪個檔案回復 詢問陣列緩衝區的大小 → 詢問「是否僅列出匯入檔案的內容」(若選擇 “no”,會逐步詢問以下的相關資料,否則會跳過一些步驟) → 告知「物件已存在,建立物件的錯誤被略過不予以處理」(預設值為 “no”,則系統碰到錯誤就會顯示錯誤訊息) → 詢問「是否匯入整個匯出檔」(若選 “yes” 則會將原先所有 Export 的資料全部匯入;若選 “no” 則會詢問是要匯入哪位 User 的 Schema、哪一個 Table) → 自動開始回復

● 此項 Export、Import 的備份及回復功能,必須在資料庫啟動時才能操作。版工試過可在有使用者連線時備份和回復,且結束時亦顯示未發生任何錯誤。但建議實務上還是儘量選在使用者 離線時做備份,以避免影響運作績效或對用戶作業造成干擾,甚至造成資料的不一致或毀損。

文章出處:

http://linux.dtbaker.com.au/post/exporting_data_from_oracle_10g_to_oracle_xe.html

http://j2se.myweb.hinet.net/article/jdbc/002.htm

沒有留言: