1.1 數(shù)據(jù)庫數(shù)據(jù)全庫備份
注:此操作需要啟動數(shù)據(jù)庫。
切換至oracle用戶,在OS側(cè)創(chuàng)建備份使用目錄:
mkdir /oracle/backup
登錄oracle數(shù)據(jù)庫,在數(shù)據(jù)庫中創(chuàng)建備份使用目錄
sqlplus / as sysdba
create directory backupdir as '/oracle/backup';
退出sqlplus后,用oracle用戶執(zhí)行全庫備份,備份文件生成在/oracle/backup下:
expdp system/System123 DIRECTORY=backupdir DUMPFILE=backup201309XX.dmp logfile=backup.log full=y
1.2 數(shù)據(jù)庫數(shù)據(jù)恢復
注:此操作需要啟動數(shù)據(jù)庫。
1、 用orale用戶登陸數(shù)據(jù)庫服務(wù)器
2、 刪除要恢復的用戶.
sqlplus / as sysdba
drop user USER_NAME cascade;
exit
3、 執(zhí)行恢復命令
如下語句恢復pgm用戶的數(shù)據(jù)到backup201309XX.dmp狀態(tài)
impdp system/System123 DIRECTORY=backupdir DUMPFILE=backup201309XX.dmp schemas=pgm TABLE_EXISTS_ACTION=TRUNCATE logfile=restore.log
數(shù)據(jù)庫恢復時注意事項:
exp/imp方式備份恢復數(shù)據(jù)庫無法對數(shù)據(jù)庫定義(也就是表結(jié)構(gòu)之類的)進行刪除和修改。
所以,如果在恢復時,數(shù)據(jù)庫表結(jié)構(gòu)發(fā)生變化了,則需要將表結(jié)構(gòu)恢復,或?qū)⒈韯h除,再執(zhí)行恢復操作。如果搞不清楚哪些表結(jié)構(gòu)發(fā)生了變化,可以先將需要恢復的數(shù)據(jù)庫用戶刪除,然后再執(zhí)行恢復操作。
另外,經(jīng)過證實,刪除表后,再恢復該表,存在一個問題:刪表的時候,其他表創(chuàng)建的引用這個表的外鍵刪掉。
恢復的時候,無法恢復該外鍵。這種情況需要恢復后手動創(chuàng)建外鍵約束。
drop table TABLE_NAME cascade constraints;
impdp system/System123 DIRECTORY=backupdir DUMPFILE=backup201309XX.dmp tables=sdu.E_UC_ENTANN TABLE_EXISTS_ACTION=TRUNCATE logfile=restore_sdu.log
您可能感興趣的文章:- oracle冷備份恢復和oracle異機恢復使用方法
- oracle數(shù)據(jù)庫創(chuàng)建備份與恢復腳本整理
- ORACLE 數(shù)據(jù)庫RMAN備份恢復
- Oracle數(shù)據(jù)庫的備份及恢復策略研究
- Oracle數(shù)據(jù)庫的備份與恢復
- Oracle數(shù)據(jù)庫的備份與恢復
- Oracle數(shù)據(jù)庫的備份與恢復
- Oracle中備份表的簡單sql命令語句
- Linux中Oracle數(shù)據(jù)庫備份
- 批處理寫的 oracle 數(shù)據(jù)庫備份還原工具
- PL/SQL遠程備份和恢復Oracle數(shù)據(jù)庫