oracle 數據泵(impdp)從DMP文件中恢復備份數據

  • 數據庫恢復
  1. 數據恢復前準備工作
    1. 數據庫基礎環境準備

數據恢復目的機器一臺,安裝ORACLE數據庫,建立空數據庫並將字符集配置爲與待備份數據字符集一致(正常顯示中文的字符集爲SIMPLIFIED CHINESE_CHINA.ZHS16GBK)

    1. 數據庫備份文件準備

準備待備份數據文件(DMP文件,若有對應的日誌文件更好),記錄待備份數據文件放置位置全路徑FilePath(待恢復數據在Oracle中的邏輯目錄);

  1. 數據恢復
    1. 檢查邏輯目錄

檢查邏輯目錄是否存在:SQL語句:select * from dba_directories;

若邏輯目錄不存在,則創建該邏輯目錄:SQL語句:create directorty [邏輯目錄名稱] as ‘[待備份數據所在目錄FilePath]’

    1. 創建表空間

使用oracle數據庫管理員登錄並創建新的空表空間(表空間名稱要與待恢復數據的表空間名稱一致)

Sql語句:create tablespace [表空間名]  datafile ‘[表空間物理數據文件全路徑]’ size 2000M autoextend on next 300M maxsize unlimited;

    1. 創建用戶

使用oracle數據庫管理員登錄並創建新的用戶名(如能與待恢復數據所屬的用戶名一致更好,不一致也可恢復數據)

Sql語句:create user [用戶名] identified by [用戶密碼] default tablespace [新創建的表空間名];

    1. 用戶授權

將邏輯目錄的讀寫權限授權給新建用戶。

SQL語句:grant read,write on directory [邏輯目錄名] to [用戶名];

給用戶授予操作數據庫更新表空間的權限。

SQL語句:grant dba,resource,unlimited tablespace to [用戶名]

    1. 調用數據泵恢復文件

數據恢復命令是在cmd控制檯輸入,並非sql語句

若新建用戶名與原用戶名一致:

恢復SQL:impdp [用戶名]/[密碼]@ip地址/[實例名] directory=[邏輯目錄] schames=[用戶名] dumpfile=[待恢復數據dmp文件全程] logfile=[impdp操作日誌名稱]

1)導入模式(從模式username1導入到模式username1)

impdp username1/[email protected]/orcl dumpfile=expdp.dmp directory=dump_dir schemas=username1 logfile=impdp.log;

2)導入表(從username1中把表dept和emp導入到system用戶中)

impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp tables=username1.dept, username1.emp remap_schema= username1:system logfile=impdp.log table_exists_action=replace (表空間已存在則替換);

3)導入表空間

impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;

4)導入整個數據庫

impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章