Skip to Content

Implementing High Availability for SAP Business Objects CMS and Audit Databases

Contents

Introduction

Software Prerequisites

Default Credentials

Database Mirroring Architecture

Database Mirroring Setup

Setting up the Mirror Partners for the CMS Database

Setting up the Mirror Partners for the Audit Database

Starting up the Mirror and Arbiter Database Servers

Changing the ODBC DSN Connections

Adding Services to Sybase Central

Confirming Mirroring Database Servers

Summary & Additional Resources


Introduction


SAP SQL Anywhere is used as the default database server for the Central Management Server (CMS) and Audit data stores in SAP Business Objects 4.1 (or higher), 4.0 (SP7 or higher), and 3.1 (SP5 or higher). One of the many advantages of using SAP SQL Anywhere (SQLA) in SAP Business Objects (BOBJ) is its high availability (HA) capability. With the growing need of 24x7 operations and minimal downtime, it is vital for BOBJ administrators to account for high availability during deployment. Key features of a high availability environment include system backups, data storage, and failover processing. This document strictly focuses on implementing failover processing by mirroring the CMS and Audit databases.

There are three components required to have a successful mirroring configuration: a Primary database server, a Mirror database server and an Arbiter database server - they all communicate together to make sure that the CMS and Audit databases are always active. To find more information on general database mirroring, please refer to SQLA’s documentation. Please note that it is equally important to safeguard other components of BOBJ such as the In/Out File Repository Systems (FRS) and BOBJ server. More information about other high availability options such as BOBJ server clustering can be found on the SAP Business Objects Deployment and Configuration Guide. Users interested in learning how to back up the CMS and Audit databases to prevent data loss can take a look at the article: Backing Up the CMS and Audit Databases Using SQL Anywhere Maintenance Plans.

The original location of this document is http://scn.sap.com/docs/DOC-54843.

Click here if you want to download a printable (PDF) copy of this paper.

Software Prerequisites

  • SAP Business Objects 3.1 (SP5 or higher), 4.0 (SP7 or higher), or 4.1 (or higher).
  • The SQLA 12.0.1 database administration tools Sybase Central and Interactive SQL - included in the SAP SQL Anywhere 12.0.1 installation media.
  • SQL Anywhere database server with high availability option enabled (see important note below).

The edition of SQL Anywhere 12.0.1 used in this document is the free Developer Edition as it includes the high availability option. The Developer Edition is perfect for development and testing purposes. You can download a copy of SQL Anywhere 12.0.1 Developer Edition here: http://scn.sap.com/docs/DOC-31795.

Important note for implementing high availability in a production BOBJ environment

The bundled edition of SQLA that is provided with BOBJ does not include the high availability option. You can use the SQLA Developer Edition to test your HA implementation, but you cannot use that edition in production environments. To do so, you must purchase SAP SQL Anywhere 12.0.1 Standard Edition or SAP SQL Anywhere 12.0.1 Advanced Edition as they include the high availability option. To view the differences between those two editions, please refer to http://scn.sap.com/docs/DOC-54533.

Please visit the SAP Store or contact your SAP sales representative to obtain that product


Default Credentials

Throughout this document there are many steps where the user is asked for credentials such as hostname, database user ID & password, CMS cluster name, ODBC data source information, etc. The credentials used are listed below for reference.

SettingValue
Default database server nameBI4
Default database server port2638
Default database server passwordpASSWORD1
Copy database server nameBI4copy
Copy database server port2639
Copy database server passwordpASSWORD1
Arbiter database server namearbiter
Arbiter database server port2637
Arbiter database server passwordpASSWORD1
CMS cluster nameBaseW2k8r2EnterpriseSeldon:6400
CMS ODBC DSN nameBI4_CMS_DSN
Audit ODBC DSN nameBI4_Audit_DSN

Database Mirroring Architecture

Below is an architecture diagram showing how an SAP Business Objects HA deployment would look. The three key components include a clustered BOBJ server setup, CMS/Audit database server mirroring setup and an Active/Passive File Repository Server setup. Once again, this document strictly focuses on implementing failover processing by mirroring the CMS and Audit databases.

