2012-04-18 59 views
0

我們有一個生產問題,涉及託管環境中的多個實例。我想在本地進行一些測試,並希望在本地重現類似的環境。有沒有辦法創建,比如40個實例,創建一個簡單的表,用循環填充它?Oracle 11g - 創建X個實例,用於測試

似乎使40左右需要很多時間。理想情況下,創建Instance1,Instance2等等,與表格無關,並且希望放入大量數據來模擬某種處理。

感謝

+0

您是否熟悉Oracle的工作方式? (實例/數據庫/架構/表) – 2012-04-18 13:34:01

+0

幾乎沒有,隨着我的學習。我來自SQL Server的背景。 – dave2118 2012-04-18 13:42:20

+0

好的,我從你的描述中得到了這個ID。 – 2012-04-18 13:44:48

回答

1

我不是100%肯定這是否準確回答你的問題,但我會試試看。

Oracle有一個數據庫,這是一個數據文件的集合。實例只是用作客戶端數據庫接口的進程集合。所以我的假設是你想在數據庫中創建模式,並用表格對它們進行輪詢並在這些表格中放入一些數據。 如果是這樣的話,那是相當simpel:

假設默認tablepace了爲用戶USERS 登錄爲DBA和運行

begin 
for i in 1..40 loop 
    execute immediate 'create user schema_'||i||' identified by bigsecret quota unlimited on users'; 
    execute immediate 'create table schema_'||i||'.z as select * from dba_tables'; 
    end loop; 
end; 
/

這將創建40種模式在一個循環中,一個名爲SCHEMA_1 ... SCHEMA_40 。 在每個模式中,一個名爲Z的表被創建爲DBA_TABLES的副本。 用

清理
begin 
for i in 1..4 loop 
    execute immediate 'drop user schema_'||i||' cascade'; 
    end loop; 
end; 
/

我希望這有助於。

+0

謝謝,我認爲這是我正在看的路徑。我使用的是Oracle SQL Developer,基本上克隆了一個本地用戶,並複製/粘貼了這個SQL輸出,並將這個基本上相同的方式連接起來。 – dave2118 2012-04-18 14:17:07