oracle的imp導入時覆蓋目標數據庫


背景:
oracle正式庫通過exp命令導出的dmp備份包,現在通過imp命令還原到測試庫,測試庫上面的表數據全部不要,要用新的。

方法:
先刪除用戶、用戶所在表空間,再新建用戶和表空間,再imp導入。

過程:

1、用plsql查看用戶的權限等信息並備份,例如

-- Create the user
create user testuser;
-- Grant/Revoke object privileges
grant execute on SYS.DBMS_JOB to testuser;
-- Grant/Revoke role privileges
grant connect to testuser;
grant resource to testuser;
-- Grant/Revoke system privileges
grant create job to testuser;
grant create materialized view to testuser;
grant create view to testuser;
grant debug connect session to testuser;
grant manage scheduler to testuser;
grant unlimited tablespace to testuser;


2、刪除用戶(如果用戶下面有對象,需要加cascade參數)

drop user testuser cascade;

3、用sysdba用戶查詢表空間名稱、磁盤路徑文件

select username,default_tablespace from dba_users; (如用testuser登錄,則查表user_users)
select file_name,tablespace_name from dba_data_files;

4、刪除表空間

--將其offline
alter tablespace testdb offline;
--將磁盤上的數據文件一同刪除(不知道啥原因,本人執行后磁盤上的數據文件還在,這時可以手動刪除掉)
drop tablespace testdb including contents and datafiles;

5、創建表空間

create tablespace dev datafile 'D:\OraData\testdb' size 500m;

6、根據第1步備份的sql,創建用戶

7、數據導入,在cmd命令行下執行

imp testuser/password@ORCL file=D:\backup.dmp fromuser=prduser touser=testuser

參數說明:
testuser/password 登錄用戶名和密碼
file 輸入文件
fromuser 所有人用戶名列表,即導出dmp的用戶名
touser 用戶名列表,即導入dmp的用戶名

 

----------------------------------------------
附,imp和exp對應,都具有三種模式
1、完全:
IMP SYSTEM/MANAGER BUFFER=64000 FILE=C:/FULL.DMP FULL=Y

2、用戶模式(必須指定FROMUSER、TOUSER參數):
IMP SONIC/SONIC BUFFER=64000 FILE=C:/SONIC.DMP FROMUSER=SONIC TOUSER=SONIC
這樣用戶SONIC的所有對象被導入到文件中。必須指定FROMUSER、TOUSER參數。

3、表模式(只導入指定的表):
IMP SONIC/SONIC BUFFER=64000 FILE=C:/SONIC.DMP OWNER=SONIC TABLES=(SONIC)
這樣用戶SONIC的表SONIC就被導入。


imp參數
USERID 用戶名/口令
FULL 導入整個文件 (N)
BUFFER 數據緩沖區大小
FROMUSER 所有人用戶名列表
FILE 輸入文件 (EXPDAT.DMP)
TOUSER 用戶名列表
SHOW 只列出文件內容 (N)
TABLES 表名列表
IGNORE 忽略創建錯誤 (N)
RECORDLENGTH IO 記錄的長度
GRANTS 導入權限 (Y)
INCTYPE 增量導入類型
INDEXES 導入索引 (Y)
COMMIT 提交數組插入 (N)
ROWS 導入數據行 (Y)
PARFILE 參數文件名
LOG 屏幕輸出的日志文件
CONSTRAINTS 導入限制 (Y)
DESTROY 覆蓋表空間數據文件 (N)
INDEXFILE 將表/索引信息寫入指定的文件
SKIP_UNUSABLE_INDEXES 跳過不可用索引的維護 (N)
ANALYZE 執行轉儲文件中的 ANALYZE 語句 (Y)
FEEDBACK 顯示每 x 行 (0) 的進度
TOID_NOVALIDATE 跳過指定類型 id 的校驗
FILESIZE 各轉儲文件的最大尺寸
RECALCULATE_STATISTICS 重新計算統計值 (N)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM