資料移植到Oracle資料庫(一)

polalisi發表於2007-10-12
當一個企業內部使用的種類繁雜時,往往需要有一個工利用 Migration Workbench將第三方架構物件移植到Oracle資料庫。具能夠輕輕鬆鬆地把這些資料庫中所有的資料重審一遍,然後透過把物件和資料移植到一個Oracle資料庫的方法合併這些資料庫。本專題將為大家介紹這樣一個工具——新一代Oracle Migration Workbench,它是Oracle Developer的擴充套件工具,功能強大,讓你能夠在Oracle和第三方資料庫裡存取資料,並把第三方資料庫移植到同一個Oracle 9i 或Oracle Database 10g,可移植的資料包括架構物件、觸發器和儲存程式。目前能夠支援的第三方資料庫包括Microsoft SQL Server、Microsoft Access和。

  本文首先介紹怎樣配置安裝環境,接著以Microsoft SQL Server資料庫為例,為大家演示怎樣瀏覽SQL Server 資料庫物件和資料,並把它們移植到一個Oracle資料庫。

  配置執行環境

  在進行第三方資料庫物件移植之前,必須先配置好Oracle SQL Developer和Oracle Migration Workbench的執行環境,以確保能夠與第三方資料庫正常連線。在自1.2.0.29.98版本開始,Oracle SQL Developer中就附帶有 Oracle Migration Workbench。而Oracle SQL Developer則可以在Oracle的官方網站上,連結地址為otn.oracle.com/products/database/sql_developer。

  Oracle SQL Developer利用 DataBase Connectivity (JDBC)連線到資料庫,因此除了安裝Oracle SQL Developer,還需要為需要連線的第三方資料庫安裝和配置JDBC驅動程式。相關第三方資料庫的下載要求和連結資訊列舉如下:

  · MySQL JDBC驅動程式,5.04版,下載地址 http://dev.mysql.com/downloads/connector/j/5.0.html

  · Microsoft SQL Server需要有JDBC驅動程式,相關連結 1.2版的下載地址為

  · 由於Microsoft Access使用JDBC/ODBC,所以不需要額外的驅動程式。

  裝配驅動程式

  一旦下載完所需的JDBC驅動程式後,展開驅動程式二進位制JAR檔案,通常是下載的歸檔檔案內部的一個獨立JAR檔案。

  · 對於MySQL,下載的mysql-connector-java-5.0.4.tar.gz(或.zip)壓縮包裡包含一個名為mysql-connector-java-5.0.4-bin.jar的二進位制驅動JAR檔案。

  · 對於SQL Server,jtds-1.2-dist.zip壓縮包裡包含一個名為jtds-1.2.jar的檔案。

  確保第三方資料庫啟動且正常執行,並啟動Oracle SQL Developer。在主選單裡選擇Tools -> Preferences...,展開資料庫節點,選擇Third Party JDBC Drivers,點選Add Entry...。接著瀏覽並選擇上文提到的JAR檔案,點選OK。

  建立資料庫連線

  在執行Oracle SQL Developer裡的一個資料庫之前,需要先建立一個資料庫連線。為任何一個你想要瀏覽和作為移植源的第三方資料庫和任何一個你想要流浪和作為移植目標的資料庫建立分別建立一個連線。

  想要在Oracle SQL Developer建立一個資料庫連線,首先點選Connections選項卡,右擊Connections節點選擇New Connection。想要為SQL Server建立一個連線,點選SQLServer選項卡,然後按照以下順序完成連線工序:

  輸入連線名,如SQLServer2005_mwb
  輸入使用者名稱和口令
  輸入SQL Server database所在的機器的主機名
  輸入埠
  接下來,點選Retrieve資料庫以生成可移植SQL Server資料庫表單。

  最後點選Test,確保你所建立的所有連線都是成功的,然後點選Connect儲存連線,關閉對話方塊,連線到選擇好的SQL Server資料庫。

  瀏覽資料

  當你開啟Oracle SQL Developer裡的一個資料庫連線的同時,也開啟了一個SQL工作表供你寫入基本的查詢和命令。展開你建立好的SQL Server連線,導航至dbo選單下的Tables節點。你可以選擇和拖拽任何圖表到SQL工作表上,而且這個操作會產生一個SELECT指令。按F9鍵執行這一查詢。

  按F5鍵可以進行多重查詢。同樣的對於任何的Oracle資料庫連線,你可以點選列表頭對返回的資料進行分類排序。

  直接點選表就可以檢視錶的定義,如Connections Navigator 中的Customers。注意這時顯示的選項卡與連線到Oracle database時出現的選項卡稍許不同。還要注意當Oracle SQL Developer連線到一個Oracle資料庫時,右鍵快捷選單提供很多Data Definition Language (DDL)命令或實用命令;第三方資料庫連線時的右鍵選單主要是瀏覽和移植命令。

