This chapter explains how to configure and administer Sun Cluster HA for Sybase ASE on your Sun Cluster nodes.
This chapter contains the following sections.
Overview of Installing and Configuring Sun Cluster HA for Sybase ASE
Configuring Sybase ASE Database Access and Creating the Sybase ASE Database Environment
Verifying the Sun Cluster HA for Sybase ASE Installation and Configuration
Sun Cluster HA for Sybase ASE provides fault monitoring and automatic failover for the Sybase ASE application.
Throughout this document a non-global zone might be referred to as a “zone.” A global zone will always be referred to as a “global zone.”
You must configure Sun Cluster HA for Sybase ASE as a failover data service.
For general information about data services, resource groups, resources, and other related topics, see:
The following table summarizes the tasks for installing and configuring Sun Cluster HA for Sybase ASE and provides cross-references to detailed instructions for performing these tasks. Perform the tasks in the order that they are listed in the table.
Table 1 Tasks for Installing and Configuring Sun Cluster HA for Sybase ASE
Task |
Instructions |
---|---|
Prepare to install Sun Cluster HA for Sybase ASE | |
Install the Sybase ASE software | |
Configure Sybase ASE database access and create the Sybase ASE database environment |
Configuring Sybase ASE Database Access and Creating the Sybase ASE Database Environment |
Install the Sun Cluster HA for Sybase ASE package | |
Register Sun Cluster HA for Sybase ASE resource types and configure resource groups and resources | |
Verify the Sun Cluster HA for Sybase ASE installation |
Verifying the Sun Cluster HA for Sybase ASE Installation and Configuration |
Tune the Sun Cluster HA for Sybase ASE fault monitor |
To prepare your nodes for the Sun Cluster HA for Sybase ASE installation, select an installation location for the following files.
Sybase ASE application files. These files include Sybase ASE binaries and libraries. You can install these files on either the local file system or the cluster file system.
For information about the advantages and disadvantages of placing the Sybase ASE binaries on the local file system instead of the cluster file system, see Configuration Guidelines for Sun Cluster Data Services in Sun Cluster Data Services Planning and Administration Guide for Solaris OS.
Sybase ASE configuration files. These files include the interfaces file, config file, and environment file. You can install these files on the local file system (with links), the highly available local file system, or on the cluster file system.
Database data files. These files include Sybase device files. You must install these files on the highly available local file system or the cluster file system as either raw devices or regular files.
Sun Cluster HA for Sybase ASE can be installed and configured in the global zone or non-global zone for x86/x64 and SPARC architectures.
Use the procedures in this section to complete the following tasks.
Preparing the nodes for the installation of the Sybase ASE Software
Installing the Sybase ASE software
Verifying the Sybase ASE installation
Before you configure Sun Cluster HA for Sybase ASE, use the procedures that the Sun Cluster Software Installation Guide for Solaris OS describes to configure the Sun Cluster software on each node.
The Sun Cluster HA for Sybase ASE can be configured to run in a whole root or a sparse root non-global zone for x86/x64 and SPARC architectures.
Perform all of the steps in this procedure on all of the nodes or zones. If you do not perform all of the steps on all of the nodes or zones, the Sybase ASE installation will be incomplete, and Sun Cluster HA for Sybase ASE will fail during startup.
Consult the Sybase ASE documentation before you perform this procedure.
Become superuser on all of the nodes.
Configure the /etc/nsswitch.conf file as follows so that Sun Cluster HA for Sybase ASE starts and stops correctly if a switchover or failover occurs.
On each node or zone that can master the logical host that runs Sun Cluster HA for Sybase ASE, include the following entries in the /etc/nsswitch.conf file.
passwd: files [NOTFOUND=return] nis [TRYAGAIN=0] publickey: files [NOTFOUND=return] nis [TRYAGAIN=0] project: files [NOTFOUND=return] nis [TRYAGAIN=0] group: files [NOTFOUND=return] nis [TRYAGAIN=0]
Sun Cluster HA for Sybase ASE uses the su user command to start and stop the database node.
The network information name service might become unavailable when a cluster node's public network fails. Adding the preceding entries ensures that the su(1M) command does not refer to the NIS/NIS+ name services if the network information name service is unavailable.
Configure the cluster file system for Sun Cluster HA for Sybase ASE.
If raw devices contain the databases, configure the global devices for raw-device access. For information about how to configure global devices, see Sun Cluster Software Installation Guide for Solaris OS.
Configuring raw devices on non-global zones is not supported on Sun Cluster.
If you use the Solaris Volume Manager software, configure the Sybase ASE software to use UNIX file system (UFS) logging on mirrored metadevices or raw-mirrored metadevices. For information about how to configure raw-mirrored metadevices, see the Solaris Volume Manager documentation.
Prepare the SYBASE_HOME directory on a local or multihost disk.
If you install the Sybase ASE binaries on a local disk, use a separate disk if possible. Installing the Sybase ASE binaries on a separate disk prevents the binaries from being overwritten during reinstallation of the operating system.
On each node or zone, create an entry for the database administrator (DBA) group in the /etc/group file, and add potential users to the group.
Verify that the root and sybase users are members of the dba group, and add entries as necessary for other DBA users. Ensure that group IDs are the same on all of the nodes or zones that run Sun Cluster HA for Sybase ASE, as the following example illustrates.
dba:*:520:root,sybase |
You can create group entries in a network name service. If you create entries this way, also add your entries to the local /etc/group file to eliminate dependency on the network name service.
On each node or zone, create an entry for the Sybase system administrator.
The following command updates the /etc/passwd and /etc/shadow files with an entry for the Sybase system administrator.
# useradd -u 120 -g dba -d /Sybase-home sybase |
Ensure that the sybase user entry is the same on all of the nodes or zones that run Sun Cluster HA for Sybase ASE.
On a cluster node or zone, become superuser or assume a role that provides solaris.cluster.modify and solaris.cluster.admin RBAC authorizations.
If you plan to install the Sybase ASE software on the cluster file system, start the Sun Cluster software and become the owner of the disk device group.
If you plan to install the Sybase ASE software at another location, omit this step.
For more information about installation locations, see Preparing to Install Sun Cluster HA for Sybase ASE.
Create a failover resource group to hold the network and application resources.
# clresourcegroup create [-n node-zone-list] resource-group |
Specifies an optional, comma-separated list of physical node names or zones or IDs that identify potential masters. The order here determines the order in which the Resource Group Manager (RGM) considers primary nodes or zones during failover.
Specifies the name of the resource group. This name can be your choice but must be unique for resource groups within the cluster.
Use the -n option to specify the order of the node list. If all of the nodes in the cluster are potential masters, you do not need to use the -n option.
Verify that you have added all of the network resources that Sun Cluster HA for Sybase ASE uses to either the /etc/inet/hosts file or to your name service (NIS, NIS+) database.
Add a network resource (logical host name or shared address) to the failover resource group.
# clreslogicalhostname create -g resource-group -h host_list logical_host |
Specifies a resource name of your choice.
Specifies a comma-separated list of host names that are to be made available by the logical host name resource.
Run the clresourcegroup(1CL) command to complete the following tasks.
Enabling the resource and fault monitoring
Moving the resource group into a managed state
Bringing the resource group online
# clresourcegroup online -M resource-group |
On the node or zone that masters the resource group that you just created, log in as sybase.
The installation of the Sybase binaries must be performed on the node or zone where the corresponding logical host is running.
Install the Sybase ASE software.
Regardless of where you install the Sybase ASE software, modify each node's /etc/system files as you would in standard Sybase ASE installation procedures. For instructions about how to install the Sybase ASE software, refer to the Sybase installation and configuration guides.
For every Sybase ASE server, specify the host name that is associated with a network resource.
If you do not specify a host name that is associated with a network resource, Sybase ASE starts only on the node or zone where the Sybase ASE software was installed.
Some versions of Sybase ASE, such as 12.5, prompt you for the host name. Other versions of Sybase ASE, such as 12.5.1, use the physical host name. If your version of Sybase ASE uses the physical host name, you must change the physical host name to specify a network resource.
If the Sybase ASE installer prompts you for the host name, type the host name in response to the prompt.
Otherwise, modify the interfaces file to change the physical host name to a host name that is associated with a network resource.
After you install the Sybase ASE software, go to How to Verify the Sybase ASE Installation.
Verify that the sybase user and the dba group own the $SYBASE_HOME directory and $SYBASE_HOME children directories.
After you verify the Sybase ASE installation, go to Configuring Sybase ASE Database Access and Creating the Sybase ASE Database Environment.
Configuring Sybase ASE database access and creating the Sybase ASE Database Environment involves the following tasks.
Configuring Sybase ASE database access with the volume manager that you are using:
If you are using Solaris Volume Manager, see How to Configure Sybase ASE Database Access With Solaris Volume Manager.
If you are using Veritas Volume Manager (VxVM), see How to Configure Sybase ASE Database Access With Veritas Volume Manager.
Creating the Sybase ASE database environment
Configure the disk devices for the Solaris Volume Manager software to use.
For information about how to configure Solaris Volume Manager, see Sun Cluster Software Installation Guide for Solaris OS.
If you use raw devices to contain the databases, run the following commands to change each raw-mirrored metadevice's owner, group, and mode.
If you do not use raw devices, do not perform this step.
If you create raw devices, run the following commands for each device on each node that can master the Sybase ASE resource group.
# chown sybase /dev/md/metaset/rdsk/dn # chgrp dba /dev/md/metaset/rdsk/dn # chmod 600 /dev/md/metaset/rdsk/dn |
Specifies the name of the disk set
Specifies the name of the raw disk device within the metaset disk set
Verify that the changes are effective.
# ls -lL /dev/md/metaset/rdsk/dn |
Go to How to Create the Sybase ASE Database Environment.
Configure the disk devices for the VxVM software to use.
For information about how to configure Veritas Volume Manager, see Sun Cluster Software Installation Guide for Solaris OS.
If you use raw devices to contain the databases, run the following commands on the current disk-group primary to change each device's owner, group, and mode.
If you do not use raw devices, do not perform this step.
If you create raw devices, run the following command for each raw device.
# vxedit -g diskgroup set user=sybase group=dba mode=0600 volume |
Verify that the changes are effective.
# ls -lL /dev/vx/rdsk/diskgroup/volume |
Reregister the device group with the cluster to keep the VxVM namespace consistent throughout the cluster.
# cldevicegroup create -t VxVM diskgroup |
Go to How to Create the Sybase ASE Database Environment.
The Sybase ASE database environment consists of the following servers:
Data server
Backup server
Monitor server
Text server
XP server
Creating the Sybase ASE database environment involves configuring these servers.
Ensure that you have completed the following tasks.
Establish a highly available IP address and name, that is, a network resource that operates at installation time.
Locate device paths for all of the Sybase ASE devices—including the master device and system devices—in the highly available local file system or cluster file system. Configure device paths as one of the following file types.
Regular files
Raw devices
Files that the Solaris Volume Manager software or the VxVM software manages
Locate the Sybase ASE server logs in either the cluster file system or the local file system.
Ensure that the password for the Sybase ASE system administrator account is correctly specified.
Sun Cluster HA for Sybase ASE must be able to start and monitor the monitor server. To meet this requirement, ensure that the password for the Sybase ASE system administrator account (sa) is specified in the file RUN_monitor-server, where monitor-server is the name of the Sybase ASE monitor server. This name is defined during the Sybase ASE installation. For more information, see your Sybase ASE documentation.
If you do not set the required password in the RUN_monitor-server file, the Sun Cluster HA for Sybase ASE data service cannot start the monitor service. If no password is set for the sa account, you do not need to modify the RUN_monitor-server file.
Create an interfaces file for the cluster.
The entire cluster must contain only one copy of the interfaces file. The $SYBASE directory contains the interfaces file. If you plan to maintain per-node file copies, ensure the file contents are identical.
All of the clients that connect to Sybase ASE servers connect with Sybase OpenClient libraries and utilities. When you configure the Sybase ASE software, in the interfaces file, enter information about the network resource and various ports. All of the clients use this connection information to connect to the Sybase ASE servers.
Run the GUI-based utility srvbuild to create the Sybase ASE database.
This utility is contained in the $SYBASE/ASE_major-version/bin directory, where major-version is the major version of Sybase ASE that you are using. For example, if you are using Sybase ASE version 12.5.1, major-version is 12-5.
For information about the srvbuildutility, see the Sybase ASE document Installing Sybase Adaptive Server Enterprise on Sun Solaris 2.x (SPARC).
To verify successful database installation, ensure that all of the servers start correctly.
Run the ps(1) command to verify the operation of all of the servers. Sybase ASE server logs indicate any errors that have occurred.
Set the password for the Sybase ASE system administrator account.
For details about changing the sa login password, see Sybase Adaptive Server Enterprise System Administration Guide.
Create a new Sybase ASE account for fault monitoring.
This account enables the fault monitor to perform the following tasks.
Supporting queries to system tables
Creating and updating user tables
Do not use the sa account for these purposes.
The following example shows how to create a new Sybase ASE account for fault monitoring.
# isql -Usa -Psybase -Sasedb 1> use master 2> go 1> create database sc3xdb 2>go 1> sp_addlogin dbmon, dbmonp, sc3xdb 2> go 1> use sc3xdb 2> go 1> sp_changedbowner dbmon 2> go 1> sp_modifylogin dbmon, defdb, sc3xdb 2> go 1> exit |
For more information, see Tuning the Sun Cluster HA for Sybase ASE Fault Monitor.
Update the stop file with the sa password.
Because the stop file contains the sa password, protect the file with the appropriate permissions, and place the file in a directory that the system administrator chooses. Enable only the sybase user to read, write, and execute the stop file.
For more information about the stop file, see Sun Cluster HA for Sybase ASE Security Issues.
After you create the Sybase ASE database environment, go to Installing the Sun Cluster HA for Sybase ASE Packages.
If you did not install the Sun Cluster HA for Sybase ASE packages during your initial Sun Cluster installation, perform this procedure to install the packages. To install the packages, use the Sun JavaTM Enterprise System Common Installer.
You need to install the Sun Cluster HA for Sybase ASE packages in the global cluster and not in the zone cluster.
Perform this procedure on each cluster node where you are installing the Sun Cluster HA for Sybase ASE packages.
You can run the Sun Java Enterprise System Common Installer with a command-line interface (CLI) or with a graphical user interface (GUI). The content and sequence of instructions in the CLI and the GUI are similar.
Even if you plan to configure this data service to run in non-global zones, install the packages for this data service in the global zone. The packages are propagated to any existing non-global zones and to any non-global zones that are created after you install the packages.
Ensure that you have the Sun Java Availability Suite DVD-ROM.
If you intend to run the Sun Java Enterprise System Common Installer with a GUI, ensure that your DISPLAY environment variable is set.
On the cluster node where you are installing the data service packages, become superuser.
Load the Sun Java Availability Suite DVD-ROM into the DVD-ROM drive.
If the Volume Management daemon vold(1M) is running and configured to manage DVD-ROM devices, the daemon automatically mounts the DVD-ROM on the /cdrom directory.
Change to the Sun Java Enterprise System Common Installer directory of the DVD-ROM.
Start the Sun Java Enterprise System Common Installer.
# ./installer |
When you are prompted, accept the license agreement.
If any Sun Java Enterprise System components are installed, you are prompted to select whether to upgrade the components or install new software.
From the list of Sun Cluster agents under Availability Services, select the data service for Sybase ASE.
If you require support for languages other than English, select the option to install multilingual packages.
English language support is always installed.
When prompted whether to configure the data service now or later, choose Configure Later.
Choose Configure Later to perform the configuration after the installation.
Follow the instructions on the screen to install the data service packages on the node.
The Sun Java Enterprise System Common Installer displays the status of the installation. When the installation is complete, the wizard displays an installation summary and the installation logs.
(GUI only) If you do not want to register the product and receive product updates, deselect the Product Registration option.
The Product Registration option is not available with the CLI. If you are running the Sun Java Enterprise System Common Installer with the CLI, omit this step.
Exit the Sun Java Enterprise System Common Installer.
Unload the Sun Java Availability Suite DVD-ROM from the DVD-ROM drive.
See Registering and Configuring Sun Cluster HA for Sybase ASE to register Sun Cluster HA for Sybase ASE and configure the cluster for the data service.
Register and configure Sun Cluster HA for Sybase ASE as a failover data service.
The section that follows contains instructions for registering and configuring resources. These instructions explain how to set only extension properties that Sun Cluster HA for Sybase ASE requires you to set. For information about all Sun Cluster HA for Sybase ASE extension properties, see Sun Cluster HA for Sybase ASE Extension Properties. You can update some extension properties dynamically. You can update other properties, however, only when you create or disable a resource. The Tunable entry indicates when you can update a property.
To set an extension property of a resource, include the following option in the clresource(1CL) command that creates or modifies the resource:
-p property=value |
Identifies the extension property that you are setting
Specifies the value to which you are setting the extension property
You can also use the procedures in Chapter 2, Administering Data Service Resources, in Sun Cluster Data Services Planning and Administration Guide for Solaris OS to configure resources after the resources are created.
This procedure describes how to use the Sun Cluster maintenance commands to register and configure Sun Cluster HA for Sybase ASE.
This procedure includes creating the SUNW.HAStoragePlus resource type. This resource type synchronizes actions between HAStorage and Sun Cluster HA for Sybase ASE and enables you to use a highly available local file system. Sun Cluster HA for Sybase ASE is disk intensive, and therefore you should configure the SUNW.HAStoragePlus resource type.
For more information about the SUNW.HAStoragePlus resource type, see the following documentation:
SUNW.HAStoragePlus(5) man page
Other options also enable you to register and configure the data service. For details about these options, see Tools for Data Service Resource Administration in Sun Cluster Data Services Planning and Administration Guide for Solaris OS.
To perform this procedure, you must have the following information.
The names of the cluster nodes or zones that master the data service.
The network resource that clients use to access the data service. You typically configure the IP address when you install the cluster. For information about planning the Sun Cluster environment and the installation of the Solaris software, see Chapter 1, Planning the Sun Cluster Configuration, in Sun Cluster Software Installation Guide for Solaris OS.
The path to the Sybase ASE application installation.
Perform the following steps on one cluster node or zone.
On a cluster node or zone, become superuser or assume a role that provides solaris.cluster.modify and solaris.cluster.admin RBAC authorizations.
Run the clresourcetype command to register resource types for Sun Cluster HA for Sybase ASE.
# clresourcetype register SUNW.sybase |
Register the SUNW.HAStoragePlus resource type with the cluster.
# clresourcetype register SUNW.HAStoragePlus |
Create the resource sybase-hastp-rs of type SUNW.HAStoragePlus.
# clresource create -g sybase-rg -t SUNW.HAStoragePlus \ -p GlobalDevicePaths=sybase-device-group1,/dev/global/dsk/dl \ -p FilesystemMountPoints=/global/sybase-inst \ -p AffinityOn=TRUE sybase-hastp-rs |
The resource is created in the enabled state.
AffinityOn must be set to TRUE
and
the local file system must reside on global disk groups to be failover.
Run the clresourcegroup command to complete the following tasks and bring the resource group sybase-rg online on a cluster node or zone.
Moving the resource group into a managed state
Bringing the resource group online
This node becomes the primary for device group sybase-set1 and raw device /dev/global/dsk/d1. Device groups that are associated with file systems such as /global/sybase-inst are also made primaries on this node.
# clresourcegroup online -M sybase-rg |
Create Sybase ASE application resources in the failover resource group.
# clresource create -g resource-group \ -t SUNW.sybase \ -p Environment_File=environment-file-path \ -p Adaptive_Server_Name=adaptive-server-name \ -p Backup_Server_Name=backup-server-name \ -p Text_Server_Name=text-server-name \ -p Monitor_Server_Name=monitor-server-name \ -p Adaptive_Server_Log_File=log-file-path \ -p Stop_File=stop-file-path \ -p Connect_string=user/passwd \ -p resource_dependencies=storageplus-resource \ -p Wait_for_Online=TRUE \ -p DB_Wait_List=db1, db2, ... \ -p Restart_type=RESOURCE_RESTART|RESOURCE_GROUP_RESTART \ -p Custom_action_file=filepath resource |
Specifies the resource group name into which the RGM places the resources.
Specifies the resource type to add.
Sets the name of the environment file.
Sets the name of the adaptive server.
Sets the name of the backup server.
Sets the name of the text server.
Sets the name of the monitor server.
Sets the path to the log file for the adaptive server.
Sets the path to the stop file.
Specifies the user name and password that the fault monitor uses to connect to the database.
Specifies whether the START method has to wait for the database to be brought online before exiting.
Specifies the list of databases that need to be online before the resource can be brought online. The valid values are either an empty list (“ ”), ALL, or a list of databases.
Defines the restart behavior of the resource. If the Restart_type extension property is set to RESOURCE_RESTART, the server fault monitor restarts the database server resource. If the Restart_type extension property is set to RESOURCE_GROUP_RESTART, the server fault monitor restarts the database server resource group. This property was introduced in SUNW.sybase resource type version 5. Prior to and including SUNW.sybase resource type version 5, the server fault monitor restarted the database server resource group.
Sets the path to the custom action file that contains the custom fault monitor actions.
Specifies the resource name to add.
The resource is created in the enabled state.
You do not have to specify extension properties that have default values. For more information, see Setting Sun Cluster HA for Sybase ASE Extension Properties.
After you register and configure Sun Cluster HA for Sybase ASE, go to Verifying the Sun Cluster HA for Sybase ASE Installation and Configuration.
These checks ensure that all of the nodes that run Sun Cluster HA for Sybase ASE can start the Sybase ASE data server. These checks also ensure that other nodes in the configuration can access the Sybase ASE data server. Perform these checks to isolate any problems with starting the Sybase ASE software from Sun Cluster HA for Sybase ASE.
Log in to the node that masters the Sybase ASE resource group.
Set the Sybase ASE environment variables.
The environment variables are the variables that you specify with the Environment_file extension property. For information about setting these environment variables, see Sun Cluster HA for Sybase ASE Extension Properties.
Verify that the Sun Cluster HA for Sybase ASE resource is online.
# clresource status |
Inspect the Sybase ASE logs to determine the cause of any errors that have occurred.
Confirm that you can connect to the data server and execute the following test command.
# isql -S adaptive-server -U sa -P password isql> sp_help isql> go isql> quit |
Kill the process for the Sybase ASE data server.
The Sun Cluster software restarts the process.
Switch the resource group that contains the Sybase ASE resource to another cluster node or zone.
# clresourcegroup switch -n node[:zone] resource-group |
Log in to the node that now contains the resource group.
Sybase ASE client connections cannot survive a Sun Cluster HA for Sybase ASE switchover. If a switchover occurs, the existing client connections to Sybase ASE terminate, and clients must reestablish their connections. After a switchover, the time that is required to replay the Sybase ASE transaction log determines Sun Cluster HA for Sybase ASE recovery time.
Each instance of the Sun Cluster HA for Sybase ASE data service maintains log files in the /opt/SUNWscsyb/log directory.
These files contain information about actions that the Sun Cluster HA for Sybase ASE data service performs. Refer to these files to obtain diagnostic information for troubleshooting your configuration or to monitor the behavior of the Sun Cluster HA for Sybase ASE data service.
See also Sun Cluster HA for Sybase ASE Logging Issues.
The following sections contain information about Sun Cluster HA for Sybase ASE logging and security issues.
Sun Cluster HA for Sybase ASE logs messages to the file message_log in the /opt/SUNWscsyb/log directory. Although this file cannot exceed 512 Kbytes, Sun Cluster HA for Sybase ASE does not delete old log files. The number of log files, therefore, can grow to a large number.
Sun Cluster HA for Sybase ASE writes all of the error messages in the syslog file. Sun Cluster HA for Sybase ASE also logs fault monitor history to the file restart_history in the log directory. These files can also grow to a large number.
As part of your regular file maintenance, check the following log files and remove files that you no longer need.
syslog
message_log
restart_history
Sun Cluster HA for Sybase ASE requires that you embed the system administrator's password in a stop file. The /opt/SUNWscsyb/bin directory contains the template for the stop file, sybase_stop_servers. Sun Cluster HA for Sybase ASE uses this file to log in to the Sybase ASE environment and to stop the Sybase ASE servers. Enable the sybase user to execute the stop file, but protect the file from general access. Give read, write, and execute privileges to only the following users.
sybase user
sybase group
The Sun Cluster HA for Sybase ASE fault monitor queries the Sybase ASE server to determine server health.
The Sun Cluster HA for Sybase ASE fault monitor monitors only the Adaptive server. The fault monitor does not monitor auxiliary servers.
The Sun Cluster HA for Sybase ASE fault monitor is contained in the resource that represents Sybase ASE. You create this resource when you register and configure Sun Cluster HA for Sybase ASE. For more information, see Registering and Configuring Sun Cluster HA for Sybase ASE.
System properties and extension properties of this resource control the behavior of the fault monitor. The default values of these properties determine the preset behavior of the fault monitor. The preset behavior should be suitable for most Sun Cluster installations. Therefore, you should tune the Sun Cluster HA for Sybase ASE fault monitor only if you need to modify this preset behavior.
Tuning the Sun Cluster HA for Sybase ASE fault monitor involves the following tasks:
Setting the interval between fault monitor probes
Setting the timeout for fault monitor probes
Defining the criteria for persistent faults
Specifying the failover behavior of a resource
Perform these tasks when you register and configure Sun Cluster HA for Sybase ASE. For more information, see the following sections:
The Sun Cluster HA for Sybase ASE fault monitor consists of the following processes.
Main fault-monitor process
Database-client fault probe
The fault monitor process diagnoses errors and checks statistics. The monitor labels an operation successful if the following conditions occur.
The database is online.
The activity check returns no errors.
The test transaction returns no errors.
If an operation fails, the main process checks the action table for an action to perform and then performs the predetermined action. If an operation fails, the main process can perform the following actions.
Restarting the resource on the current node
Restarting the resource group on the current node
Failing over the resource group to the next node on the resource group's node list
These actions execute external programs as separate processes in the background.
The server fault monitor also scans the Adaptive_Server_Log file and corrects any errors that the scan identifies.
The database-client fault probe performs activity checks and test transactions. The extension property Connect_string specifies an account that performs all of the database operations. The extension property Probe_timeout sets the time-out value that the probe uses to determine the time that has elapsed in a successful database probe.
To facilitate troubleshooting of unexplained DBMS timeouts, you can enable the fault monitor to create a core file when a probe timeout occurs. The contents of the core file relate to the fault monitor process. The fault monitor creates the core file in the / directory. To enable the fault monitor to create a core file, use the coreadm command to enable set-id core dumps. For more information, see the coreadm(1M) man page.
Customizing the Sun Cluster HA for Sybase ASE fault monitor enables you to modify the behavior of the server fault monitor as follows:
Overriding the preset action for an error
Specifying an action for an error for which no action is preset
Before you customize the Sun Cluster HA for Sybase ASE fault monitor, consider the effects of your customizations, especially if you change an action from restart or switch over to ignore or stop monitoring. If errors remain uncorrected for long periods, the errors might cause problems with the database. If you encounter problems with the database after customizing the Sun Cluster HA for Sybase ASE fault monitor, revert to using the preset actions. Reverting to the preset actions enables you to determine if the problem is caused by your customizations.
Customizing the Sun Cluster HA for Sybase ASE fault monitor involves the following activities:
Defining custom behavior for errors
Propagating a custom action file to all nodes or zones in a cluster
Specifying the custom action file that a server fault monitor should use
The Sun Cluster HA for Sybase ASE fault monitor detects the following types of errors:
DBMS errors that occur during a probe of the database by the server fault monitor
Alerts that Sybase ASE logs in the Sybase ASE log file
Timeouts that result from a failure to receive a response within the time that is set by the Probe_timeout extension property
To define custom behavior for these types of errors, create a custom action file.
A custom action file is a plain text file. The file contains one or more entries that define the custom behavior of the Sun Cluster HA for Sybase ASE fault monitor. Each entry defines the custom behavior for a single DBMS error, a single timeout error, or several logged alerts. A maximum of 1024 entries is allowed in a custom action file.
Each entry in a custom action file overrides the preset action for an error, or specifies an action for an error for which no action is preset. Create entries in a custom action file only for the preset actions that you are overriding or for errors for which no action is preset. Do not create entries for actions that you are not changing.
An entry in a custom action file consists of a sequence of keyword-value pairs that are separated by semicolons. Each entry is enclosed in braces.
The format of an entry in a custom action file is as follows:
{ [ERROR_TYPE=DBMS_ERROR|SCAN_LOG|TIMEOUT_ERROR;] ERROR=error-spec; [ACTION=SWITCH|RESTART|STOP|NONE;] [CONNECTION_STATE=co|di|on|*;] [NEW_STATE=co|di|on|*;] [MESSAGE="message-string"] }
White space might be used between separated keyword-value pairs and between entries to format the file.
The meaning and permitted values of the keywords in a custom action file are as follows:
Indicates the type of the error that the server fault monitor has detected. The following values are permitted for this keyword:
Specifies that the error is a DBMS error.
Specifies that the error is an alert that is logged in the alert log file.
Specifies that the error is a timeout.
The ERROR_TYPE keyword is optional. If you omit this keyword, the error is assumed to be a DBMS error.
Identifies the error. The data type and the meaning of error-spec are determined by the value of the ERROR_TYPE keyword as shown in the following table.
Error_Type Keyword |
Data Type |
Meaning |
---|---|---|
DBMS_ERROR |
Integer |
The error number of a DBMS error that is generated by Sybase ASE |
SCAN_LOG |
Quoted regular expression |
A string in an error message that Sybase ASE has logged to the Sybase ASE log file |
TIMEOUT_ERROR |
Integer |
The number of consecutive timed-out probes since the server fault monitor was last started or restarted |
You must specify the ERROR keyword. If you omit this keyword, the entry in the custom action file is ignored.
Specifies the action that the server fault monitor is to perform in response to the error. The following values are permitted for this keyword:
Specifies that the server fault monitor ignores the error.
Specifies that the server fault monitor is stopped.
Specifies that the server fault monitor stops and restarts the entity that is specified by the value of the Restart_type extension property of the SUNW.sybase resource.
Specifies that the server fault monitor switches over the database server resource group to another node or zone.
The ACTION keyword is optional. If you omit this keyword, the server fault monitor ignores the error.
Specifies the required state of the connection between the database and the server fault monitor when the error is detected. The entry applies only if the connection is in the required state when the error is detected. The following values are permitted for this keyword:
Specifies that the entry always applies, regardless of the state of the connection.
Specifies that the entry applies only if the server fault monitor is attempting to connect to the database.
Specifies that the entry applies only if the server fault monitor is online. The server fault monitor is online if it is connected to the database.
Specifies that the entry applies only if the server fault monitor is disconnecting from the database.
The CONNECTION_STATE keyword is optional. If you omit this keyword, the entry always applies, regardless of the state of the connection.
Specifies the state of the connection between the database and the server fault monitor that the server fault monitor must attain after the error is detected. The following values are permitted for this keyword:
Specifies that the state of the connection must remain unchanged.
Specifies that the server fault monitor must disconnect from the database and reconnect immediately to the database.
Specifies that the server fault monitor must disconnect from the database. The server fault monitor reconnects when it next probes the database.
The NEW_STATE keyword is optional. If you omit this keyword, the state of the database connection remains unchanged after the error is detected.
Specifies an additional message that is printed to the resource's log file when this error is detected. The message must be enclosed in double quotes. This message is additional to the standard message that is defined for the error.
The MESSAGE keyword is optional. If you omit this keyword, no additional message is printed to the resource's log file when this error is detected.
The action that the server fault monitor performs in response to each DBMS error is preset as listed in Table 1. To determine whether you need to change the response to a DBMS error, consider the effect of DBMS errors on your database to determine if the preset actions are appropriate. For examples, see the subsections that follow.
To change the response to a DBMS error, create an entry in a custom action file in which the keywords are set as follows:
ERROR_TYPE is set to DBMS_ERROR.
ERROR is set to the error number of the DBMS error.
ACTION is set to the action that you require.
If an error that the server fault monitor ignores affects more than one session, action by the server fault monitor might be required to prevent a loss of service.
For example, see the following error message:
Illegal attempt to change contents of buffer: %S_BUF. |
No action is preset for Sybase error 835, Illegal attempt to change contents of buffer: %S_BUF. However, this Sybase error indicates that the when a client process completes, Adaptive Server performs some cleanup tasks such as closing the buffers and releasing the resources taken up by the buffers. If the client process terminates abnormally, however (for example if the process is killed during execution), Adaptive Server might be unable to carry out the appropriate cleanup, buffers are left open, and Error 835 is raised. If this error affects only a single session, ignoring the error might be appropriate. However, if this error affects more than one session, consider specifying that the server fault monitor restart the database.
The following example shows an entry in a custom action file for changing the response to a DBMS error to restart.
{ ERROR_TYPE=DBMS_ERROR; ERROR=835; ACTION=restart; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Illegal attempt to change contents of buffer: %S_BUF."; }
This example shows an entry in a custom action file that overrides the preset action for DBMS error 835. This entry specifies the following behavior:
In response to DBMS error 835, the server fault monitor performs a restart.
This entry applies regardless of the state of the connection between the database and the server fault monitor when the error is detected.
The state of the connection between the database and the server fault monitor must remain unchanged after the error is detected.
The following message is printed to the resource's log file when this error is detected:
"Illegal attempt to change contents of buffer: %S_BUF." |
If the effects of an error to which the server fault monitor responds are minor, ignoring the error might be less disruptive than responding to the error.
For example, see the following error message:
Unable to find buffer 0x%lx holding logical page %ld in sdes 0x%lx kept buffer pool for object '%.*s'. |
The preset action for Sybase ASE error 804, Unable to find buffer 0x%lx holding logical page %ld in sdes 0x%lx kept buffer pool for object '%.*s'. is restart. This error occurs when Adaptive Server cannot find the pointer to a buffer header in a session descriptor. This error can be transient. In this situation, consider specifying that the server fault monitor ignore the error.
The following example shows an entry in a custom action file for ignoring a DBMS error.
{ ERROR_TYPE=DBMS_ERROR; ERROR=804; ACTION=none; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Unable to find buffer 0x%lx holding logical page %ld in sdes 0x%lx kept buffer pool for object '%.*s'."; }
This example shows an entry in a custom action file that overrides the preset action for DBMS error 804. This entry specifies the following behavior:
The server fault monitor ignores DBMS error 804.
This entry applies regardless of the state of the connection between the database and the server fault monitor when the error is detected.
The state of the connection between the database and the server fault monitor must remain unchanged after the error is detected.
No additional message is printed to the resource's log file when this error is detected.
The Sybase ASE software logs alerts in a file that is identified by the Adaptive_Server_Log_ File extension property. The server fault monitor scans this file and performs actions in response to alerts for which an action is defined.
Logged alerts for which an action is preset are listed in Table 2. Change the response to logged alerts to change the preset action, or to define new alerts to which the server fault monitor responds.
To change the response to logged alerts, create an entry in a custom action file in which the keywords are set as follows:
ERROR_TYPE is set to SCAN_LOG.
ERROR is set to a quoted regular expression that identifies a string in an error message that Sybase ASE has logged to the Sybase ASE log file.
ACTION is set to the action that you require.
The server fault monitor processes the entries in a custom action file in the order in which the entries occur. Only the first entry that matches a logged alert is processed. Later entries that match are ignored. If you are using regular expressions to specify actions for several logged alerts, ensure that more specific entries occur before more general entries. Specific entries that occur after general entries might be ignored.
For example, a custom action file might define different actions for errors that are identified by the regular expressions Attempt to dirty non-log and Attempt to unhash buffer. To ensure that the entry that contains the regular expression Attempt to unhash buffer is not ignored, ensure that this entry occurs before the entry that contains the regular expression Attempt to.
The following example shows an entry in a custom action file for changing the response to a logged alert.
{ ERROR_TYPE=SCAN_LOG; ERROR="Attempt to"; ACTION=RESTART; }
This example shows an entry in a custom action file that overrides the preset action for logged alerts about internal errors. This entry specifies the following behavior:
In response to logged alerts that contain the text Attempt to, the server fault monitor performs a restart.
This entry applies regardless of the state of the connection between the database and the server fault monitor when the error is detected.
The state of the connection between the database and the server fault monitor must remain unchanged after the error is detected.
No additional message is printed to the resource's log file when this error is detected.
By default, the server fault monitor restarts the database after the second consecutive timed-out probe. If the database is lightly loaded, two consecutive timed-out probes should be sufficient to indicate that the database is hanging. However, during periods of heavy load, a server fault monitor probe might time out even if the database is functioning correctly. To prevent the server fault monitor from restarting the database unnecessarily, increase the maximum number of consecutive timed-out probes.
Increasing the maximum number of consecutive timed-out probes increases the time that is required to detect that the database is hanging.
To change the maximum number of consecutive timed-out probes allowed, create one entry in a custom action file for each consecutive timed-out probe that is allowed except the first timed-out probe.
You are not required to create an entry for the first timed-out probe. The action that the server fault monitor performs in response to the first timed-out probe is preset.
For the last allowed timed-out probe, create an entry in which the keywords are set as follows:
ERROR_TYPE is set to TIMEOUT_ERROR.
ERROR is set to the maximum number of consecutive timed-out probes that are allowed.
ACTION is set to RESTART.
For each remaining consecutive timed-out probe except the first timed-out probe, create an entry in which the keywords are set as follows:
ERROR_TYPE is set to TIMEOUT_ERROR.
ERROR is set to the sequence number of the timed-out probe. For example, for the second consecutive timed-out probe, set this keyword to 2. For the third consecutive timed-out probe, set this keyword to 3.
ACTION is set to NONE.
To facilitate debugging, specify a message that indicates the sequence number of the timed-out probe.
The following example shows the entries in a custom action file for increasing the maximum number of consecutive timed-out probes to five.
{ ERROR_TYPE=TIMEOUT; ERROR=2; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #2 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=3; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #3 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=4; ACTION=NONE; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #4 has occurred."; } { ERROR_TYPE=TIMEOUT; ERROR=5; ACTION=RESTART; CONNECTION_STATE=*; NEW_STATE=*; MESSAGE="Timeout #5 has occurred. Restarting."; }
This example shows the entries in a custom action file for increasing the maximum number of consecutive timed-out probes to five. These entries specify the following behavior:
The server fault monitor ignores the second consecutive timed-out probe through the fourth consecutive timed-out probe.
In response to the fifth consecutive timed-out probe, the server fault monitor performs a restart.
The entries apply regardless of the state of the connection between the database and the server fault monitor when the timeout occurs.
The state of the connection between the database and the server fault monitor must remain unchanged after the timeout occurs.
When the second consecutive timed-out probe through the fourth consecutive timed-out probe occurs, a message of the following form is printed to the resource's log file:
Timeout #number has occurred. |
When the fifth consecutive timed-out probe occurs, the following message is printed to the resource's log file:
Timeout #5 has occurred. Restarting. |
A server fault monitor must behave consistently on all cluster nodes or zones. Therefore, the custom action file that the server fault monitor uses must be identical on all cluster nodes or zones. After creating or modifying a custom action file, ensure that this file is identical on all cluster nodes or zones by propagating the file to all cluster nodes or zones. To propagate the file to all cluster nodes or zones, use the method that is most appropriate for your cluster configuration:
Locating the file on a file system that all nodes or zones share
Locating the file on a highly available local file system
Copying the file to the local file system of each cluster node or zone by using operating system commands such as the rcp(1) command or the rdist(1) command
To apply customized actions to a server fault monitor, you must specify the custom action file that the fault monitor should use. Customized actions are applied to a server fault monitor when the server fault monitor reads a custom action file. A server fault monitor reads a custom action file when the you specify the file.
Specifying a custom action file also validates the file. If the file contains syntax errors, an error message is displayed. Therefore, after modifying a custom action file, specify the file again to validate the file.
If syntax errors in a modified custom action file are detected, correct the errors before the fault monitor is restarted. If the syntax errors remain uncorrected when the fault monitor is restarted, the fault monitor reads the erroneous file, ignoring entries that occur after the first syntax error.
On a cluster node or zone, become superuser or assume a role that provides solaris.cluster.modify RBAC authorization.
Set the Custom_action_file extension property of the SUNW.sybase resource.
Set this property to the absolute path of the custom action file.
# clresource set -p custom_action_file=filepath server-resource |
Specifies the absolute path of the custom action file.
Specifies the SUNW.sybase resource.