Multiple Oracle Instances (Single Listener) Configuration
The following example describes a typical VCS configuration to monitor two Oracle instances sharing a listener.
This configuration has a service group for each Oracle instance. The Listener too is configured in a separate service group.
Click the thumbnail above to view full-sized image.
The Oracle service groups are made dependent on the Listener service group using an Online Local Firm dependency.
In the Oracle service group, the shared disk groups and volumes in the cluster are configured as resources of type DiskGroup and Volume respectively. The volumes are mounted using the Mount agent.
Click the thumbnail above to view full-sized image.
In the Listener service group, the virtual IP address is configured using the IP and NIC resource types. The Listener can be started after the IP and NIC resources are brought online.
Click the thumbnail above to view full-sized image.
The Oracle server can be started after the Listener service group and the resources in the Oracle service group are brought online.
If your configuration does not use VERITAS Volume Manager, use the DiskReservation resource type to configure shared storage instead of the DiskGroup and Volume resource types.
Note
In this case, make sure you have modified all proper system files, such as /etc/system, /etc/passwd, /etc/group, and /etc/shadow to support multiple databases. Pay particular attention to system requirements like physical memory and shared memory segment availability. Also ensure a single system is capable of sustaining a multiple instance load in the event of a server failure and extended operation on the backup server.
Sample Configuration
include "types.cf"
include "OracleTypes.cf"
cluster vcs (
)
system vcshp1 (
)
system vcshp2 (
)
group ORA_MKTG_Group (
SystemList = { vcshp1 = 0, vcshp2 = 1 }
AutoStartList = { vcshp1 }
)
DiskGroup DG_oramktg (
DiskGroup = ora_mktg_dg
StartVolumes = 0
StopVolumes = 0
)
Mount Mount_oramktg_u01 (
MountPoint = "/mktg/u01"
BlockDevice = "/dev/vx/dsk/ora_mktg_dg/u01-vol"
FSType = vxfs
FsckOpt = "-n"
)
Mount Mount_oramktg_u02 (
MountPoint = "/mktg/u02"
BlockDevice = "/dev/vx/dsk/ora_mktg_dg/u02-vol"
FSType = vxfs
FsckOpt = "-n"
)
Oracle ORA_oramktg (
Sid = MKTG
Owner = oramktg
Home = "/orahome/u01/oracle/product/8.1.5"
Pfile = "/orahome/u01/oracle/admin/pfile/initMKTG.ora"
EnvFile = "/tmp/env.sh"
DetailMonitor = 1
MonScript = "./bin/Oracle/SqlTest.pl"
User = thor
Pword = hvlTptWvj
Table = thor
)
Volume Vol_oramktg_vol1 (
Volume = u01-vol
DiskGroup = ora_mktg_dg
)
Volume Vol_oramktg_vol2 (
Volume = u02-vol
DiskGroup = ora_mktg_dg
)
requires group Common_Service online firm
Mount_oramktg_u01 requires Vol_oramktg_vol1
Mount_oramktg_u02 requires Vol_oramktg_vol2
ORA_oramktg requires Mount_oramktg_u01
ORA_oramktg requires Mount_oramktg_u02
Vol_oramktg_vol1 requires DG_oramktg
Vol_oramktg_vol2 requires DG_oramktg
group ORA_PROD_Group (
SystemList = { vcshp1 = 0, vcshp2 = 1 }
AutoStartList = { vcshp1 }
)
DiskGroup DG_oraprod (
DiskGroup = ora_prod_dg
StartVolumes = 0
StopVolumes = 0
)
Mount Mount_oraprod_u01 (
MountPoint = "/prod/u01"
BlockDevice = "/dev/vx/dsk/ora_prod_dg/u01-vol"
FSType = vxfs
FsckOpt = "-n"
)
Mount Mount_oraprod_u02 (
MountPoint = "/prod/u02"
BlockDevice = "/dev/vx/dsk/ora_prod_dg/u02-vol"
FSType = vxfs
FsckOpt = "-n"
)
Oracle ORA_oraprod (
Sid = PROD
Owner = oraprod
Home = "/orahome/u01/oracle/product/8.1.5"
Pfile = "/orahome/u01/oracle/admin/pfile/initPROD.ora"
EnvFile = "/tmp/env.sh"
DetailMonitor = 1
MonScript = "./bin/Oracle/SqlTest.pl"
User = thor
Pword = hvlTptWvj
Table = thor
)
Volume Vol_oraprod_vol1 (
Volume = u01-vol
DiskGroup = ora_prod_dg
)
Volume Vol_oraprod_vol2 (
Volume = u02-vol
DiskGroup = ora_prod_dg
)
requires group Common_Service online firm
Mount_oraprod_u01 requires Vol_oraprod_vol1
Mount_oraprod_u02 requires Vol_oraprod_vol2
ORA_oraprod requires Mount_oraprod_u01
ORA_oraprod requires Mount_oraprod_u02
Vol_oraprod_vol1 requires DG_oraprod
Vol_oraprod_vol2 requires DG_oraprod
group Common_Service (
SystemList = { vcshp1 = 0, vcshp2 = 1 }
AutoStartList = { vcshp1 }
)
DiskGroup DG_orabin (
DiskGroup = ora_bin_dg
StartVolumes = 0
StopVolumes = 0
)
IP IP_oraprod (
Device = lan0
Address = "10.212.102.13"
)
Mount Mount_orabin (
MountPoint = "/orahome/u01"
BlockDevice = "/dev/vx/dsk/ora_bin_dg/u01-vol"
FSType = vxfs
FsckOpt = "-n"
)
NIC NIC_Public1 (
Device = lan0
)
Netlsnr LSNR_oracle (
Owner = oracle
Home = "/orahome/u01/oracle/product/8.1.5"
TnsAdmin = "/orahome/u01/oracle/network/admin"
Listener = LISTENER_ORACLE
MonScript = "./bin/Netlsnr/LsnrTest.pl"
)
Volume Vol_orabin (
Volume = u01-vol
DiskGroup = ora_bin_dg
)
IP_oraprod requires NIC_Public1
LSNR_oracle requires IP_oraprod
LSNR_oracle requires Mount_orabin
Mount_orabin requires Vol_orabin
Vol_orabin requires DG_orabin
|