Advantage Ingres Enterprise Relational Database Version 2.65
Ingres DBMS High Availability Server for Windows Clustering (Windows 2000 Advanced Server) Notes:
• Ingres starts as a service in Windows 2000, and can be managed as a service by Windows cluster service.
• Monitoring Ingres servers (DBMS, Name, Recovery, etc.) for cluster failover • Licensing issues for installing Ingres on multiple machines of the same cluster • Installation issues:
1. The InstallShield Wizard should be changed to add an “Ingres High Availability Server” feature”, under “Ingres DBMS”, with a Feature Description like “Installs Ingres High Availability Server, which provides the Ingres DBMS high availability server with failover support for the Microsoft Windows cluster service.
- or -
Add a checkbox for the HAS for Windows Cluster service. - or -
Add a Windows Cluster setup wizard as a standalone (wincluster.exe). 2. Check the feature/option list to make sure everything is compatible with HAS
clustering, otherwise disable the feature or option.
3. Should not install shortcut for Ingres Visual Manager ("P:\Advantage
Ingres\ingres\bin\ingwrap.exe" "P:\Advantage Ingres\ingres\vdba\ivm.exe") into the Start->Programs->Startup group for HAS, because the shortcut will be valid only on the currently active node.
4. If Ingres Visual Manager (perhaps other utilities, too) is running on a cluster node and the Ingres resource group is moved to another node, IVM will report an error. • Found a shortcoming of the cluster setup method, i.e., the program shortcuts are not built on any node except the node Ingres was first installed on; a separate MSI install might be
the better method of doing the cluster setup: it would include: 1. Install Ingres service on the node
2. Change User ID and password for the Ingres service
3. Add Ingres directories to the Path in System Environment Variables 4. Add II_SYSTEM to System Environment Variables
5. Set “ING” variables to the virtual cluster name instead of machine name: II_NETBIOS_NODE=WONST02CLUSTER
II_GCNPP_LCL_VNODE=WONST02CLUSTER II_HOSTNAME=WONST02CLUSTER
6. Set values in config.dat to the virtual cluster name instead of machine name: ii.*.config.server_host: WONST02CLUSTER ii.wonst02cluster.gcn.local_vnode: WONST02CLUSTER ii.wonst02cluster.icesvr.*.dictionary_node: WONST02CLUSTER 7. Use cluster facilities to define Ingres resource to a cluster group.
Three values are added as registry checkpoints to the “Ingres service” cluster resource:
SOFTWARE\Classes\Ingres_Database_PP
SOFTWARE\Classes\Ingres_Database_PP\shell
"SOFTWARE\ComputerAssociates\Advantage Ingres\PP_Installation" 8. Add program shortcuts.
• Dialog pages 1. Main Page
a. Ingres Installation Code (default: “II”) [List of current Ingres installations] 2. Cluster Description
a. Cluster name (defaults to current node’s cluster) [Default from Windows API call] b. Cluster Group name (default: “Ingres Group”)
c. Ingres Service name (default: “Ingres Service”)
i. Virtual Cluster name [Hidden; from Windows API call] 3. Dependencies (Network IP Address, Network Name, Disk) 4. Final Page
• Install Ingres service: C:>opingsvc install
• Change user ID and password for the Ingres service
• Add Ingres directories to the Path in System Environment Variables: P:\Advantage Ingres [PP]\ingres\vdba;
P:\Advantage Ingres [PP]\ingres\bin; P:\Advantage Ingres [PP]\ingres\utility • Add II_SYSTEM to System Environment Variables: II_SYSTEM=P:\Advantage Ingres [PP]
• Environment, configuration, and registry entries: d:\ingmain>ingprenv
II_NETBIOS_NODE=WONST02CLUSTER II_GCNPP_LCL_VNODE=WONST02CLUSTER config.dat:
ii.*.config.server_host: WONST02CLUSTER ii.wonst02cluster.gcn.local_vnode: WONST02CLUSTER ii.wonst02cluster.icesvr.*.dictionary_node: WONST02CLUSTER registry: SOFTWARE\Classes\Ingres_Database_II SOFTWARE\Classes\Ingres_Database_II\shell "SOFTWARE\ComputerAssociates\Advantage Ingres\II_Installation" SYSTEM\CurrentControlSet\Services\Eventlog\Application\Ingres_Database_ II SYSTEM\CurrentControlSet\Services\Ingres_Database_II SYSTEM\CurrentControlSet\Services\Ingres_Database_II\Enum SYSTEM\CurrentControlSet\Services\Ingres_Database_II\Security SYSTEM\CurrentControlSet\Services\Eventlog\Application\Ingres_Database_ II SYSTEM\CurrentControlSet\Services\Ingres_Database_II Sample iisuhas.bat: REM @echo off
REM
REM Copyright (c) 2004 Computer Associates International, Inc. REM
REM Name: iisuhas -- setup script for Advantage Ingres High Availability Server
REM
REM Usage:
REM iisuhas "cluster group name" "dependency"... REM
REM Description:
REM This script should only be called by the Ingres installation REM utility. It sets up the Ingres High Availability Server (HAS) for
REM Windows cluster service. REM
REM Exit Status:
REM 0 setup procedure completed.
REM 1 setup procedure did not complete. REM
REM Note:
REM All lines beginning with uppercase REM will be stripped from REM the distributed version of this file.
REM
REM History:
REM 13-apr-2004 (wonst02) REM Created.
@REM REGISTERING THE INGRES HIGH AVAILABILITY SERVER
@REM These steps will need to be performed after the Ingres installation and HAS
@REM has been installed.
@REM Preparing to install the Ingres HAS if "%INSTALL_DEBUG%" == "DEBUG" echo on
set _CLUSTER_GROUP=%1 shift
echo.
echo WH Setting up the Ingres High Availability Server for Windows cluster service...
REM
REM Set the host name based on the COMPUTERNAME variable. REM
set CONFIG_HOST=%COMPUTERNAME% set HOSTNAME=%COMPUTERNAME% set ING_USER=INGRES
REM Set privileges and the local vnode name now that we have the hostname.
REM
iisetres ii.%CONFIG_HOST%.gcn.local_vnode %HOSTNAME%
@REM How to register and configure the Ingres HAS
@REM Note: For clarity, in the cluster commands that follow, the command is
@REM assumed to be issued on the node of the cluster that is to contain the
@REM Ingres Service. Otherwise, each cluster command can specify the cluster
@REM name to which it applies:
@REM cluster [[/cluster:]cluster name] remainder of cluster command @REM 1. Logon to Windows 2000 as an administrator and start a Command Prompt.
@REM 2. Use the cluster group command to create a failover resource group to
@REM hold the network and application resources. You can optionally select
@REM the set of nodes on which the data service can run with the /setowners
@REM option.
@REM cluster group group name /create /setowners:node name[,node name...]
@REM group name Specifies the name of the resource group. This name can be your choice but must be unique for resource groups with the cluster.
@REM /create Specifies that the group be created.
@REM /setowners: Specify a preferred owner node or set of owner nodes. @REM For example:
@REM C:\>cluster group "Ingres Group" /create @REM
@REM Creating resource group 'Ingres Group'... @REM
@REM Group Node Status @REM --- --- --- @REM Ingres Group NODEA2000 Offline
cluster group %_CLUSTER_GROUP% /create || pause
@REM 3. Create an Ingres Service resource in the group. @REM cluster resource resource name /create /group:group name /type:"Generic Service"
@REM resource name Specifies the name of the Ingres resource to be added.
@REM group name Specifies the name of the cluster group you created in Step 2.
@REM /type: Specify "Generic Service" for the Ingres HAS service. @REM For example:
@REM C:\>cluster resource "Ingres Service" /create /group:"Ingres Group" /Type:"Generic Service"
@REM
@REM Creating resource 'Ingres Service'... @REM
@REM Resource Group Node Status @REM --- --- --- --- @REM Ingres Service Ingres Group NODEA2000 Offline @REM
@REM Note: When a fault occurs in the Ingres service resource that causes a
@REM restart, the whole cluster group is restarted. Any other resources in
@REM the resource group are restarted, even if they did not have a fault.
@REM To prevent other resources from being started along with the Ingres
@REM service, put them in a separate resource group.
cluster resource "Ingres Service" /create /group:%_CLUSTER_GROUP% /Type:"Generic Service"
@REM 4. Add the dependencies for the Ingres Service. @REM cluster resource resource name /adddependency resource
@REM resource name Specifies the name of the Ingres resource to be added.
@REM /adddependency: Add a dependency for a resource. @REM resource The name of an existing resource. @REM For example:
@REM C:\>cluster resource "Ingres Service" /adddep:"Disk I" @REM
@REM Making resource 'Ingres Service' depend on resource 'Disk I'... :getDependencies
if .%1. == .. goto :endDependencies
cluster resource "Ingres Service" /adddep:%1 shift
goto getDependencies :endDependencies
@REM 5. Define the properties of the Ingres Service resource. @REM cluster resource resource name /properties name=value:format [name=value:format]
@REM resource name Specifies the name of the Ingres resource. @REM /properties: Set the resource properties.
@REM For example:
@REM C:\>cluster resource "Ingres Service" /properties PendingTimeout=300000:dword
cluster resource "Ingres Service" /properties PendingTimeout=300000:dword
@REM 6. Define the private properties of the Ingres Service resource.
@REM cluster resource resource name /privproperties name=value:format [name=value:format]
@REM resource name Specifies the name of the Ingres resource. @REM /privproperties: Set the resource private properties.
@REM For example:
@REM C:\>cluster resource "Ingres Service" /privproperties ServiceName="Ingres_Database_II":string
StartupParameters="HAScluster":string UseNetworkName=1:dword cluster resource "Ingres Service" /privproperties
ServiceName="Ingres_Database_PP":string
StartupParameters="HAScluster":string UseNetworkName=1:dword @REM 7. Add the registry checkpoints to the Ingres Service resource.
@REM cluster resource resource name
/addcheckpoints:key[\subkey...][,key[\subkey...]...]
@REM resource name Specifies the name of the Ingres resource to be added.
@REM /addcheckpoints: Add a registry checkpoint for a resource. @REM For example:
@REM C:\>cluster resource "Ingres service"
/addcheckpoints:SOFTWARE\Classes\.ii_imp,SOFTWARE\Classes\.vdbacfg,SOFT WARE\Classes\Ingres.IIA.PP,SOFTWARE\Classes\Ingres.IIA.PP\shell,SOFTWAR E\Classes\Ingres.IIA.PP\shell\open,SOFTWARE\Classes\Ingres.IIA.PP\shell \open\command,SOFTWARE\Classes\Ingres.VDBA.PP,SOFTWARE\Classes\Ingres.V DBA.PP\shell,SOFTWARE\Classes\Ingres.VDBA.PP\shell\open,SOFTWARE\Classe s\Ingres.VDBA.PP\shell\open\command,SOFTWARE\Classes\IngresImportExport ,SOFTWARE\Classes\IngresImportExport\CLSID,SOFTWARE\Classes\IngresImpor tExport\CurVer,SOFTWARE\Classes\IngresImportExport.1,SOFTWARE\Classes\I ngresImportExport.1\CLSID,SOFTWARE\Classes\Ingres_Database_PP,SOFTWARE\ Classes\Ingres_Database_PP\shell,"SOFTWARE\ComputerAssociates\Advantage Ingres","SOFTWARE\ComputerAssociates\Advantage Ingres\PP_Installation" @REM cluster resource "Ingres service"
/removecheckpoints:SOFTWARE\Classes\.ii_imp,SOFTWARE\Classes\.vdbacfg,S OFTWARE\Classes\Ingres.IIA.PP,SOFTWARE\Classes\Ingres.IIA.PP\shell,SOFT WARE\Classes\Ingres.IIA.PP\shell\open,SOFTWARE\Classes\Ingres.IIA.PP\sh ell\open\command,SOFTWARE\Classes\Ingres.VDBA.PP,SOFTWARE\Classes\Ingre s.VDBA.PP\shell,SOFTWARE\Classes\Ingres.VDBA.PP\shell\open,SOFTWARE\Cla sses\Ingres.VDBA.PP\shell\open\command,SOFTWARE\Classes\IngresImportExp ort,SOFTWARE\Classes\IngresImportExport\CLSID,SOFTWARE\Classes\IngresIm portExport\CurVer,SOFTWARE\Classes\IngresImportExport.1,SOFTWARE\Classe s\IngresImportExport.1\CLSID,SOFTWARE\Classes\Ingres_Database_PP,SOFTWA RE\Classes\Ingres_Database_PP\shell,"SOFTWARE\ComputerAssociates\Advant age Ingres","SOFTWARE\ComputerAssociates\Advantage Ingres\PP_Installation"
cluster resource "Ingres service" /addcheckpoints:SOFTWARE\Classes\.ii_imp,SOFTWARE\Classes\.vdbacfg,SOFT WARE\Classes\Ingres.IIA.PP,SOFTWARE\Classes\Ingres.IIA.PP\shell,SOFTWAR E\Classes\Ingres.IIA.PP\shell\open,SOFTWARE\Classes\Ingres.IIA.PP\shell \open\command,SOFTWARE\Classes\Ingres.VDBA.PP,SOFTWARE\Classes\Ingres.V DBA.PP\shell,SOFTWARE\Classes\Ingres.VDBA.PP\shell\open,SOFTWARE\Classe s\Ingres.VDBA.PP\shell\open\command,SOFTWARE\Classes\IngresImportExport ,SOFTWARE\Classes\IngresImportExport\CLSID,SOFTWARE\Classes\IngresImpor tExport\CurVer,SOFTWARE\Classes\IngresImportExport.1,SOFTWARE\Classes\I ngresImportExport.1\CLSID,SOFTWARE\Classes\Ingres_Database_PP,SOFTWARE\ Classes\Ingres_Database_PP\shell,"SOFTWARE\ComputerAssociates\Advantage Ingres","SOFTWARE\ComputerAssociates\Advantage Ingres\PP_Installation" @REM 8. Bring the resource online.
@REM cluster resource resource name /online [:node name] [/wait [:timeout in seconds]]
@REM node name Specifies the name of a node in the cluster.
@REM /wait: Specify the number of seconds to wait for the group to come online.
@REM For example:
@REM C:\>cluster resource "Ingres Service" /online /wait:30 @REM
@REM Bringing resource 'Ingres Service' online... @REM
@REM Resource Group Node Status @REM --- --- --- --- @REM Ingres Service Ingres Group NODEA2000 Online cluster resource "Ingres Service" /online /wait:300
@REM 9. Verify that the Ingres service resource has come online on one node of the cluster.
@REM cluster resource resource name [/status]
@REM resource name Specifies the name of the Ingres service resource you created in Step 3.
@REM For example:
@REM C:\>cluster resource "Ingres Service"
@REM Listing status for resource 'Ingres Service': @REM
@REM Resource Group Node Status @REM --- --- --- --- @REM Ingres Service Ingres Group NODEA2000 Online @REM Alternatively, you can display the status of all resources in the cluster:
@REM C:\>cluster resource
@REM Listing status for all available resources: @REM
@REM Resource Group Node Status @REM --- --- --- --- @REM Disk I Cluster Group NODEA2000 Online @REM Cluster IP Address Cluster Group NODEA2000 Online @REM Cluster Name Cluster Group NODEA2000 Online @REM Ingres Service Cluster Group NODEA2000 Online cluster resource "Ingres Service"