Scott Marlowe smarlowe
Tue May 10 22:06:30 PDT 2005
I have a question about EXECUTE SCRIPT.  It seems to not be working for
me, and I?m not sure why.

Other than the slony processes, there?s no idle background process
hanging around, but when I run an update script it only hits the master
and not the slave database.

Here?s the slonik script:

#!/bin/bash
source ./envars
 
slonik <<_EOF_
cluster name = $CLUSTERNAME;
node 1 admin conninfo = 'dbname=$MASTERDBNAME host=$MASTERHOST
user=$REPLICATIONUSER';
node 2 admin conninfo = 'dbname=$SLAVEDBNAME host=$SLAVEHOST
user=$REPLICATIONUSER';
EXECUTE SCRIPT(
        SET ID=1,
       
FILENAME='/home/smarlowe/workspace/data-access/statistics/database/script/production-submitted-files/ST_050412_1_2.sql',
        EVENT NODE=1
);
_EOF_

Here?s envars:

#!/bin/bash
 
export CLUSTERNAME=statistic
export MASTERDBNAME=stat1
export SLAVEDBNAME=stat2
export MASTERHOST=state
export SLAVEHOST=state
export REPLICATIONUSER=postgres


Here?s the update script:

CREATE TABLE SCHEMAVERSION (VERSIONSTRING VARCHAR(15) NOT NULL,
APPLYTIME TIMESTAMP NOT NULL);
 INSERT INTO SCHEMAVERSION (VERSIONSTRING, APPLYTIME) VALUES ('v3.0.1',
current_timestamp);

 ALTER TABLE BUSINESSREQUESTSUMMARY ADD AVERAGERESPONSETIME_
NUMERIC(8,0);
 ALTER TABLE BUSINESSREQUESTSUMMARY ADD LOWESTRESPONSETIME_
NUMERIC(8,0);
 ALTER TABLE BUSINESSREQUESTSUMMARY ADD HIGHESTRESPONSETIME_
NUMERIC(8,0);
 UPDATE BUSINESSREQUESTSUMMARY SET
AVERAGERESPONSETIME_=AVERAGERESPONSETIME,
LOWESTRESPONSETIME_=LOWESTRESPONSETIME,
HIGHESTRESPONSETIME_=HIGHESTRESPONSETIME;
 ALTER TABLE BUSINESSREQUESTSUMMARY ALTER COLUMN AVERAGERESPONSETIME_
SET NOT NULL;
 ALTER TABLE BUSINESSREQUESTSUMMARY ALTER COLUMN LOWESTRESPONSETIME_ SET
NOT NULL;
 ALTER TABLE BUSINESSREQUESTSUMMARY ALTER COLUMN HIGHESTRESPONSETIME_
SET NOT NULL;
 ALTER TABLE BUSINESSREQUESTSUMMARY DROP AVERAGERESPONSETIME;
 ALTER TABLE BUSINESSREQUESTSUMMARY DROP LOWESTRESPONSETIME;
 ALTER TABLE BUSINESSREQUESTSUMMARY DROP HIGHESTRESPONSETIME;
 ALTER TABLE BUSINESSREQUESTSUMMARY RENAME AVERAGERESPONSETIME_ TO
AVERAGERESPONSETIME;
 ALTER TABLE BUSINESSREQUESTSUMMARY RENAME LOWESTRESPONSETIME_ TO
LOWESTRESPONSETIME;
 ALTER TABLE BUSINESSREQUESTSUMMARY RENAME HIGHESTRESPONSETIME_ TO
HIGHESTRESPONSETIME;
 INSERT INTO SCHEMAVERSION (VERSIONSTRING, APPLYTIME) VALUES ('v3.0.2',
current_timestamp);

None of it ever runs.  IS there some strange requirement for execute
script I?m missing?


More information about the Slony1-general mailing list