none
請問SQL Server Replication和Mirroring哪個比較好用? RRS feed

  • 問題

  • 各位先進!

    如果在不考慮使用SQL Cluster的情況下,如果要維持資料的高可用性,Replication和Mirroring哪個比較好用(好設定維護)呢? 感恩 ^^
    2009年10月22日 上午 09:32

解答

  • 其實還是要看需求

    Replication:
    比較著重在資料面的保護,藉由發行者發出要備分之項目(假設發行和散發是同一台),訂閱者定期去訂閱發行集,如此僅能保障資料部分,
    至於前端應用程式不見得可以正常work,因為您還需考量帳號的移轉,JOB,Package等等,且Replication發行時,若Table是有Identity時
    Identity並不會複製到訂閱端,必需另外手動處理(當然如果要自動就要再花些功夫)
    Anyway這是比較著重在資料庫面,而Server面一些Login等等是沒法同步過去的

    Mirroring:
    這個功能當然又再強一點,看是要設定同步或非同步,有機會可以達到自動錯誤移轉,而不需另外手動處理,但您可能還必需有第三台監視的伺服器

    如果是SQL Server 2000好像就沒有Mirror,只有Replication
    個人是覺得如果是2005就用Mirroring吧...

    2009年10月22日 上午 10:12
  • hi
    這兩種技術還滿難比較哪個比較好用
    資料庫鏡像:資料庫鏡像是指單一資料庫的兩份副本,而且通常位在不同的電腦上。鏡像作業涵蓋了主體伺服器上所進行的每個插入、更新或刪除動作,將其交易記錄套用至鏡像資料庫。當主要DB掛了,可以快速角色轉換,功能較全面,但前端只能使用主資料庫(standby無法使用)。

    複寫:複寫使用發行-訂閱模式(類似RSS),將資料散發至一或多個次要伺服器 (訂閱者)(這樣每台Server則有了及時可用性和延展性)

    當然這兩種技術是可以一起搭配的

    參考複寫和資料庫鏡像
    http://technet.microsoft.com/zh-tw/library/ms151799.aspx

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月22日 上午 10:24
    版主
  • Dear Customer,
    以下是SQL提供的高可用性方案概觀, 您可以參考一下:

    2009年10月23日 上午 07:44

