powershelldba.de · Uwe Janke

SSAS Installation and Configuration: Multidimensional, Tabular, and Why AlwaysOn Does Not Apply

How to install and configure SQL Server Analysis Services (SSAS): the irreversible SERVERMODE choice, directory permissions, automating setup with SQLSetupTool and sqmSQLTool, and why AlwaysOn Availability Groups cannot protect SSAS databases.

SQL Server Analysis Services gets installed far less often than the Database Engine, which is exactly why it trips people up: the setup wizard asks one question you can't easily undo, the service account needs directory permissions nobody remembers to check, and then someone asks "can we just put it in the Availability Group with everything else?" The answer to that last one is no, and understanding why is as important as getting the installation right.

The One Setup Decision You Can't Casually Change

During installation, SSAS asks for a server mode: Multidimensional, Tabular, or the legacy SharePoint (PowerPivot) mode. This is written once into msmdsrv.ini as <DeploymentMode> and Microsoft does not officially support changing it afterwards, the documented path is uninstall and reinstall with the correct mode.

Mode Storage engine Typical use case
Multidimensional (OLAP) Cubes, MDX Traditional data warehouse cubes, complex hierarchies
Tabular In-memory columnar (VertiPaq) or DirectQuery, DAX Modern self-service BI, Power BI-aligned models
SharePoint (PowerPivot) Legacy, tied to SharePoint farm Only relevant for old SharePoint BI deployments

Multidimensional and Tabular use incompatible storage formats. If someone picks the wrong mode during setup and only notices once databases are already deployed, there is no in-place fix, only migration or reinstall.

The undocumented in-place fix only works before anything is deployed. If the Data directory has no database folders yet, editing <DeploymentMode> in msmdsrv.ini and restarting the service does correct the mode, this is what Set-sqmSsasDeploymentMode automates, including a mandatory check that refuses to proceed if it finds existing databases (unless you force it, at your own risk).

Installing SSAS with SQLSetupTool

Rather than clicking through the SSAS branch of SQL Server setup by hand, SQLSetupTool's optional-components screen lets you check "SSAS (Analysis Services)" alongside SSRS, SSIS, and SSMS in the same run. It automatically:

What it does not do, and nothing should: pick the server mode for you. That decision depends on what the workload actually is, and picking it wrong is the expensive mistake described above.

Post-Install Configuration: Directory Permissions

SSAS needs full control over four directories tied to the instance: Data, Log, Temp, and Backup, all registered in the instance's registry key under HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server\MSAS*. Missing permissions here show up as cryptic file-access errors during processing or backup, well after installation, when it's least obvious why.

Test-sqmSsasDirectoryPermissions resolves the service account automatically from the Windows service, reads all four directory paths from the registry, and grants FullControl wherever it's missing. It's idempotent, safe to run repeatedly as a post-install check or after moving a directory.

Why AlwaysOn Availability Groups Do Not Apply Here

This is the question that comes up in almost every SSAS HA conversation: Availability Groups are a Database Engine feature. The "Add Database to Availability Group" wizard only ever lists relational databases, an SSAS database (Multidimensional cube or Tabular model) is not a SQL Server database in that sense at all, it's a set of files managed by the msmdsrv.exe process, and there is no AG mechanism that understands or replicates that storage.

This is also where the naming genuinely confuses people: "AlwaysOn" is a marketing umbrella covering two unrelated technologies. Availability Groups (log-stream based, listener, readable secondaries) is one of them. Failover Cluster Instances (WSFC-based, shared storage, active/passive) is the other, and SSAS can be installed as a clustered FCI resource. If your AlwaysOn conversation is really about SSAS, you're talking about the FCI half, not Availability Groups. See Failover Clustering vs. SQL AlwaysOn for the full breakdown of that distinction.

What Actually Protects SSAS

Database Engine AlwaysOn Availability Group Primary own storage Secondary own storage log stream readable secondary, listener Analysis Services AlwaysOn Failover Cluster Instance Active node msmdsrv.exe running Passive node standing by shared disk one copy of the data, ownership moves on failover Every replica has its own full copy of the data, kept in sync continuously. Only one node touches the data at a time; failover just moves the disk and restarts the service. Two different mechanisms, one marketing name: "AlwaysOn"

Common Gotchas

The Bottom Line

SSAS installation has exactly one decision that's expensive to get wrong: server mode. Get that right up front, let SQLSetupTool handle the mechanical install alongside your other components with matching collation, and use Test-sqmSsasDirectoryPermissions and Set-sqmSsasDeploymentMode from sqmSQLTool for the post-install checks and the one recoverable mistake. And when "AlwaysOn" comes up for SSAS specifically, remember it means Failover Clustering, not Availability Groups, the database engine's HA story simply doesn't extend here.