oracle備份 數據庫 分爲:所有備份,按表空間 備份, 按用戶備份。mysql
還原時 也同一行 有這三種方式。那麼 怎麼才能成功的還原數據看呢? sql
先說一下 備份命令:數據庫
expdp sys/password@ORCL DIRECTORY=dmpdir DUMPFILE=20170731.dmp [SCHEMAS=xxx_username][full=y] [tablespace = XXX_TABLE_SPACE]
[SCHEMAS=xxx_username] 按照用戶 備份; ----經常使用oracle
[full=y] 全備份;----經常使用spa
[tablespace = XXX_TABLE_SPACE] 按表空間備份;-----不經常使用code
一、三種模式用到的狀況 和 優缺點對比:字符串
全備份:table
優勢:當數據庫 數據很少時,適合所有備份 。還原時 表空間 、用戶也會自動建立。很方便還原。im
缺點:數據多時很慢 容易卡死。數據
按用戶備份:
有點:數據庫數據不少,只按照當前用戶備份,很快。
缺點:須要手動建立用到的 用戶 、表空間。
按表空間備份:
優勢:若是那個表空間 損壞,或者沒還原成功,能夠單獨備份還原。
缺點:沒針對用戶,可能不少垃圾數據。
二、用戶,表空間的關係:
用戶 :用來區分 數據庫域。 每一個用戶下的域,能夠加你本身的表,表名能夠重名。
表空間:存儲數據的區域,無論是誰建的,都按字節存起來。
【們看得出來,用戶就至關於 MSServer 和mysql中的實例。每一個實例均可以建本身的表,互不影響,不會出現重名不能建立。 】
三、三種模式 的還原
impdp sys/password@ORCL DIRECTORY=dmpdir DUMPFILE=20170731.dmp [SCHEMAS=xxx_username][full=y] [tablespace = XXX_TABLE_SPACE]
[SCHEMAS=xxx_username] 按照用戶 備份; ----經常使用
[full=y] 全備份;----經常使用
[tablespace = XXX_TABLE_SPACE] 按表空間備份;-----不經常使用
全備份: 必須建立 備份數據庫的 表空間文件 路徑, 空間才能自動 建立 還原。
按用戶備份: 必須把用戶、表空間 所有建好。
按表空間備份: 創建 表空間便可。
若是還原報錯,請分析錯誤,而後具體來解決。。。。祝你成功!~~~~~*\ ^_^ /*~~~
======================
順便說說 DIRECTORY:
DIRECTORY 爲oracle聲明的路徑,它不會幫你建立這個路徑,只是存了一個字符串, 若是你建立這個DIRECTORY,請把 這個路徑的 每一級文件夾都建好,DIRECTORY 路徑就能夠用了。