2012-11-07 22 views
2

我習慣於使用SQL Server,當我想在那裏複製一個數據庫時,我只需要嚮導中的一些點擊操作,就可以完成數據庫的複製,而無需使源數據庫脫機。複製Oracle DB到同一臺服務器上測試數據庫的最簡單方法是什麼?

我們現在也有一個Oracle 11g,因爲有些機器需要它,我想製作一個數據庫副本。只需在同一臺服務器上覆制一份,即可用作我的軟件開發的測試數據庫。

我發現的所有指令都是充滿步驟的頁面,使用RMAN或不使用RMAN,您必須編寫腳本,使用命令行的東西......我很驚訝於使用Oracle時如此低效的常見任務。

複製數據庫沒有簡單的方法嗎?也許只是將所有內容導出到SQL文件,然後編輯它以使用另一個數據庫名稱,然後再次執行它?

我看到,在SQL Developer中,您可以從工具菜單中選擇「數據庫副本...」,但會詢問目標連接。如何在創建目標數據庫時選擇目標是運行嚮導的全部要點?或者連接與數據庫不一樣?

感謝您幫助我在這裏!

回答

1

您通常需要一個新的數據庫來複制數據,並且可以使用數據泵導出/導入來複制數據。恐怕沒有太多方法可以解決,但您可能考慮的一種選擇是更多地使用虛擬機,例如Oracle自己的VirtualBox,因爲它們可以非常容易地以絕對確定的字節順序克隆字節保真度。

順便說一句,在製作邏輯副本(通過導出/導入)數據庫時出現的一個問題是,容易以不同的物理模式結束表和索引,這可能會導致查詢優化中出現意想不到的差異。

+0

我剛剛創建了一個新的空數據庫。如果我的理解正確,我現在需要在服務器上爲它創建一個新的服務名稱,然後建立一個到服務名稱的新連接,最後我可以使用SQL Developer> Tools> Database Copy ...對吧? 還是我忘記了什麼? 再次感謝! – SonOfGrey

+0

當您啓動數據庫實例時,它應該自動向偵聽器註冊自己。我沒有使用SQL Developer COPY功能,但可能需要先創建一個到新數據庫的新連接?如何實現取決於您是要引用tnsnames.ora文件,還是使用「基本」連接規範來命名主機(或IP),端口號(如果不是1521默認值)和服務名稱。 –

+0

好吧,我設法連接到空的示例數據庫並註冊了一個網絡服務名稱。我現在可以在我的SQL Developer中通過一個新的連接訪問它。試過數據庫複製,但我得到了幾個命名空間錯誤,似乎沒有發生任何事情......我會盡力與Google進一步討論此功能。 – SonOfGrey

相關問題