Clustering more than one BOBJ server increases the number of available machines working together to maintain a system database. Clustering nodes provides failover support in the case of a BOBJ server going down. The duplicate BOBJ server continues to process requests with no impact to the system.

A deployment can have multiple File Repository Servers to store files, usually on a Storage Area Network (SAN). The active FRS is the one that first registers to the BOBJ server cluster. In the case that the active FRS fails, the passive FRS registered with the cluster is changed to active status. FRS can be replicated for backup purposes using a RAID array.

Icons courtesy of Open Security Architecture

Database Mirroring Setup

In a BOBJ deployment, there are two important databases (BI4_CMS and BI4_Audit) that always connect to a running database server. If this database server were to ever shutdown or fail, these databases would be inaccessible resulting in data loss. SQLA database mirroring allows the user to create an alternate database server that automatically connects to these databases if this were to occur.

There are some preliminary steps that must be completed before the setup can be started.

  1. The BOBJ CMS server needs to be shutdown (use the Central Configuration Manager to stop the Service Intelligence Agent). It is recommended this is done when the BOBJ server load is low.
  2. Stop the SQLA database service via the Services applet in Administrative Tools.  The SQLA database service name is "SQL Anywhere for SAP Business Intelligence".
  3. There should be an existing directory with the SQLA databases and transaction log files. The default location for these files are:
    • Location: C:\Program Files (x86)\SAP Business Objects\sqlanywhere\database.
    • File names: BI4_CMS.db, BI4_CMS.log, BI4_Audit.db, and BI4_Audit.log.
  4. The user must create similar directories for the mirror and arbiter database servers to hold additional databases. The directories used for this paper are:
    • C:\arbiter
    • C:\t1
  5. Ensure your machine's PATH environment variable lists the SQLA folders before the BOBJ folders, as follows:

    C:\Program Files\SQL Anywhere 12\bin64;C:\Program Files\SQL Anywhere 12\bin32;C:\Program Files (x86)\SAP BusinessObjects\sqlanywhere\bin64;C:\Program Files (x86)\SAP BusinessObjects\sqlanywhere\bin32

Setting up the Mirror Partners for the CMS Database

Please note that this paper assumes the user is comfortable using the Command Prompt and SQL Anywhere commands. The first step to database mirroring is to start up the default database server with its mirroring properties.

  1. Open an elevated Command Prompt (Run as administrator) and start the default database with the following command:

    dbspawn -f dbsrv12 -n BI4 -x tcpip(PORT=2638) -su pASSWORD1 "C:\Program Files (x86)\SAP BusinessObjects\sqlanywhere\database\BI4_CMS.db" -xp on "C:\Program Files (x86)\SAP BusinessObjects\sqlanywhere\database\BI4_Audit.db" -xp on

    The “-xp on” switch indicates that the server is participating in database mirroring.

    Note: If the High Availability option is not enabled in your edition of SQLA, the use of the “-xp” switch in the command above will return an error!
  2. Connect to the default CMS database from Interactive SQL (ISQL) to define the mirroring parameters:

    dbisql -c "UID=DBA;PWD=pASSWORD1;SERVER=BI4;DBN=BI4_CMS"

    An Interactive SQL (ISQL) window opens like the following:

  3. Define the default database server “BI4” as a partner database server for the “BI4_CMS” database. This statement also creates a state file for the database server that keeps track of what state the database server is in. Hit the Execute button or F5 to run the SQL statements.

    CREATE MIRROR SERVER BI4
    AS PARTNER
    connection_string='SERVER=BI4;host=localhost:2638'
    state_file='C:\\Program Files (x86)\\SAP BusinessObjects\\sqlanywhere\\database\\BI4.state';

Troubleshooting ISQL
A common error that can occur when defining a database server as a partner, a primary or mirror is that a database server with that attribute might already exist for that database.

Error windows that pop up can look like the ones below.

