Showing results for 
Search instead for 
Did you mean: 

Dangerous to run "sysadmin log_first_tran" with a large transaction

Active Participant
0 Kudos

So I had a problem with a replicate DSI connection.  It went down with some reasonable error (couldn't insert to the destination table because it didn't exist).  So I ran "sysadmin log_first_tran" to get more details about the insert being run.

When I did this, the "sysadmin log_first_tran" command returned immediately, but the repserver than started a background task writing the 2.7 million row transaction to the RSSD database and the errorlog.   Our estimates are that it would've taken 3-5 days to finish logging the first transaction, and it might have filled up our RSSD db.  We had to shutdown the repserver to stop the logging.

So my question is, is there anyway to look at the replication queue to see the size of transactions in the queue?

I see the command "sysadmin dump_open_tran".  I guess I could dump all 2.7 million inserts in my transaction.   But if that writes output at the same speed as sysadmin log_first_trans, it could take a few days to log the open transaction SQL statements.

This is also a problem if you want to do a "resume connection skip transaction" to skip a large transaction.  It will also log the large transaction to the RSSD db, possibly filling it up (after a few days).   A work around to this problem is to use dsi_command_convert to temporarily skip certain types of SQL commands to a specific table:

Is there anyway to tell if there's a large transaction in the queue?  (other than dumping the whole thing with "sysadmin dump_open_tran")

Thanks in advance



Accepted Solutions (0)

Answers (0)