Switch to standard view 
  Sybase logo
 
 
 



April 2012 Edition

How to Set Up SA in a Windows 2008 Failover Cluster

This document steps the reader through how to install, configure and run a SQL Anywhere Database Server within a Microsoft Windows 2008 Clustered environment. This document will not address setting up a Microsoft Windows 2008 Cluster environment or how to create shared disk via an iSCSI resource.

Assumptions:

  • A working Microsoft Windows 2008 Cluster environment
  • Shared disk accessible by either cluster node when cluster node is active
  • A static IP address for the database serviceEnvironment:
  • A DNS name for the above database service’s static IP address:

Environment:

- Domain Controller

  • OS: Windows 2008
  • Host Name: vmnode6
  • External IP: 10.7.170.55
  • Running DNS Server for environment

- Cluster Node 1

  • OS: Windows 2008
  • Host Name: vmnode1
  • External IP: 10.7.170.50
  • Cluster IP: 172.16.1.1
  • iSCSI IP: 172.16.0.2
  • SA Location: c:\sa o Quorum: Q:\
  • Database Shared Disk: D:\DB

- Cluster Node 2

  • OS: Windows 2008
  • Host Name: vmnode2
  • External IP: 10.7.170.51
  • Cluster IP: 172.16.1.2
  • iSCSI IP: 172.16.0.3
  • SA Location: c:\sa
  • Quorum: Q:\
  • Database Shared Disk: D:\DB

- FreeNAS iSCSI common disk for database

  • OS: FreeBSD
  • Host Name: freenas
  • iSCSI IP: 172.16.0.1

Deploy SA Files: Using the SQL Anywhere deployment documentation (Database server deployment) files are listed to be deployed to each node. Depending on the particular usage of the database server not all the files are required. In this example each node will have the SQL Anywhere database server files deployed to an C:\sa directory. One additional file was added to enable the reader to create a service via the command line tool dbsvc.exe. Creating a service on each node is required so that a generic cluster service can be created to manage the service running on the active cluster node.

The list of files used in this example is as follows;

  • C:\sa\bin64\dbcis12.dll
  • C:\sa\bin64\dbctrs12.dll
  • C:\sa\bin64\dbeng12.exe
  • C:\sa\bin64\dbeng12.lic
  • C:\sa\bin64\dbextf.dll
  • C:\sa\bin64\dbghelp.dll
  • C:\sa\bin64\dbicu12.dll
  • C:\sa\bin64\dbicudt12.dll
  • C:\sa\bin64\dbjdbc12.dll
  • C:\sa\bin64\dbjodbc12.dll
  • C:\sa\bin64\dblgen12.dll
  • C:\sa\bin64\dbodbc12.dll
  • C:\sa\bin64\dbrsakp12.dll
  • C:\sa\bin64\dbscript12.dll
  • C:\sa\bin64\dbserv12.dll
  • C:\sa\bin64\dbsrv12.exe
  • C:\sa\bin64\dbsrv12.lic
  • C:\sa\bin64\dbsvc.exe
  • C:\sa\bin64\libsybbr.dll
  • C:\sa\bin64\sqlany.cvf
  • C:\sa\bin64\java\cis.zip
  • C:\sa\bin64\java\jconn3.jar
  • C:\sa\bin64\java\sajdbc.jar
  • C:\sa\bin64\java\sajdbc4.jar
  • C:\sa\bin64\java\sajvm.jar


The database file being used in this example is the SQL Anywhere demo database.These files are deployed to the D: drive which is the iSCSI disk resource.

The database is deployed to the following location;

  • D:\DB\demo.db
  • D:\DB\demo.log

Once the SQL Anywhere database server and database files have been deployed a service needs to be created on each node that will run the database server. In a failover cluster only the active node can access the shared disk once the shared disk has been added as a cluster storage resource.

To make sure the database server parameters are correct before running dbsvc.exe, the dbsrv12 command was executed first;

dbsrv12 -z -n ClusterDBSrv -x tcpip(MyIP=10.7.170.46) d:\DB\demo.db

Note the use of MyIP in the TCPIP section of the command. This is so the database server will listen for requests on the cluster assigned IP address and not the IP addresses of the cluster node. Make sure connectivity is tested to the database server by using a tool such as Sybase Central.

Once the database server is running and can be connected too without issue it can be shutdown. Use dbsrv12.exe command line to build the dbsvc.exe command so the database server service can be created. See the documentation for reference about the switches used.

The following was executed on each node for this example;

dbsvc -as -s auto -t network -w ClusterSAService C:\sa\bin64\dbsrv12.exe -z -n ClusterDBSrv -x tcpip(MyIP=10.7.170.46) d:\DB\demo.db

The above dbsvc command will create a service that will run as local system, auto start, is a network database server and called ClusterSAService.

Next a generic cluster service needs to be created for the database server service to operate within the context of the cluster environment. Open the Failover Cluster Manager and expand the cluster.

 

Right mouse click on “Services and Applications”, select “Create a Service or Application…” and a High Availability Wizard will pop up.

Click Next > to continue

Select Generic Service and click Next > to continue

Scroll down the list of services available until you see a service called SQL Anywhere - <Node Service Name>. This Node Service Name is the value used in the dbsvc’s –w parameter. In this example ClusterSAService was used for the value of the –w parameter so the service name is “SQL Anywhere – ClusterSAService”. Once the service has been highlighted click Next > to continue.

Enter the DNS name that clients will use to access this cluster resource. For this example SAService was used as the DNS name. Enter the IP address for the SAService. In this example 10.7.170.46 was used. Click Next > to continue.

In this dialog available storage resources are presented. Select the storage resource that contains the database. This is important because the storage resource MUST be available before the cluster database service is attempted to start.

Registry entries can be maintained and copied between the nodes then they would be entered in this dialog. For this example no registry entries are required so none are entered here. Click Next > To continue.

This dialog confirms what will be created. Click Next > to continue.

The High Availability Wizard creates the cluster service resource.

Here the SQL Anywhere Database Server Cluster Service has successfully been created. Click Finish to close the wizard.

A new entry has appeared in the Services and Applications section of the Failover Cluster Management tool. Note in this example the service is running and has a Current Owner of vmnode2 which means that the database server is currently running on the vmnode2 cluster node. To test the failover, right mouse click on the SAService and select “Move this service or application to another node”, then select “1 – Move to node vmnode1”. Confirm action to “Move SAService to vmnode1”. The cluster service will enter a “Pending” state then reenter the “Online” state. Now note the SAService has moved the Current Owner to vmnode1.

To test connectivity to the database server, use an application such as Sybase Central and connect to the DNS name or IP address that the database server is listening on.



Back to Top
© Copyright 2010, Sybase Inc.