Regarding the procedure. It's still the same, but I just add detail steps for steps 8.
1. run qstatus and check and make sure backlog is zero for QMTL export queue then stop export and shutdown sp_cop sp_ctrl> qstatus ' make sure all backlog is 0 sp_ctrl> flush o. sp_ctrl> stop capture sp_ctrl> stop read sp_ctrl> stop export
(targets) sp_ctrl> show ' check target post queues are stopped due to flush sp_ctrl> shutdown (on source: backup all vardir files and shareplex schema) (on middle: shutdown shareplex and backup all vardir files) (on target: shutdown shareplex and backup all vardir files and shareplex schema) (on targer: sp_ctrl> stop post ' don't apply anything to target in case there is really something wrong, the user can restore all those backup files and schema data)
2. Move QMTL queue files to a directory
$ cd /rim
$ mkdir QMTL
$ ls -l *QMTL* | wc -l ' note how many files will be moved
$ mv *QMTL* QMTL
3. cd QMTL and check and verify all files moved here are related to QMTL export files, they should have +X in it.
This includes .q, .sq and all related queue data files associated with this export queue QMTL
$ cd /rim/QMTL
$ ls -l QMTL/*QMTL* | wc -l ' make sure file count is the same
4. start sp_cop, it should not take long
$ cd /bin
$ ksh
$ nohup ./sp_cop &
$ exit
5. check to see if you still see this queue user for wrong ip
$ cd /bin
$ ./qview -i
qview> qinit
qview> list
' It should be gone
Since we are removing the QMTL export queues on source, we have to remove the associated down stream queues on intermediate server and target server.
6. Go to intermediate server and run qstatus and check to see if all messages are drained, then shutdown sp_cop over there and go to qview
sp_ctrl> shutdown
$ ./qview -i
qview> qsetup
qview> deleteq x
' it will prompt you for export queue name and delete the related export queue related to QMTL
qview> exit
7. Go to each target server and run qstatus and check to see if all messages are drained
sp_ctrl> shutdown
$ ./qview -i
qview> qsetup
qview> deleteq p
' it will prompt you for each post queue and enter n for all other post queues and enter y for the QMTL related post queues
qview> exit
backup table first
On each target, sqlplus splex/splex
truncate table shareplex_trans;
then start sp_cop there middle and target
$ cd /bin
$ ksh
$ nohup ./sp_cop &
$ exit
8. start export on source server and you should see a new export queue QMTL created and it should not have a big number of messages. When there are new messages coming, the queues for downstream servers will get created.
sp_ctrl> qstatus ' to check export queue backlog size
sp_ctrl>start export
sp_ctrl>start read
sp_ctrl>start capture
sp_ctrl> qstatus
9. If everything goes fine, apply the patch on source. First download the patch "sp_ordr-ONEOFF-ST97622"
$ cd /bin
$ ./sp_ctrl
sp_ctrl> stop read
sp_ctrl> exit
$ cd /.app-modules
$ mv sp_ordr sp_ordr.orig
$ mv sp_ordr-ONEOFF-ST97622 sp_ordr
' keep same permission
$ cd ../bin
$ ./sp_ctrl
sp_ctrl> start read
sp_ctrl> exit
10. Re-enable the previously disabled object that had invalid length issue and see if this one-off help resolve the issue.
sp_ctrl> stop post
sp_ctrl> reset param SP_OPO_DISABLE_OBJECT_NUM
sp_ctrl> reset param SP_OPO_DISABLE_OBJECT_NUM queue QWIP
sp_ctrl> start post