日期:2014-05-16  浏览次数:20511 次

如何在 SSAS服务器之间做同步


简介:

从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端口,但是这样一来服务器就会裸奔于网络环境。