2016-07-12 47 views
2

我有一臺電腦上得到了甲骨文10,有我有一個數據庫centt。 在B計算機上我已經安裝了Oracle 11.2.0,並且沒有數據庫。 計算機上的數據庫的名稱是centt有我也有一些用戶喜歡STT,WNN,TNN等 現在我想整個數據庫從一臺計算機導出所有用戶文件(例如,allDBdump.dat) 。 然後我想將這個數據庫(文件allDBdump.dat)導入B計算機。 我用export命令像下面的計算機上:如何從Oracle 10中導出整個數據庫並將其與所有用戶導入Oracle 11.2.0?

exp userid=sys/sys file='c:\allDBdump.dat' log='c:\allDBdump.log' FULL=Y 

現在我想與所有用戶的計算機上導入整個數據庫。 我知道,導入之前,我需要在計算機上創建一個數據庫,通過「數據庫配置助手」。 然後,我需要通過命令來創建SQL工具的所有用戶:

CREATE USER st IDENTIFIED BY st; 
GRANT ALL PRIVILEGES TO st WITH ADMIN OPTION; 
GRANT IMP_FULL_DATABASE TO st WITH ADMIN OPTION; 

然後我用命令導入數據庫:

imp 'sys/[email protected]:1521/centt as sysdba' FULL=Y file=allDBdump.dat fromuser=st touser=st 

這個解決方案是好的,但我需要知道導入之前所有用戶。 的問題是如何做到這一點,如何導入allDBdump.dat,而無需創建的所有用戶的計算機上。 類似於:

imp 'sys/[email protected]:1521/centt as sysdba' FULL=Y file=allDBdump.dat IMPORT_ENTIRE_DATABASE_WITH_ALL_USERS_ON_A_COMPUTER 

非常感謝。

+0

請你幫個忙,並使用IMPDP/EXPDP代替EXP/IMP。在新版本的Oracle(如上下文)中,exp/imp不能正確處理幾件事情。 –

回答

0

你試過Datapump?它好多了。唯一的缺點是,你需要兩個服務器上的目錄(或db_link聯繫他們)

expdp system/[email protected] full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log 

impdp system/[email protected] full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=impdpDB11G.log 
+0

我試過這樣的: expdp'sys/sys @ dba as sysdba'full = Y'directory = D:\ tmpFolder'dumpfile = dump.dmp logfile = dump.log 我有錯誤: LRM -00105:「目錄= d:\ tmpFolder」不允許全 – user2856064

+0

邏輯值@ user2856064你需要指定一個數據庫目錄。在'select * from SYS.ALL_DIRECTORIES'上查找它們''您至少應該擁有DATA_PUMP_DIR,它是expdp/impdp的默認目錄 – vercelli

+0

@ user2856064它是怎麼回事? – vercelli

相關問題