如何在 SSAS伺服器之間做同步

哥本哈士奇(aspnetx)發表於2014-04-20

簡介:

從SQL Server 2005開始,分析服務就支援了同步的功能。本文將介紹如何在SQL Server 2012下同步Adventureworks的分析服務資料庫。通過同步的功能,我們就來可以彌補分析服務在差異備份以及全量備份上的不足,從而間接的實現類似故障轉移這樣的功能。

Adventureworks是微軟的示例資料庫專案,包含了OLTP,資料倉儲以及分析服務資料庫的示例,可以在下面這個連結裡下載到這個示例庫:

http://msftdbprodsamples.codeplex.com/releases/view/55330

在這個示例中,包含了兩個SQL Server伺服器,一個命名為SSAS,另一個為DEV。在SSAS伺服器上我們已部署好了Adventureworks分析服務資料庫,另外一臺DEV的伺服器上沒有部署。下面將演示如何把這個示例資料庫同步過來。

這裡首先我們需要確保兩臺伺服器都處於一個域中,並且為他們分別建立一個賬戶。這裡我們建立一個叫BIAdmin的組。

然後,把這個組填加到分析服務的管理員組中。右鍵SQL Server Management Studio連線到的分析服務,右鍵單擊屬性:

點選Security中把BIAdmin這個組填加到這裡。

 

同步設定:

  1. 使用為兩臺伺服器共同建立的域帳號開啟SSMS(Shift+滑鼠右鍵)。
  2. 連線到分析服務之後,在Database資料夾之下右鍵點選然後選擇同步選項。

  1. 選擇源伺服器和資料庫。

  1. 在同步選項中,可以選擇:
  • Copy all –這個選項會拷貝所有內容。當你在目標伺服器還沒有這個庫的時候就可以選擇這項。
  • Skip membership –這個選項只會拷貝角色,但是成員資訊不會同步。當目標伺服器已經配置好的成員不想被覆蓋的時候,可以考慮這個選項。
  • Ignore all –不同步角色和使用者資訊。

  1. 第一次同步的時候會得到下面的錯誤。

  1. 解決這個問題的方法是使用兩臺伺服器上都有許可權的域賬戶來重新啟動分析服務。可以開啟SQL Server Configuration Manager(SSCM)來完成這個更改。

  1. 在SSCM中雙擊SQL Server Analysis Service,在賬戶名這裡,配置成為兩個伺服器建立的賬戶,然後重新啟動分析服務。

  1. 然後同步就可以順利通過了。

  1. 成功後可以看到如下資訊。

 

檢查同步結果:

  1. 在目標伺服器中可以看到Adventureworks資料庫已經同步了過來。

  1. 接下來驗證是否有更改被同步,比如在源伺服器中刪除一個分割槽:

  1. 重複同步的步驟。可以看到在源伺服器上做的刪除分割槽的更改已經被同步到目標伺服器上了。

 

 

總結:

在這個示例中主要演示了同步分析服務資料庫的方法,使用這個方法可以作為備份以及故障轉移或者遷移的方案。

此外,同步的伺服器之間需要確保兩邊的分析服務版本,比如從2012同步到2014上就會失敗。所以考慮升級的話建議還是先匯出成專案之後然後在Visual Studio裡做升級。

沒有域環境的話就比較麻煩,雖然可以考慮通過80埠,但是這樣一來伺服器就會裸奔於網路環境。

相關文章