所有回覆

  • 其實還是要看需求

    Replication:
    比較著重在資料面的保護,藉由發行者發出要備分之項目(假設發行和散發是同一台),訂閱者定期去訂閱發行集,如此僅能保障資料部分,
    至於前端應用程式不見得可以正常work,因為您還需考量帳號的移轉,JOB,Package等等,且Replication發行時,若Table是有Identity時
    Identity並不會複製到訂閱端,必需另外手動處理(當然如果要自動就要再花些功夫)
    Anyway這是比較著重在資料庫面,而Server面一些Login等等是沒法同步過去的

    Mirroring:
    這個功能當然又再強一點,看是要設定同步或非同步,有機會可以達到自動錯誤移轉,而不需另外手動處理,但您可能還必需有第三台監視的伺服器

    如果是SQL Server 2000好像就沒有Mirror,只有Replication
    個人是覺得如果是2005就用Mirroring吧...

    2009年10月22日 上午 10:12
  • hi
    這兩種技術還滿難比較哪個比較好用
    資料庫鏡像:資料庫鏡像是指單一資料庫的兩份副本,而且通常位在不同的電腦上。鏡像作業涵蓋了主體伺服器上所進行的每個插入、更新或刪除動作,將其交易記錄套用至鏡像資料庫。當主要DB掛了,可以快速角色轉換,功能較全面,但前端只能使用主資料庫(standby無法使用)。

    複寫:複寫使用發行-訂閱模式(類似RSS),將資料散發至一或多個次要伺服器 (訂閱者)(這樣每台Server則有了及時可用性和延展性)

    當然這兩種技術是可以一起搭配的

    參考複寫和資料庫鏡像
    http://technet.microsoft.com/zh-tw/library/ms151799.aspx

    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月22日 上午 10:24
    版主
  • 當主要DB掛了,可以快速角色轉換,功能較全面,但前端只能使用主資料庫(standby無法使用)。
    請問一下,您的意思是如果主要DB掛了, 原本擔任Mirror的DB會進行角色切換成主要DB是嗎?那IP也會自動切換嗎?

    因為之所以會這樣問,是因為如果IIS的程式這邊指定存取主要DB的SQL Server IP,如果主要的掛了程式是不是就會連不到資料庫了呢?

    以上問題敬請指教,感謝 ^^
    2009年10月23日 上午 02:05
  • 當主要DB掛了,可以快速角色轉換,功能較全面,但前端只能使用主資料庫(standby無法使用)。
    請問一下,您的意思是如果主要DB掛了, 原本擔任Mirror的DB會進行角色切換成主要DB是嗎?那IP也會自動切換嗎?

    因為之所以會這樣問,是因為如果IIS的程式這邊指定存取主要DB的SQL Server IP,如果主要的掛了程式是不是就會連不到資料庫了呢?

    以上問題敬請指教,感謝 ^^
    ip要自動切換,就要先設置cluster

    參考

    How to Cluster Windows Server 2003

    http://www.sql-server-performance.com/articles/clustering/cluster_server_2003_p1.aspx

    How to Cluster SQL Server 2005

    http://www.sql-server-performance.com/articles/clustering/cluster_sql_server_2005_p1.aspx
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月23日 上午 03:58
    版主
  • 當主要DB掛了,可以快速角色轉換,功能較全面,但前端只能使用主資料庫(standby無法使用)。
    請問一下,您的意思是如果主要DB掛了, 原本擔任Mirror的DB會進行角色切換成主要DB是嗎?那IP也會自動切換嗎?

    因為之所以會這樣問,是因為如果IIS的程式這邊指定存取主要DB的SQL Server IP,如果主要的掛了程式是不是就會連不到資料庫了呢?

    以上問題敬請指教,感謝 ^^
    ip要自動切換,就要先設置cluster

    參考

    How to Cluster Windows Server 2003

    http://www.sql-server-performance.com/articles/clustering/cluster_server_2003_p1.aspx

    How to Cluster SQL Server 2005

    http://www.sql-server-performance.com/articles/clustering/cluster_sql_server_2005_p1.aspx
    http://www.dotblogs.com.tw/ricochen/Default.aspx
    所以您的意思是如果IP要能自動切換的話,就是要使用SQL Cluster,而不是DB Mirroring的技術了對嗎?感恩 ^^
    2009年10月23日 上午 04:00
  • Cluster 應該也不是說IP切換,因為使用者都是連 xxx.xxx.xxx.0
    而node1 xxx.xxx.xxx.1
       node2 xxx.xxx.xxx.2
    當錯誤發生時,只是把作用的server由node1轉到node2,但對使用者前端ap而言,還是去連 xxx.xxx.xxx.0那台虛擬IP
    2009年10月23日 上午 04:06
  • Cluster 應該也不是說IP切換,因為使用者都是連 xxx.xxx.xxx.0
    而node1 xxx.xxx.xxx.1
       node2 xxx.xxx.xxx.2
    當錯誤發生時,只是把作用的server由node1轉到node2,但對使用者前端ap而言,還是去連 xxx.xxx.xxx.0那台虛擬IP

    瞭解,所以使用DB Mirror的機制,還是需要手動將AP的DataSource切換成Mirroring的IP才能使用對嗎?感恩 ^^
    2009年10月23日 上午 04:09
  • 當你SQL建置好cluster你只會有一組public IP(db1 和db2之間是靠private ip溝通)
    所以你部用手動去改datasource

    前端就可以靠cluster services判斷那台資料庫可以連線(如果有一台資料庫掛,會自動連上另外依台)




    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月23日 上午 04:54
    版主
  •   看您是設定那種保護模式..一般有三種
      高可用性模式 (High Availability Mode)---->這種應該可以自動移轉
      高保護模式 ( High Protection mode)
      高效能模式(High Performance mode) (standard edition不支持)
      可以參考這裡
    http://www.say.cc/viewthread.php?tid=24659
    2009年10月23日 上午 05:07
  •   看您是設定那種保護模式..一般有三種
      高可用性模式 (High Availability Mode)---->這種應該可以自動移轉
      高保護模式 ( High Protection mode)
      高效能模式(High Performance mode) (standard edition不支持)
      可以參考這裡
    http://www.say.cc/viewthread.php?tid=24659
    非常感謝您的提供的參考資料,看了裡面的內容後我想請問另外一個問題~~

    在Replication機制中的合併式複寫,算是同步還是非同步更新呢?感恩 :)
    2009年10月23日 上午 05:53
  • 我的感覺是非同步吧..合併式的比較複雜點
    這裡有份關於Replication 的pdf檔
    可以加減參考
    http://download.microsoft.com/download/C/3/9/C393C7F7-8D46-4CB5-9A7E-BDD40AD695C8/SQL_Server_Replication.pdf
    2009年10月23日 上午 06:11
  • Dear Customer,
    以下是SQL提供的高可用性方案概觀, 您可以參考一下:

    2009年10月23日 上午 07:44