建立一個資訊庫

  Oracle Migration Workbench利用一個Oracle資料庫架構作為移植資訊庫,用來儲存其為移植程式所收集和轉換的後設資料。不管你要進行多少次移植操作,建立移植資訊庫只需要執行一次就夠了。這個資訊庫由37個表以及相關的主鍵、索引,8個檢視,觸發器和PL/SQL程式碼組成。雖然不是必須的,不過Oracle還是建議專門為這個資訊庫配置一個資料庫架構。

  必須賦予建立和擁有這個資訊庫的使用者多種系統許可權和任務。列表1建立了一個名為migration的使用者,並賦予其必要的特權。

  程式碼列表1:建立migration使用者

  CREATE USER migration IDENTIFIED BY migration

  DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;

  GRANT CONNECT, RESOURCE, CREATE VIEW, CREATE PUBLIC SYNONYM

  TO migration WITH ADMIN OPTION;

  GRANT ALTER ANY ROLE, ALTER ANY SEQUENCE,

  ALTER ANY TABLE, ALTER TABLESPACE, ALTER ANY TRIGGER,

  COMMENT ANY TABLE, CREATE ANY SEQUENCE, CREATE ANY TABLE,

  CREATE ANY TRIGGER, CREATE ROLE, CREATE TABLESPACE,

  CREATE USER, DROP ANY SEQUENCE, DROP ANY TABLE,

  DROP ANY TRIGGER, DROP TABLESPACE, DROP USER,

  DROP ANY ROLE, GRANT ANY ROLE, INSERT ANY TABLE,

  SELECT ANY TABLE, UPDATE ANY TABLE

  TO migration;

  一旦你建立了這個使用者,你就需要為這個使用者建立一個新的資料庫連線,例如Migration_Repos。當你輸入必要的資訊之後,點選Connect儲存連線並關閉對話方塊。從主選單中選擇Migration -> Repository Management -> Create Repository。選擇為新資訊庫建立的連線,並點選Create。這時,會出現一個Installing Repository對話方塊,顯示安裝進度。當程式結束後,關閉對話方塊。

步驟三:為新Orecle架構物件生成DDL指令碼。這個階段,你可以選擇為單個物件或者多個物件生成DDL指令碼。如果想為所有的轉換物件生成指令碼,右擊high-level converted model,然後點選Generate。

  步驟四:執行已生成的DDL指令碼以建立新的使用者和物件。當生成完畢時候,DDL指令碼可以用表開啟。注意開啟命令會建立一個新的使用者並賦予新使用者許可權。這表示要執行指令碼必須是具有建立使用者許可權的使用者,例如SYSTEM。在SQL工作表的右上角下拉選單中選擇你要執行指令碼的使用者,然後按F5鍵執行指令碼。指令碼執行完成後,在Connections Navigator中建立一個新的資料庫連線,用來瀏覽和檢查新的移植物件。

步驟五:將源資料庫的任何資料複製到新的資料庫。移植過程的最後階段就是把源資料庫中的資料複製到目標資料庫。從主選單中選擇Migration -> Migrate Data。在彈出的對話方塊中選擇源資料庫、目標資料庫和轉換模式,並點選OK。這時你就可以在資料庫中以的架構瀏覽、編輯和使用新的物件和資料了。

  結論

  Oracle Migration Workbench支援從Microsoft Access、 Microsoft SQL Server和到Oracle資料Oracle資料庫資料移植,降低了移植過程的風險,並透過大量的自動操作減少了移植耗時。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10455649/viewspace-976216/,如需轉載,請註明出處,否則將追究法律責任。

相關文章