none
請問SQL Server可以做到像O牌的dataguard功能嗎? RRS feed

  • 問題

  • 請教各位先進!

    請問SQL Server可以做到像O牌的dataguard功能嗎?或是SQL Server本身有無類似或更好的架構呢?

    Thanks~~

    2010年10月6日 上午 08:40

解答

所有回覆

  • hi

    SQL SERVER mirror 和dataguard部分原理一樣,可參考以下連結看看。

     

    資料庫鏡像

     



    2010年10月6日 下午 03:54
    版主
  • 請定義什麼叫做 O牌的dataguard功能?
    謝謝!



    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年10月7日 上午 02:11
    版主
  • Oracle's dataguard.
    2010年10月7日 上午 02:31
  • 感謝各位的回覆~~

    O牌的dataguard的確就是rmiao所述的...

    因為為了要讓客戶使用SQL Server,而不要用O牌的產品,所以才會有此一問!

    我們會實際去瞭解SQL Server DB Mirror的相關細節部份,感恩 :)

    2010年10月7日 上午 06:27
  • hi

    架設同步資料庫鏡像可參考看看

    [SQL SERVER][HA]資料庫鏡像#實作同步資料庫鏡像




    Yes , 感謝分享 :D

    另外跟各位請教一下,如果是用Replication的方式,是不是沒有辦法像DB Mirroring(在High Protection或High Availability模式下)一樣,可以確保兩邊的資料一定是相同的呢?

    另外還有一個問題是,因為主體資料庫在High Protection或High Availability模式下,交易都必須等待鏡像資料庫確認動作完成後,整個交易才算是被commit,那麼如果主體資料庫和鏡像資料庫之間網路斷線,或是鏡像資料庫進行重新開機的動作,主體資料庫會不會被卡住,而造成前端ap出現問題呢?

    以上問題還請各位技術先進解惑,感恩~~

    2010年10月8日 上午 01:17
  • Replication can't guarantee real time data sync because of latency.

    If mirrored db lost connection in between, sql will suspend mirroring. App is not affected if it can connect to primary db.

    2010年10月8日 上午 02:16
  • 感謝rmiao的解答!

     

    另外請問一下,我根據ricoisme提供的[SQL SERVER][HA]資料庫鏡像#實作同步資料庫鏡像 資料

     

    在鏡像資料庫主機(v-2003r2-4)上面執行是沒有問題的

    ALTER DATABASE [DBDEMO]
    SET PARTNER ='TCP://v-2003r2-2:5023'

     

    但是在主體資料庫主機(v-2003r2-2)上面執行

    ALTER DATABASE [DBDEMO]
    SET PARTNER ='TCP://v-2003r2-4:5023'

    的時候出現了下面的錯誤訊息

    訊息 1418,層級 16,狀態 1,行 1
    伺服器網路位址 "TCP://v-2003r2-4:5023" 無法連上或不存在。請檢查網路位址名稱,並檢查本機和遠端端點的通訊埠是否可正常運作。

     

    我在主體資料庫主機上面去telnet鏡像資料庫主機的5023是有通的,請問此問題應該如何解決呢?感恩

    PS.兩台都是Windows Server 2003 R2 SP2 + SQL Server 2008 R2

    兩台OS的administrator和DB的sa密碼都不同

    2010年10月8日 上午 02:50
  • Is v-2003r2-4 defined in dns properly? Both machines talk to correct dns server?

    2010年10月8日 上午 03:17
  • Is v-2003r2-4 defined in dns properly? Both machines talk to correct dns server?


    它們兩台主機的DNS都是指向同一台主機沒錯,而且名稱解譯也沒問題,在v-2003r2-2和v-2003r2-4互相使用Computer Name ping是可以通的!而我將名稱改為IP也是無法連線!

    請問還有可能是什麼問題呢?感謝~~

    另外,之前忘記提到,實做的實體和鏡像資料庫主機,是存在於同一台Hyper-V上面的兩個Guest OS VM,不知道會不會有關係?

    2010年10月8日 上午 03:19
  • Tried set mirror with wizard in ssms?
    2010年10月8日 上午 03:49
  • Tried set mirror with wizard in ssms?

    OK~~I 'll try it :)
    2010年10月8日 上午 03:56
  • ALTER DATABASE [DBDEMO]
    SET PARTNER ='TCP://v-2003r2-4:5023'

    的時候出現了下面的錯誤訊息

    訊息 1418,層級 16,狀態 1,行 1
    伺服器網路位址 "TCP://v-2003r2-4:5023" 無法連上或不存在。請檢查網路位址名稱,並檢查本機和遠端端點的通訊埠是否可正常運作。

     

    這兩台Server透過UNC是否可以互相存取?



    2010年10月8日 上午 05:20
    版主
  • ALTER DATABASE [DBDEMO]
    SET PARTNER ='TCP://v-2003r2-4:5023'

    的時候出現了下面的錯誤訊息

    訊息 1418,層級 16,狀態 1,行 1
    伺服器網路位址 "TCP://v-2003r2-4:5023" 無法連上或不存在。請檢查網路位址名稱,並檢查本機和遠端端點的通訊埠是否可正常運作。

     

    這兩台Server透過UNC是否可以互相存取?




    Yes,是可以互相存取的

    後來我找了很多的資料,覺得應該是跟安全性設定有關聯,於是異動了下面的設定

    1.將兩台OS的administrator帳號密碼設定為相同

    2.將兩台DB的sa帳號密碼設定為相同

    3.將SQL Server及Agent Services的執行設定為administrator (原本為system)

    如此一來,的確就像ricoisme提供的 [SQL SERVER][HA]資料庫鏡像#實作同步資料庫鏡像 範例一樣,執行Command就沒有問題了

    我在想如果今天這兩台DB是在同一個AD Domain,而且SQL Server相關Services都是使用相同的網域帳號的話,應該設定起來就會相當的順利,這個讓我想起當初在測SQL Server Clustering的時候,兩台OS也是需要Join AD Domain,然後建立Domain的帳號給SQL Service使用!

    順便補充剛剛看到的一篇文件 ,裡面的DB Mirroring架構就是有Join AD的作法

    目前終於解決了相關的問題,真是感謝以上各位的不吝協助,再次感恩 :)

     

    • 已編輯 DannyLee 2010年10月8日 上午 08:19
    2010年10月8日 上午 06:26
  • 不好意思,在請問一下各位~~

    如果今天主體伺服器掛了,要如何設定鏡像伺服器可以接手運作服務呢?感恩...

    2010年10月8日 上午 07:39
  • If you set high safety mirroring, mirrored db will be online automatically if primary db is down. With high performance mirroring, you can run 'alter database db_name set partner failover' on secondary server to bring db online.
    2010年10月8日 下午 01:09
  • If you set high safety mirroring, mirrored db will be online automatically if primary db is down. With high performance mirroring, you can run 'alter database db_name set partner failover' on secondary server to bring db online.


    thanks rmiao !

    順便再請教一下,下列指令好像只能在primary伺服器上面執行,不能在mirror伺服氣上面執行?

    ALTER DATABASE DBDEMO SET PARTNER FAILOVER

    根據我在網路上其他網頁看到是使用下列指令先解除mirroring設定,讓mirroring db可以被ap存取

    ALTER DATABASE DBDEMO SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS;
    ALTER DATABASE DBDEMO SET PARTNER OFF

    所以想跟大家求證處理的正確步驟是否如上兩行指令,感恩

    PS.假設在沒有見證伺服器的情況下

    2010年10月11日 上午 01:37
  • Don't have to disable mirroring after force service.
    2010年10月11日 上午 02:16
  • Don't have to disable mirroring after force service.


    rmiao不好意思,我看不太懂您的意思~~

    可否說明一下正確的作法應該為何?才能讓mirroring db接手讓ap可以存取,感恩!

    2010年10月11日 上午 02:28
  • Just run 'ALTER DATABASE DBDEMO SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS' on mirrored server.
    2010年10月11日 上午 02:56
  • 感謝raimo~~

    我剛剛在Mirror DB中執行了一次 'ALTER DATABASE DBDEMO SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS' 其狀態會先變成復原中,接著再變成主體,已斷線,如此DB就可以被AP存取了...

    此外,如果原先的主體DB上線後,鏡像的機制會變成暫停狀態,如果確定不要原本主體DB中的交易紀錄,就直接在ssms中將鏡像機制點選繼續,如此原先的主體DB就會變成鏡像DB,然後繼續整個鏡像的機制 !

    以上再次感謝各位的協助,如果上述有錯誤的地方也請各位指正,Thanks :)

    2010年10月11日 上午 03:34