There is a very easy solution to resolve such problems and requires two steps:

  1. Use this command to see all the database servers running and their server types:

    SELECT * FROM SYS.SYSMIRRORSERVER
  2. Identify the server type and server name that currently exist and use this command to drop the server:

    DROP MIRROR SERVER {SERVERNAME}

  1. Create a database server and define it as a partner to the original database server. This will be the database server that will act as a mirror and will become the active database server in the case of failover. Please make sure this database server starts on a different host port.

    CREATE MIRROR SERVER BI4copy
    AS PARTNER
    connection_string='SERVER=BI4copy;host=localhost:2639'
    state_file='c:\\t1\\BI4copy.state'

  2. Execute the following statement to define “BI4primary1” as the logical Primary database server for BI4’s CMS database. BI4primary1 is the name that clients use to connect to the database server associated with the CMS database that is acting as the Primary database server. Make sure to specify both the ports used for the default and copy database servers.

    CREATE MIRROR SERVER BI4primary1
    AS PRIMARY
    connection_string='SERVER=BI4primary1;HOST=localhost:2638,localhost:2639';

  3. The next step is to define “BI4mirror1” as the logical Mirror database server for BI4’s CMS database. BI4mirror1 is the name that clients use to connect to the database server associated with the CMS database that is acting as the Mirror database server. Make sure to specify both the ports used for the default and copy database servers.

    CREATE MIRROR SERVER BI4mirror1
    AS MIRROR
    connection_string='SERVER=BI4mirror1;HOST=localhost:2638,localhost:2639';

  4. Define the Arbiter database server.

    CREATE MIRROR SERVER BI4arbiter
    AS ARBITER
    connection_string ='SERVER=BI4arbiter;HOST=localhost:2637';
  5. Set a mirror option for the database mirroring system to connect with the Arbiter database server. Once done, disconnect and close Interactive SQL windows.

    SET MIRROR OPTION authentication_string='abc';

  6. Shut down Interactive SQL.
  7. The last step is to make a backup copy of the CMS database and transaction log files in the mirror database server directory. Input the following command into the Command Prompt.

    dbbackup -c "UID=DBA;PWD=pASSWORD1;SERVER=BI4;DBN=BI4_CMS" c:\t1

Setting up the Mirror Partners for the Audit Database

Similar to setting up the mirror database server partners for the CMS database the user must do the same for the Audit database.

  1. Connect to the default Audit database from Interactive SQL (ISQL) to define the mirroring parameters:

    dbisql -c "UID=DBA;PWD=pASSWORD1;SERVER=BI4;DBN=BI4_Audit"

  2. Define the default server “BI4” as a partner server for the “BI4_Audit” database. This statement also creates a state file for the server that keeps track of what state the server is in. Hit the Execute button or F5 to run the SQL statements.

    CREATE MIRROR SERVER BI4
    AS PARTNER
    connection_string='SERVER=BI4;host=localhost:2638'
    state_file='C:\\Program Files (x86)\\SAP BusinessObjects\\sqlanywhere\\database\\BI4.state';

  3. Create a database server and define it as a partner to the original database server. This will be the database server that will act as a mirror and will become the active database server in the case of failover. Please make sure this database server starts on another host port.

    CREATE MIRROR SERVER BI4copy
    AS PARTNER
    connection_string='SERVER=BI4copy;host=localhost:2639'
    state_file='c:\\t1\\BI4copy.state'


  4. Execute the following statement to define “BI4primary2” as the logical Primary database server for BI4’s Audit database. BI4primary2 is the name that clients use to connect to the database server associated with the Audit database that is acting as the Primary database server. Make sure to specify both the ports used for the default and copy database servers.

    CREATE MIRROR SERVER BI4primary2
    AS PRIMARY
    connection_string='SERVER=BI4primary2;HOST=localhost:2638,localhost:2639';


  5. The next step is to define “BI4mirror2” as the logical Mirror database server for BI4’s Audit database. BI4mirror2 is the name that clients use to connect to the database server associated with the CMS database that is acting as the Mirror database server. Make sure to specify both the ports used for the default and copy database servers.

    CREATE MIRROR SERVER BI4mirror2
    AS MIRROR
    connection_string='SERVER=BI4mirror2;HOST=localhost:2638,localhost:2639';

  6. Define the Arbiter database server.

    CREATE MIRROR SERVER BI4arbiter
    AS ARBITER
    connection_string ='SERVER=BI4arbiter;HOST=localhost:2637';
  7. Set a mirror option for the database mirroring system to connect with the Arbiter database server. This should be different from the one defined for the CMS database. Once done, disconnect and close Interactive SQL windows.

    SET MIRROR OPTION authentication_string='def';

  8. Shut down Interactive SQL.
  9. The last step is to make a backup copy of the Audit database and transaction log files in the mirror database server directory. Input the following command into the Command Prompt.

    dbbackup -c "UID=DBA;PWD=pASSWORD1;SERVER=BI4;DBN=BI4_Audit" c:\t1

