2011年8月19日 星期五

Oracle 10G 覆寫至 SQL SERVER 2008(SQL SERVER Replication)

以下教學文章來源:http://www.dotblogs.com.tw/jamesbi/archive/2010/02/11/13643.aspx

今天我們要介紹的主題是如何透過SQL Server 2005 /2008 Management Studio 設定Oracle Transactional Replication (交易式複寫)

在介紹前跟各位說明我們將要進行的方式及範例

A.情境:

因小小公司需要降低IT Cost 及分散使用者查詢降低AP的DB負擔以提升效率.並且需要即時更新資料供使用者查詢.

依據上面的情境說明我們可以瞭解.其實效能與即時的資料轉送及查詢都是我們想要看到的.因此我們可以透過SQL Server Oracle Transactional Replication (交易式複寫)達成.我們的目標.

B.進行方式為

Oracle 為AP來源端資料庫

SQL Server 2005/2008為目地資料倉儲中心

C.使用範例為

Oracle 的SYSTEM測試資料庫

SQL Server 2005/2008的AdventureWorksDB


在進行Oracle Transactional Replication 之前我們需要準備幾件很重要的事.

1.安裝Oracle Client for windows

2.設定Oracle Client 服務

3.設定Oracle Replication 帳號及權限.

(1)首先安裝Oracle Client

請注意安裝Oracle Client 時要注意幾件事.

A.SQL Server 是哪一種位元版本.32位元請安裝32位元版本Client,64位元的請安裝64位元Client.

B.Oracle Client 請使用比Oracle DB相同或更高版本.

C.若Oracle 為11G ,SQL Server 2008 請更新到SP1.若無法更新者最少要更新到CU2

原因為下列問題:

http://support.microsoft.com/kb/958555/

當 您嘗試新增文件到出版為發行者在 SQL Server 2008 中使用的 Oracle 資料庫] 下 11g 式資料庫的 「 FIX: 」 錯誤訊息: 「 條件約束欄 ' ' 資料表 ' ' 中找不到 」

(2)安裝Client 為Runtime (9 i 舊版本會有這個Runtime 選項,10 G之後請安裝全部.找不到細項.希望有心人事提供)

Snap12

(2)設定本機連接Oracle 服務名稱

Snap16

(3)選擇TCP/IP

Snap15

(4)設定來源ORACLE IP位置

Snap17

(5)設定Oracle來源服務名稱

Snap18

(6)測試Oracle 服務是否可用

Snap19

(7)設定Oracle Replication 帳號權限.

在SQL Server 2005/2008的DB的安裝目錄中有OracleAdmin.sql.請用SQL Plus 執行此SQL Script

2005: C:\ Program Files\Microsoft SQL Server\\MSSQL\Install\oracleadmin.sql

2008: C:\ Program Files\Microsoft SQL Server\\MS10.SQL\Install\oracleadmin.sql

Snap1

(8)附與Replication帳號執行SELECT權限

Snap5

(9)開啟SQL Server Management Sutdio 點選本機發行集

Snap8

(10) 在本機發行集中按滑鼠右鍵新增Oracle 發行集

Snap9

(11)選擇下一步

Snap10

(12)設定本機SQL為散發者

Snap11

(13)設定SQL Server Agent 為自動啟動(因為我們要即時處理最好將Agent 設定自動以免SQL Server 因為重新開機而沒自動處理)

Snap20

(14)設定快照資料夾路徑.

(因Transactional Replication需要透過快照集來同步資料因此必須有快照的存放路徑)

Snap22

(15)加入Oracle 發行者

Snap23

(16)提示要將本機設為散發者.請選Yes

Snap25

處理設定散發者

Snap26

(17)設定散發者屬性 加入Oracle 發行者

管理連結密碼很重要是負責發行者與訂閱者的連結密碼.請一定要設定

Snap27

加入Oracle 發行者

Snap28

(18)輸入Replication 發行者Oracle Replication 帳號密碼

Snap30

(19)確認發行者後下一步

Snap31

(20)設定發行集方式為交易式發行集

Snap32

(21)選擇欲發行的資料表

Snap33

(22)設定轉換表格的資料型態

很重要因為格式不對Replication會不成功.如果有中文字建議目地端設為nvarchar

Snap34

Snap35

(23)設定篩選資料表的資料列(有需要才設定)

Snap36

(24)快照集代理程式設定.請設定立即建立快照集

Snap37

(25)設定快照代理執行程式帳號(Windows)

Snap38

Snap39

Snap40

(26)建立發行集

Snap41

Snap42

(27)完成發行集建立

Snap43

Snap49

(28)啟用複寫監視器.監視複寫情況

Snap44

(29)加入發行者

Snap45

(30)加入Oracle 發行者

Snap46

(31)確認監測發行者

Snap47

Snap48

監測發行情況

Snap50

完成快照發行(此部驟一定要完成)

Snap51

Snap52

(32)設定快照資料夾共用權限(如果使用發行者的帳號不是Administrator請記得設定.

Snap53

Snap54

設定讀取權限

Snap55

(33)設定發行集存取權限

Snap56

Snap57

(34)新增訂閱.在本發行集上的Oracle Replication發行集上按滑鼠右鍵.新增訂閱

Snap58

(35)設定發行集為Oracle_replication

Snap60

(36)選擇散發者在本機所有代理程式

Snap61

(37)加入SQL Server訂閱者

Snap62

(38)使用Windows 驗證登入SQL

Snap63

(39)設定訂閱資料庫為發行者資料庫

Snap64

(40)設定訂閱者的連接帳號
Snap65

(41)設定訂閱者的執行window 帳號

Snap66

Snap67

(42)設定同步排程方式為連續執行

Snap68

(43)設定初始化訂閱-立即

Snap69

(44)完成訂閱

Snap70

Snap72

Snap71