- 數據庫恢復
- 數據恢復前準備工作
- 數據庫基礎環境準備
數據恢復目的機器一臺,安裝ORACLE數據庫,建立空數據庫並將字符集配置爲與待備份數據字符集一致(正常顯示中文的字符集爲SIMPLIFIED CHINESE_CHINA.ZHS16GBK)
-
- 數據庫備份文件準備
準備待備份數據文件(DMP文件,若有對應的日誌文件更好),記錄待備份數據文件放置位置全路徑FilePath(待恢復數據在Oracle中的邏輯目錄);
- 數據恢復
- 檢查邏輯目錄
檢查邏輯目錄是否存在:SQL語句:select * from dba_directories;
若邏輯目錄不存在,則創建該邏輯目錄:SQL語句:create directorty [邏輯目錄名稱] as ‘[待備份數據所在目錄FilePath]’
-
- 創建表空間
使用oracle數據庫管理員登錄並創建新的空表空間(表空間名稱要與待恢復數據的表空間名稱一致)
Sql語句:create tablespace [表空間名] datafile ‘[表空間物理數據文件全路徑]’ size 2000M autoextend on next 300M maxsize unlimited;
-
- 創建用戶
使用oracle數據庫管理員登錄並創建新的用戶名(如能與待恢復數據所屬的用戶名一致更好,不一致也可恢復數據)
Sql語句:create user [用戶名] identified by [用戶密碼] default tablespace [新創建的表空間名];
-
- 用戶授權
將邏輯目錄的讀寫權限授權給新建用戶。
SQL語句:grant read,write on directory [邏輯目錄名] to [用戶名];
給用戶授予操作數據庫更新表空間的權限。
SQL語句:grant dba,resource,unlimited tablespace to [用戶名]
-
- 調用數據泵恢復文件
數據恢復命令是在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;