Starting up the Mirror and Arbiter Database Servers

To start up these database servers, enter the following commands in the Command Prompt:

Mirror database server:

dbspawn -f dbsrv12 -n BI4copy -x tcpip(PORT=2639) -su pASSWORD1 "C:\t1\BI4_CMS.db" -xp on "C:\t1\BI4_Audit.db" -xp on

  • The “-xp on” switch indicates that the server is participating in database mirroring.

Arbiter database server:

dbspawn -f dbsrv12 -n BI4arbiter -su pASSWORD1 -x "tcpip(PORT=2637)" -xf "c:\arbiter\arbiter.state" -xa "AUTH=abc,def;DBN=BI4_CMS,BI4_Audit"

  • The “-xf” switch specifies the location of the state file for the arbiter.
  • The “-xa” switch identifies the names of the databases being mirrored and the authentication string for the arbiter.

At this stage the user should have the three database servers running with the default database server “BI4” as the primary database server, and the alternate database server “BI4copy” as the mirror database server. To see the current state of a database server or a specific database on a database server, use the following commands:

dbping -c "UID=DBA;PWD=pASSWORD1;SERVER=BI4primary1" -ps ServerName -pd MirrorRole,MirrorState,PartnerState,ArbiterState

or

dbping -c "UID=DBA;PWD=pASSWORD1;SERVER=BI4copy;DBN=BI4_Audit" -ps ServerName -pd MirrorRole,MirrorState,PartnerState,ArbiterState

Changing the ODBC DSN Connections

Once the database mirroring of the CMS and Audit databases are complete, the ODBC Data Source Name (DSN) connection must be changed to connect to the Primary database server.

  1. Launch the ODBC Data Source Administrator (click Start > All Programs > SQL Anywhere 12 > Administration Tools > ODBC Data Source Administrator).
  2. Switch to the “System DSN” tab.

  3. Click on BI4_CMS_DSN and then click Configure.

  4. The ODBC configuration dialog for SQLA appears. Switch over to the “Login” tab.

  5. There are two changes that need to be made. The first is that the Port must be left blank and the second is to change the Server Name to the name given to the Primary database server. For this paper that is “BI4Primary”.

  6. Click “OK” once complete and repeats steps 1-5 for the Audit System DSN (BI4_CMS_DSN). Make sure to input the correct database server name. For this paper that would be “BI4primary2”.

Adding Services to Sybase Central

