2016/08/17

sql server 2008r2 新增複寫功能



前言
會想使用複寫主要是 sap <-> bpm 的 zit001 很浪費時間和伺服器效能,而且資料又不夠即時
zit001 的運作方式是先在 sap 上撰寫 abap code ,把所需的資料(採購單內容、物料文件內容等等)從 sapprd01 -> bpmsvr 
然後用變數呼叫的方式排程執行
變數依頻率區分三種:高、中、低;高是每小時執行一次
這樣的作法很笨.. 而且又沒效率,唯一的好處(對AI公司來講)就是 abap code 那邊可以申請費用
至於本機存取速度很快的優勢.. 就被抵消掉了 (因為資料是一小時前的)


運用 sql server 本來就內建的複寫功能有幾個好處:
  1. 設定好後就不用理它
  2. 只要頻寬足夠,基本上資料是幾乎一致的,只有數秒的誤差
    1. 複寫的核心理念是 "資料最終會保持一致",主要是效能考量
  3. 運用複寫功能可以讓 ms sql 做到某種程度的 cluster ,接近 oracle 的 RAC 功能 (爬文看到但沒有深入測試)

說明
  1. 主要是在 sap server 上的 sql server 新增功能
  2. 運用複寫將特性值 table 同步到網站的資料庫去
  3. 單向同步


前置作業
  1. 新增複寫功能後,SQL SERVER AGENT 要先重新啟動
  2. 注意用來連線的帳號,是否具有權限
    1. 新增一個複寫用的 windows 帳號,\sqlreplica,hostname如下:
      1. sbsdb
      2. sapdev01
      3. sapprd01
        1. 具本機管理者權限
        2. 將來會設定此帳號不可登入,僅能做為服務使用 (透過windows 本機安全性原則)
    2. 新增一個複寫用的 sql 帳號,然後使用 windows 認證登入
      1. Mapping
      2. Server Role
      3. Status
  3. 建立本機複寫用資料匣,名稱 sqlreplica 
    1. sqlreplica資料匣開共用
    2. 權限為 sqlreplica (full control)

設定參考這一篇

複寫設定,步驟簡化如下
  1. 於publish端建立發行集
    1. 選取資料表
    2. 篩選要同步的資料
    3. 設定資料放置於複寫用資料匣
    4. 指定帳號及權限 (參考前置作業)
  2. 於subscription端建立訂閱
    1. 選取遠端主機
    2. 選取要寫入的本機資料庫
    3. 指定帳號及權限 (參考前置作業)

沒有留言: