前言:數據庫
最近,客戶方要求天天定時導出數據庫某個用戶對象數據,方便出錯時用於數據恢復或用於調用數據。因爲客戶生產環境的數據庫爲非歸檔模式,數據量比較小,最後採用古老的exp/imp導出導入方法。下面主要講解一下EXP/IMP用戶對象導出導入的使用方法。windows
正文:session
操做系統windows server 2003 oracle10goracle
EXP用戶對象導出操做:ide
在oracle客戶端配置tnsnames.ora工具
canway =spa
(DESCRIPTION =操作系統
(ADDRESS_LIST =命令行
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.2.43)(PORT = 1521))日誌
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
使用EXP用戶對象導出的方法比較簡單:
打開cmd窗口,執行如下命令:
exp system/canway@canway owner=用戶名 file=*.dmp log=*.log compress=y direct=nrows=y
#標註:owner:須要導出的用戶名compress: 導入一個extent (Y) DIRECT:直接路徑 (N) ROWS: 導出數據行 (Y)
IMP用戶對象導入操做:
因爲imp導入用戶對象數據,不會進行覆蓋,故導入以前須要作如下操做:
1.查看用戶對應默認表空間:
select username,DEFAULT_TABLESPACE from dba_users;
2.刪除用戶並刪除此用戶名下的全部表和視圖(不刪除用戶所在的表空間):
drop user username cascade;
(若該用戶正在運行,須要KILL掉會話
select sid,serial# from v$session where username='user_name';
alter system kill session 'sid,serial'; )
3.重建以前的用戶和密碼:
create user 用戶名 identified by 密碼 default tablespace 表空間名;
(查找用戶對應的默認表空間:
select username,DEFAULT_TABLESPACE from dba_users;)
4.賦予用戶適當的權力
grant connect,resource,dba to 用戶名;
5.對用戶對象數據導入:
運行在命令行的窗口下
imp system/canway@canway file=I:\backup\*.dmplog=I:\backup\*.log fromuser=導出的用戶名 touser=導入的用戶名;
#註釋:file=導出文件存放的直接路徑和名稱.dmp log=導入過程當中產生的日誌追蹤log
Fromuser:導出的文件全部者touser:即將須要導入到哪一個用戶名。
總結:Exp/Imp導出導入是一個好的轉儲工具,特別是在小型數據庫的轉儲,表空間的遷移,表的抽取,檢測邏輯和物理衝突等中有不小的功勞,本次主要介紹用戶對象導出導入的方法。而對於愈來愈大的數據庫,特別是TB級數據庫和愈來愈多數據倉庫的出現,EXP/IMP愈來愈力不從心了,這個時候,數據庫的備份都轉向了RMAN和第三方工具。