In this article, I will elaborate How to Scale Out SQL Reporting Service (SSRS) to work with two Database Server (Always-on)?
I have a 2-Tire SharePoint 2013 Farm
- 2 WFE+ APP Servers.
- 2 Database Servers (Always-on).
If you need to use Reporting Services with SharePoint. it’s recommanded to configure SSRS SharePoint integrated mode with Reporting service application service on an indpenedent reporting server to ensure the Performance, Manageability and Security.
But in my case, the customer budget is not enough to apply the best practice, Meanwhile configuring SSRS SharePoint integrated mode with Reporting service application service on the same WFE + APP server lead to low performance.
So I have decided to work with SSRS Native mode to ensure at least the performance and show reports inside SharePoint via:
- Report Viewer Web Part.
- View / Explore SSRS Native Mode Report via PerformancePoint within SharePoint
And in this case, I should configure SSRS Native mode on both SharePoint WFE Servers because as we know the Database Servers are not accessible over the internet,
Note: If you configured SSRS native mode on only one WFE server. you will get it worked properly. but sometimes when browsing the Report Manager URL you will get 404 error!
This error occurs when the load balancer hit the second WFE node (where SSRS is not installed), so the directory of reporting service will not be found and you will get 404 error.
On the other side, when the load balancer hit the first WFE node (where SSRS already installed) the Report Manager URL will work without issue.
So you should configure SSRS on the second SharePoint WFE node by scaling out SSRS deployment to share the same single Report Server Database.
Note: In this article, I considered you already have installed and configured the SSRS in the first node by following the mentioned instruction at Install and Configure SQL Server Reporting Service (SSRS).
To scale out SSRS deployment you should follow the mentioned steps below:
- Before you start, you should verify that the report server is operational at the first node by doing the following:
- The Reporting Service is running in SQL Configuration Manager.
- The Report manager URL has been configured and can be browsed.
- Now In the Second node,
- Mount the same SQL Server Media ISO/CD that used before to install SSRS in the first node.
- Run SQL Server Installation file.
- From SQL Server Installation Center > Click on Installation.
- Click on New SQL Server stand-alone installation or add features to an existing installation.
- Click OK after the Setup Support Rules have been passed.
- Check Product Updates and click Next.
- Again, Check Setup Support Rules and click Next.
- From Installation Types > Check Perform a new installation.
- From Setup Role > Select SQL Server Feature Installation.
- From Feature Selection > Below Instance Features > Select Reporting Service -Native > Click Next.
- Configure instance by setting the instance name or leave default.
- Check Disk Space Requirement > Next.
- In Server Configuration > Set SSRS Service Account > Next.
- In Reporting Service Configuration > Check Install only.
- In Error Reporting > Click Next.
- Once the Installation Configuration Rules have been passed > Click Next.
- In Ready to install > Click on Install.
- Complete the installation wizard and click Finish.
- Open Reporting Service Configuration Manager.
- With the same Server name, Click Find and select the existing instance that has been selected to add SSRS feature > Click on Connect.
- The Report Server Status should be shown with the current report server status and basic information about report server.
- Go to Service Account section to check the service account that has been set during the installation, you can also change the current service account through this section based on your requirement.
- Before configuring Web Service URL > Go to Database section > Click on Change Database.
- Follow the Change Database wizard > Check Choose an existing report server database > Next.
- Type the server name of the SQL Server Database Engine instance that hosts the report server database,
- Select Authentication Type “SQL Server Account”.
- Set the Username and Password for the account that should have permission to connect to SQL Server Database Engine instance that hosts the report server database.
- Click on Test Connection > Next.
- In Report Server Database, type the database that created for the first report server, and then click Next.
Note: The default reporting database name is ReportServer, and you should type the sam name of reporting database on the first server, also do not select ReportServerTempDB, it is used only for storing temporary data when processing reports.
- Again set the credential for the user that should have permission to access the Report Server Database.
- Review the Summary > Next.
- Wait until the Report Server Database Configuration wizard complete > Click on Finish.
- Now Database section should show the current Report Server Database.
- Configure the Report Server Web service URL.
Do not test the URL yet. It will not resolve until the report server is joined to the scale-out deployment.
- Configure the Report Manager URL.
Do not test the URL yet or try to verify the deployment. The report server will be unavailable until the report server is joined to the scale-out deployment.
- Join the second report server instance to the scale-out deployment
- Open the Reporting Services Configuration tool,
- and reconnect to the first report server name.
Note: The first report server is already initialized for reversible encryption operations so it can be used to join additional report server instances to the scale-out deployment.
- Click Scale-out Deployment to open the Scale-out Deployment page.
- You should see two entries, one for each report server instance that is connected to the report server database.
- The first report server instance status should be joined.
- The second report server instance status should be “Waiting to join“.
Note : If you do not see similar entries for your deployment, verify you are connected to the first report server that is already configured and initialized to use the report server database.
- On the Scale-out Deployment page, select the report server instance that is waiting to join the deployment, and clicks Add Server.
- You may experience error messages similar to ‘Access Denied’ when you attempt to join a Reporting Services report server instance to the scale-out deployment, to solve it.
Back up the Reporting Services encryption key from the first Reporting Services instance.
Restore the key to the second Reporting Services report server.
Then reconnect again to the first report server and try to join the second server to the Reporting Services scale-out deployment.
- You should now be able to verify that both report server instances are operational.
- To verify the second instance, you can use the Reporting Services Configuration tool to connect to the report server and click the Web Service URL or the Report Manager URL.