Dear friends,
I would really appreciate you help a lot!
I am trying to implement Failover transition (planned switch of a target and source) described here OpenEdge 11.7 Documentation and getting "Segmentation fault" on the step "Synchronization in process".
All the steps to be performed are here OpenEdge 11.7 Documentation
Environment is Linux SUSE 11SP4, also tried it on CENTOS 7 and Redhat 7.
Progress used 11.5.1, tried same thing with 11.7. Result is the same
Goal is to be able to failover from source to target and fail back without copying the full DB backup over the internet (we don't have wide pipe between PROD and DR sites) and without loosing the replication.
Exactly as they wrote: planned switch of a target and source.
So in DBNAME.repl.properties I used suggested databass-role=REVERSE
To easily reproduce this Error/Bug I used standard Progress scripts creating two copies of Sports database and establish replication between them on the same server.
Here are the files.
Working folder used here is /dbdata/progress/
addai.st
sp_t.st
sp_s.repl.properties
sp_t.repl.properties
create.sh - this script creates and starts everything. Any time you want to redo the test, just run create.sh again, it will first clean and drop everything except config files.
Now after you executed create.sh and everything is created, started and you see that replication is up and running,
please try to fail-over from sp_s (source) to sp_t (target) by command
dsrutil sp_s -C transition failover
Unfortunately regardless of Linux (Suse, CentOS or RedHat) and version of Progress (initially tried with 11.5.1, after that with 11.7) I receive the same output
Looking forward for your thoughts and input...
I would really appreciate you help a lot!
I am trying to implement Failover transition (planned switch of a target and source) described here OpenEdge 11.7 Documentation and getting "Segmentation fault" on the step "Synchronization in process".
All the steps to be performed are here OpenEdge 11.7 Documentation
Environment is Linux SUSE 11SP4, also tried it on CENTOS 7 and Redhat 7.
Progress used 11.5.1, tried same thing with 11.7. Result is the same
Goal is to be able to failover from source to target and fail back without copying the full DB backup over the internet (we don't have wide pipe between PROD and DR sites) and without loosing the replication.
Exactly as they wrote: planned switch of a target and source.
So in DBNAME.repl.properties I used suggested databass-role=REVERSE
To easily reproduce this Error/Bug I used standard Progress scripts creating two copies of Sports database and establish replication between them on the same server.
Here are the files.
Working folder used here is /dbdata/progress/
addai.st
Code:
#addai.st
a . f 2048
a . f 2048
a .
sp_t.st
Code:
#sp_t.st
b /dbdata/progress/sp_t.b1
#
d "Schema Area":6,32;1 /dbdata/progress/sp_t.d1
#
d "Info Area":7,32;1 /dbdata/progress/sp_t_7.d1
#
d "Customer/Order Area":8,32;8 /dbdata/progress/sp_t_8.d1
#
d "Primary Index Area":9,1;8 /dbdata/progress/sp_t_9.d1
#
d "Customer Index Area":10,1;64 /dbdata/progress/sp_t_10.d1
#
d "Order Index Area":11,32;64 /dbdata/progress/sp_t_11.d1
#
a /dbdata/progress/sp_t.a1 f 2048
#
a /dbdata/progress/sp_t.a2 f 2048
#
a /dbdata/progress/sp_t.a3
sp_s.repl.properties
Code:
[server]
control-agents=agent1
database=sp_s
transition=manual
transition-timeout=1200
repl-Keep-Alive=120
defer-agent-startup=1440
agent-shutdown-action=recovery
[agent]
name=agent2
database=sp_s
listener-minport=2756
listener-maxport=2760
[control-agent.agent1]
name=agent1
database=sp_t
host=localhost
port=2755
connect-timeout=120
replication-method=async
critical=0
[transition]
replication-set=1
databass-role=reverse
restart-after-transition=1
auto-begin-ai=1
transition-to-agents=agent1
source-startup-arguments=-S 4501 -H localhost -DBService replserv
target-startup-arguments=-S 2755 -H localhost -DBService replagent
normal-startup-arguments=-S 4501 -H localhost
sp_t.repl.properties
Code:
[server]
agent-shutdown-action=recovery
control-agents=agent2
database=sp_s
defer-agent-startup=600
repl-keep-alive=120
transition=manual
transition-timeout=60
[agent]
name=agent1
database=sp_t
listener-minport=2756
listener-maxport=2760
[control-agent.agent2]
connect-timeout=60
critical=0
database=sp_s
host=localhost
name=agent2
port=2755
replication-method=async
[transition]
replication-set=1
auto-begin-ai=1
database-role=reverse
restart-after-transition=1
transition-to-agents=agent2
source-startup-arguments=-S 4501 -H localhost -DBService replserv
target-startup-arguments=-S 2755 -H localhost -DBService replagent
normal-startup-arguments=-S 4501 -H localhost
create.sh - this script creates and starts everything. Any time you want to redo the test, just run create.sh again, it will first clean and drop everything except config files.
Code:
proshut sp_s -by
proshut sp_t -by
echo y | prodel sp_s
echo y | prodel sp_t
rm *.lg
rm *.recovery
rm sp_res*
rm *.bak
echo y | prodel sp_s
rm sp_s.repl.recovery
rm sp_s.st
echo y | prodb sp_s sports
prostrct add sp_s addai.st
rfutil sp_s -C mark backedup -G 0
rfutil sp_s -C aimage begin -G 0
proutil sp_s -C enablesitereplication source
probkup sp_s sp_res -REPLTargetCreation
echo y | prodel sp_t
rm sp_t.repl.recovery
prostrct create sp_t
prorest sp_t sp_res
proutil sp_t -C aimage begin
proutil sp_t -C enablesitereplication target
proserve sp_t -S 2755 -H localhost -aiarcdir /dbdata/progress/ai -aiarcinterval 120 -DBService replagent
probiw sp_t;proaiw sp_t;prowdog sp_t;proapw sp_t
proserve sp_s -S 4501 -H localhost -aiarcdir /dbdata/progress/ai -aiarcinterval 120 -DBService replserv
probiw sp_s;proaiw sp_s;prowdog sp_s;proapw sp_s
sleep 10
echo a | rprepl sp_t -C monitor 2>/dev/null
Now after you executed create.sh and everything is created, started and you see that replication is up and running,
please try to fail-over from sp_s (source) to sp_t (target) by command
dsrutil sp_s -C transition failover
Unfortunately regardless of Linux (Suse, CentOS or RedHat) and version of Progress (initially tried with 11.5.1, after that with 11.7) I receive the same output
Code:
proenv>dsrutil sp_s -C transition failover
Transitioning database /dbdata/progress/sp_s
---------------------------------------------------------------
19:44:41 Opening database : Succeeded
19:44:41 Setting up transition : Succeeded
19:44:41 Shutting down database : Succeeded
19:44:57 Starting database in Cur Role : Succeeded
19:44:58 Synchronization in process : Segmentation fault