2 SAP ASE servers are configured to replicate using SAP RS on a testdb with logical connection as a warm standby. In my case, all the threads and rep agents are running fine but data changes on PDS.testdb are not getting replicated to RDS.testdb. On Replication Server:
1> admin logical_status
2> go
Logical Connection Name
Active Connection Name
Active Conn State
Standby Connection Name
Standby Conn State
Controller RS
Operation in Progress
State of Operation in Progress
Spid
---------------------------------------------------------------------------
[102] manvith6605t1.testdb
[103] MANVITH6605T1.testdb
Active/
[104] APMW2K8R2641.testdb
Active/Waiting for Enable Marker
[16777317] SAMPLE_RS
None
None
1> admin who_is_down
2> go
Spid Name State Info
---- --------------- ---------- ----------
On primary: deleted some rows of data.
1> select count(*) from mytable
2> go
-----------
24
(1 row affected)
On standby:
1> select count(*) from mytable
2> go
-----------
64
(1 row affected)
Feel free to ask for any clarifications.
Is this a new warm standby setup?
Have you been able to successfully replicate into the standby database in the past with this warm standby setup?
Did you by any chance run a
switch activecommand recently?Assuming this is a new setup, and
switch activehas not been run, I'm going to assume this may be an issue with how the standby connection was added to the setup ...If the database connections have been added successfully and SRS thinks it should be replicating then
admin logical_statusshould show both connections with a status ofActivebut this isn't the case ... the standby connection is showingActive/Waiting for Enable Marker.I'm guessing that when you added the standby connection you opted to initialize the standby database via a
dump-n-loadoperation. If you created the standby connection via a resource file you probably had something likers.rs_init_by_dump: yesin the resource file; if you ranrs_initfrom the command line there would've been a related question that you probably saidyesto.When you tell
rs_initthat the standby database will be initialized via adump-n-loadoperation the standard scenario looks like:dump markeradmin logical_statusshould show the standby connection with a status ofActive/Waiting for Enable Markerdump databasein the active database (ordump transactionif this is a largish db and a db dump has already been dumped and loaded into the standby database)dump {database|transaction}command places adump markerin the active database's transaction logdump markerto SRSdump markerto the DSIdump markerwill suspend the connection into the standby database and start saving incoming transactionsonline databasecommand against the standby databaseadmin logical_statusshould show the standby connection with a status ofActive/NOTE: I don't recall, off the top of my head, if the standby connection's status changes to
Active/a) upon receiving thedump marker(and shutting down the DSI) or b) upon resuming the standby DSI connection.Your
admin logical_statusis showing us that the DSI is still waiting for adump marker.If this is a production database you'll likely need to perform a new database dump ... at which point the standby DSI should go down ... and then you would need to load the database dump into the standby database, online said database, then resume the DSI connection into the standby database. This is the only way to ensure your standby database will be brought online with no missing transactions (ie, the current setup is discarding transactions).
If this is a development/test environment and/or you don't care about the possibility of the active and standby databases being out of sync, you should be able to:
admin logical_statusnow shows a status ofActive/for the standby database and if so ... and assuming no other issues ...NOTE: Your previous
DELETEperformed against the active database has probably been discarded by now so you'll probably want to start by manually running the sameDELETEagainst the standby in order to get the table in sync (assuming that's the only difference in the two tables, eg, you haven't run anyUPDATEsin the active database since turning on replication).