none
請問database mirror問題 RRS feed

  • 問題

  • 請問各位,最近在try SQL Server的mirror功能,我在主體伺服器上執行下列1~4步驟都成功,但在鏡像伺服器上執行至第3步驟後就出現Msg 28055, Level 15, State 5, Line 1(The certificate 'Flag1MirroringCertificate' is not valid for endpoint authentication. The certificate must have a private key encrypted with the database master key and current UTC date has to be between the certificate start date and the certificate expiration date.)錯誤,請問各位,這有可能會是那邊設錯呢??麻煩各位了,謝謝!!

    --1.master key
    use master
    go
    SELECT * FROM sys.endpoints
    --drop master key
    create master key encryption by password = 'p@12345'
    go
    --2.create certificate
    --drop certificate Flag1MirroringCertificate
    create certificate Flag1MirroringCertificate
     with subject = 'test mirror certificate'
    go

    --3.修改先前精靈所建立的端點,加入以憑證驗證的設定
    --select name, port, is_dynamic_port, state from sys.tcp_endpoints
    -- go
    alter endpoint Mirroring
      for database_mirroring(
      authentication  = certificate Flag1MirroringCertificate,
      encryption = required algorithm AES,
      role = all
     )
    go

    --4.backup certificate
    backup certificate MirroringCertificate
      to file = 'MirroringCertificate.cer'

    主體伺服器:SQL Server 2008 std

    鏡像伺服器:SQL Server 2005 std

     

     

    2010年11月10日 上午 08:07

解答

  • hi

    參考這篇看看

    http://social.technet.microsoft.com/Forums/zh-TW/sqlservermanagementzhcht/thread/7cb2c074-4e52-44a1-b9d1-b90533820229

     

    擷取如下

    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的作法

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



    2010年11月12日 上午 04:29
    版主

所有回覆

  • You can't mirror sql2k8 db to sql2k5.
    2010年11月10日 下午 02:30
  • 2 種方式供您參考:

    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年11月10日 下午 05:14
    版主
  • 感謝前輩的提醒,我會再找環境重新測試一次。但想再請教一下,關於mirror和log shipping這2者有何差異呢??這2者都是針對database,如果主體伺服器損毀時,那application的connection該如何設計呢??因為主體和鏡像伺服器,server name和ip address都不相同,不好意思,因為剛好是入門者,所以麻煩各位前輩指導一下了,謝謝!!

    2010年11月11日 上午 01:26
  • Mirroring syncs db in real time while log shipping in scheduled intervals;

    App is possible to switch to mirrored db automatically if has witness, but have to switch manually in log shipping.

    Books online has details.

    2010年11月11日 上午 04:06
  • 您可以從資料庫要達到怎樣的「高可用性」、自己的軟硬體有哪些限制(比方說:SQL Server 是標準版、資料庫都存在本機,沒有儲存在 SAN 上)來找到符合 貴公司所需的架構。不然 SQL Server 就把所有高可用性的解決方案通通兜在一起就好了,幹嘛分那麼多種。


    參考資料:選取高可用性的解決方案



    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年11月11日 上午 04:22
    版主
  • 不好意思,因為沒有使用過鏡像功能,所以目前正在測試階段,未來若要正式使用時,會再謹慎評估,但現在面臨到的問題是,我再重新找了測試環境,主體伺服器server a(SQL 2005 STD),鏡像伺服器server b(SQL 2005 STD),這2台server的特性都是使用第2個instance,我測試時,是用windows驗証,所以就沒有再create憑証來驗証,在mirror 設定精靈階段都成功沒有任何問題,但到啟動鏡像時,就出現下列錯誤訊息,可以請問一下,我可以從那邊找問題呢??麻煩各位了,謝謝!!(我在2台伺服器做過telnet 5022 port都有通,而且都互ping的到)

    The server network address "TCP://report-test.arcadyan.com.tw:5022" can not be reached
    or does not exist.Check the network address name and that the ports for the local and
    remote endpoints are operational.(Microsoft SQL Server,Error:1418)

    2010年11月12日 上午 03:18
    1. 用 netstat -abn|more 檢查 2 台 SQL Server 確實有使用您所設定的 port。
    2. SQL Server log 裡應該有相關的錯誤訊息,從那邊看到的是什麼?
    3. 使用 CREATE ENDPOINT 時,參數 AUTHENTICATION  所使用的使用者之驗證類型是哪一種?
      參考資料:
      CREATE ENDPOINT (Transact-SQL)


    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2010年11月12日 上午 03:51
    版主
  • 不好意思,因為沒有使用過鏡像功能,所以目前正在測試階段,未來若要正式使用時,會再謹慎評估,但現在面臨到的問題是,我再重新找了測試環境,主體伺服器server a(SQL 2005 STD),鏡像伺服器server b(SQL 2005 STD),這2台server的特性都是使用第2個instance,我測試時,是用windows驗証,所以就沒有再create憑証來驗証,在mirror 設定精靈階段都成功沒有任何問題,但到啟動鏡像時,就出現下列錯誤訊息,可以請問一下,我可以從那邊找問題呢??麻煩各位了,謝謝!!(我在2台伺服器做過telnet 5022 port都有通,而且都互ping的到)

    The server network address "TCP://report-test.arcadyan.com.tw:5022" can not be reached
    or does not exist.Check the network address name and that the ports for the local and
    remote endpoints are operational.(Microsoft SQL Server,Error:1418)

    Are they in same domain? What's sql service account?
    2010年11月12日 上午 04:18
  • hi

    參考這篇看看

    http://social.technet.microsoft.com/Forums/zh-TW/sqlservermanagementzhcht/thread/7cb2c074-4e52-44a1-b9d1-b90533820229

     

    擷取如下

    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的作法

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



    2010年11月12日 上午 04:29
    版主
  • 感謝各位的指導....我將3台(主體,鏡像,見證)伺服器的SQL Server service改成domain id之後,mirror就正常可以啟動了。

    2010年11月16日 上午 01:38