2010-01-05 78 views
2

我在一臺PC上有一個Oracle數據庫。我必須將它遷移到我的其他PC上。兩者都使用單獨的Oracle安裝。現在我怎樣才能從我的一臺PC導出它,然後將它導入到其他PC?導出oracle數據庫(創建數據的.sql文件)

導出然後導入它的命令是什麼?

我想要結構以及要導出然後導入的數據。我正在使用Oracle數據庫。

回答

6

您可以從源數據庫導出數據並將其導入到新數據庫中。

一個很好的鏈接展示這些命令的用法,可以發現here

它歸結爲類似以下的輸出完整的數據庫:

%> exp USERID=<username>/<password> FULL=Y FILE=dbExport.dmp 
%> imp USERID=<username>/<password> FILE=dbExport.dmp FULL=Y 

還有的兩個選項衆多命令來定製它以滿足您的需求。例如,可以將導入命令限制爲僅通過TABLES參數導入某些表,或者可以使用TOUSER,FROMUSER參數在用戶之間移動數據庫對象。也有對是否導出或導入約束,索引等,您可以通過執行找到所有兩個命令的有效參數選項之一:

%> exp help=Y 
%> imp help=Y 
3

你不說你正在使用的數據庫的版本。這是重要的信息,因爲每個版本都會將新功能添加到Oracle。例如,在Oracle 10g中引入了一個新的實用程序DataPump,該實用程序替代了較舊的IMP和EXP(這些實用程序仍包含在安裝中,它們只是被棄用)。

關於DataPump的一個很好的事情是我們可以從數據庫內部以及從OS命令行執行。我最近在this SO thread上發佈了一個使用PL/SQL中的DataPump的例子。 `Oracle提供comprehensive documentation

編輯

無論是老式的IMP/EXP也不數據泵生成的SQL文件(*)。如果這真的是你想要的(而不是簡單地將模式和數據移植到),那麼事情會變得有點棘手。 Oracle有一個包DBMS_METADATA,我們可以使用它來生成DDL腳本,但不會處理數據。要生成實際的INSERT語句,最好的辦法是使用IDE; Quest的TOAD將像Oracle(免費)SQL Developer tool一樣執行此操作。這兩個IDE都會爲我們生成DDL腳本。

(*)數據泵導入可以使用SQLFILE=參數從以前的數據泵導出文件中派生DDL語句。但這只是結構而非數據。

+1

Oracle的SQL開發工具在「工具」 - >「數據庫導出」下具有一項功能,聽起來像它將執行OP所需的功能。 – 2010-01-06 22:43:31