Re: Replication on INFORMIX ?
Posted in 1997
Topics: High Availability & Replication, Installation, Setup & Upgrades, Storage & Space Management, Connectivity: ESQL/C, 4GL & Embedded SQL, Server Administration, Networking & sqlhosts Configuration, Platform-Specific Issues
Hello,
The problem is that you are wanting to do Enterprise Replication, not HDR.
If your intention is to only replicate certain data sets from individual
tables, then you best bet is to change your mode of thinking to ER.
There are skimpy release notes on this, SNMPDOC_7.2 and EREPDOC_7.2 in your
$INFORMIXDIR/etc directory. But yes, you can replicate specific data from
tables based on where filters setup. The hardware medium (platform) can be
different and the disk layout and configuration of instance can be
independant on one another. You will need Replication Manager 7.22.TC1 that
runs on a NT 3.51 or greater Workstation in order to run replication
although there is also an API that comes with 7.22.UC1 ESQL/C or by default
with the 7.23.x engine and will be located in the $INFORMIXDIR/demo/esql
directory.
Following is info on starting the SNMP and sub-agent for SCO:
SNMP Information
There are the following files that are used for the master agent on SCO.
SCO is a PEER
based protocol and INFORMIX does not ship a master agent with our product
on this
platform. These files are located in the /etc directory:
Snmpd {executable that starts the master agent}
lrwxrwxrwx 1 root root 32 May 22 1996 snmpd ->
/opt/K/SCO/tcp/2.0.0Cl/etc/snmpd
snmpd.comm {needs the following entry}
hskgsk96 0.0.0.0 WRITE
snmpd.conf {needs the following entry}
descr=SCO TCP/IP Runtime Release 2.0.0
objid=SCO.1.2.0.0
contact= Doug Dailey {this is just what I used}
location= Lenexa {same thing}
smux_reserved=system
smux_reserved=snmp
smux_reserved=smux
snmpd.peers {needs the following entry}
"cdragt" 0.0 ""
snmpd.trap {not necessary, used for event trapping}
Notes on SCO and starting the agent:
It is not necessary to set SR_AGT_CONF_DIR if you are using the master
agent of the OS. This is
the basic rule for all platforms using SNMP master supplied by the OS vendor.
Start the master agent with the following syntax:
/etc/snmpd log_level 6 & {0-6, 6 being the most detail. Do a man on snmpd
on SCO to get
more detail}
The log file will be created in /usr/adm/snmpd.log.
Start the cdr sub-agent the same way you would on any other system:
$INFORMIXDIR/bin/cdragt -t 3 -f /tmp/cdr.out &
Here is also some info on a base test in getting this up and running:
Below are steps for setting up for replication on the UNIX side for the
SUN Solaris platform. You will have to substitue the portions regarding the
master and sub-agent with the above info regarding SCO:
I. Installation:
1. As root, tar xvf /dev/rst4 to a separate install directory (as root)
2. ./installonline as root with INFORMIXDIR and /usr/informix/bin in the path.
3. Initialized the instances with oninit -iy
II. Configuration:
env for test1
setenv INFORMIXDIR /testing/ddailey
setenv INFORMIXSERVER test1tcp
setenv PATH ${INFORMIXDIR}/bin:/tsgoldopt/bin:${PATH}
setenv ONCONFIG onconfig.test1
setenv LD_LIBRARY_PATH $INFORMIXDIR/lib:$INFORMIXDIR/lib/esqlsetenv SR_AGT_CONF_DIR $INFORMIXDIR/snmp/snmpr
env for test2
setenv INFORMIXDIR /testing/ddailey
setenv INFORMIXSERVER test2tcp
setenv PATH ${INFORMIXDIR}/bin:/tsgoldopt/bin:${PATH}
setenv ONCONFIG onconfig.test2
setenv LD_LIBRARY_PATH $INFORMIXDIR/lib:$INFORMIXDIR/lib/esqlsetenv SR_AGT_CONF_DIR $INFORMIXDIR/snmp/snmpr
sqlhosts
****************************************************************************
***
test1 group - - i=1
test1tcp ontlitcp sunset test1tcp g=test1
test2 group - - i=2
test2tcp ontlitcp sunset test2tcp g=test2
onconfig.test1
****************************************************************************
***
ROOTNAME rootdbs # Root dbspace nameROOTPATH /testing/ddailey/test1
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 20000 # Size of root dbspace (Kbytes)
SERVERNUM 60 # Unique id corresponding to a OnLine instance
DBSERVERNAME test1tcp # Name of default database server
DBSERVERALIASES # List of alternate dbservernames
NETTYPE # Configure poll thread(s) for nettype
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 0 # 0 for single-processor, 1 formulti-processor
NUMCPUVPS 1 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
onconfig.test2
****************************************************************************
***
ROOTNAME rootdbs # Root dbspace nameROOTPATH /testing/ddailey/test2
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 20000 # Size of root dbspace (Kbytes)
SERVERNUM 61 # Unique id corresponding to a OnLine instance
DBSERVERNAME test2tcp # Name of default database server
DBSERVERALIASES # List of alternate dbservernames
NETTYPE # Configure poll thread(s) for nettype
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 0 # 0 for single-processor, 1 formulti-processor
NUMCPUVPS 1 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one
IV. Starting the Agents:
1. As root, go to $INFORMIXDIR/bin (in ksh)
./snmpdm -apall >/tmp/snmp.out 2>&1 &
2. As informix, go to $INFORMIXDIR/bin (in ksh)
./cdragt -t 5 -f /tmp/cdr.out 2>&1 &
V. Installing Rep Manager
1. Installed as Administrator and used at least the NT 3.51 version
of 7.22.TC1 rep manager
2. REPHOSTS file:
test1 group - - i=1
test1tcp ontlitcp sunset test1tcp g=test1
test2 group - - i=2
test2tcp ontlitcp sunset test2tcp g=test2
VI. Test
1. create table on instance A : create table test (col1 char(1) primary key,
col2 char(5));
create table on instnace B : create table test (col1 char(1) primary key,
col2 char(5)); inserted 4 rows into table test on instance A prior to defining replicate
2. databases created in rootdbs with logging
3. synchronized the two servers through replication manager
4. defined a replicate with the following properties:
update anywhere
transaction scope
ris and ats spooling
select * from test where test = "cc"ignore conflict resolution
continuous replication
test1 and test2 instances
all participants defined the same? NO
5. update test set col2 = "cc"; {yes to all}
/*updates not converted to inserts on instance B.*/
/*subsequent updates only propagated on newly inserted rows*/
Hope this helps.
Doug Dailey
Lenexa Technical Support
At 12:38 PM 12/8/97 +0700, you wrote:
>Hi Guys,
>
>I