At this point the database servers have been created though the Command Prompt, but the goal is to have these database servers running as services so that they automatically start up. In Sybase Central, users are allowed to create and modify SQLA services necessary to do this.

  1. Launch Sybase Central (click Start > All Programs > SQL Anywhere 12 > Administration Tools > Sybase Central). Close the Welcome dialog if it appears.
  2. Switch to “SQL Anywhere 12” tab located under Sybase Central in the Folders view box.

  3. Click on the “Services” tab in the right panel.

  4. There should be one service that starts up the default database server which is currently stopped indicated by the red square.
  5. Double click on “SQLANY’s_SQLAnywhereForBI” to open up the service properties. The user is able to edit the properties of the service under the different tabs.

  6. Switch over to the “Configuration” tab to change the current service startup executable and parameters. Currently the service is running the database server through the dbsrv12 executable located within the SAP Business Objects program folder. This needs to change so that the service runs though the dbsrv12 executable located in the SAP SQL Anywhere program folder. The parameters need to be changed to the command used in step one of the “Setting up the Mirror Partners for the CMS Database” section:

    Filename:
    C:\Program Files\SQL Anywhere 12\Bin64\dbsrv12.exe

    Parameters:
    -n BI4 -x tcpip(PORT=2638) -su pASSWORD1 "C:\Program Files (x86)\SAP BusinessObjects\sqlanywhere\database\BI4_CMS.db" -xp on "C:\Program Files (x86)\SAP BusinessObjects\sqlanywhere\database\BI4_Audit.db" -xp on

    This will let the database server participate in database mirroring. Below are before and after screenshots of what the configurations should look like.

    Before:



    After:



  7. Click Apply and close the properties box. You are now back in Sybase Central under the Services section.
  8. The next step is to add new services for the mirror and arbiter database servers. Right-click on an empty space on the right panel and select New > Service from the popup menu.

  9. The Create Service Wizard appears. Name the new service "SQLANY’s_SQLAnywhereForBIMirror". Click Next to continue.

  10. Select Network Database Server form the list of services and click Next.

  11. Enter the directory path to dbsrv12.exe within the SQL Anywhere 12 program folder. Click Next to continue.

  12. The user needs to specify the parameters for the mirror database server. These parameters will be the exact same to the ones used in the section “Starting up the Mirror and Arbiter Servers”:

    -n BI4copy -x tcpip(PORT=2639) -su pASSWORD1 "C:\t1\BI4_CMS.db" -xp on "C:\t1\BI4_Audit.db" -xp on

    Click Finish to complete the Create Service Wizard.

  13. You are back in Sybase Central and the Services section should now have two services.
  14. The next step is to create a service for the Arbiter server. The process is exactly the same as the one above with just a minor change to the service name and parameters. Right-click on an empty space and select a New > Service from the popup menu.

  15. The Create Service Wizard appears. Name the new service "SQLANY’s_SQLAnywhereForBIArbiter". Click Next to continue.

  16. Select Network Database Server form the list of services and click Next.

  17. Enter the directory path to dbsrv12.exe within the SQL Anywhere 12 program folder. Click Next to continue.

  18. The user needs to specify the parameters for the arbiter database server. These parameters will be the exact same to the ones used in the section “Starting up the Mirror and Arbiter Servers”:

    -n BI4arbiter -su pASSWORD1 -x tcpip(PORT=2637) -xf C:\arbiter\arbiterstate.txt -xa "AUTH=abc,def;DBN=BI4_CMS,BI4_Audit"

    Click Finish to complete the Create Service Wizard.

  19. Now you are back in Sybase Central and within the Services section there are three sevices. One for each of the database servers.

At this point, the three SQLA database servers are still running due to the setup steps performed earlier. Shut down each database server by either:

  • Clicking "Shut down" in the database server dialog (launch via System Tray)
    - or -
  • Running these three commands in the Command Prompt:

    dbstop -c "uid=dba;pwd=pASSWORD1;dbn=utility_db;links=tcpip" BI4copy
    dbstop -c "uid=dba;pwd=pASSWORD1;dbn=utility_db;links=tcpip" BI4
    dbstop -c "uid=dba;pwd=pASSWORD1;dbn=utility_db;links=tcpip" BI4arbiter

You may now close the Command Prompt.

Confirming Mirroring Database Servers

The last and final steps are to start up the three database servers through their services and check to see if they are working. There are two ways to turn on the services; either manually turning them on through Sybase central or restarting the computer. To start up the service through Sybase Central, right-click on the name of the service and then click Start from the popup menu. The order to follow when turning on the services is (1) Arbiter, (2) Default and then (3) Mirror.

Once all of the database services have been started, make sure that the BOBJ CMS server is running (start the Server Intelligence Agent via the Central Configuration Manager) and that BOBJ is connected to the primary database server. One way to check is to login either to the Central Management Console (CMC) or the Query Builder (QB).

If the user is getting errors like the ones below there could be an indication that the services weren’t setup properly or haven’t been started.


To test out the failover procedure of the mirrored database servers, disconnect the default database server “BI4” by disabling its Service and keep the remaining two services running. The alternate database server “BI4copy” should become the primary database server and the user should be able to login to the CMC and the QB. Starting up the Service for “BI4” turns the database server back on and puts it into a mirroring state ready to become the primary database server if “BI4copy” turns off.

Summary & Additional Resources

Implementing database mirroring for the CMS repository and Audit database can be a very helpful tool when considering a high availability environment within SAP Business Objects. It is important to make sure that the Arbiter database server is always running so that the mirroring database servers know which state they are in. Don't forget to test your mirroring system to ensure the procedure executes properly and behaves as expected.

Additional Resources

Tags: