• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 550
  • Last Modified:

How to drop a SQL Server SERVICE without CRAZY log activity

A customer has an MSDB instance that is about 140GB.  The problem is a monster message queue w/ over 70 million records.  It's for a 3rd-party tool they haven't used in years.

Like this, only several times bigger:  http://www.sqlservercentral.com/Forums/Topic883785-146-1.aspx

I have not been able to disable broker on MSDB b/c we can't put MSDB into single-user mode on weekdays.  May try that tomorrow.

But when I run the DROP SERVICE statement (which attempts to empty the queue), the TLog grows to fill the disk.  Last night it ate nearly 500 GB before being out of space and rolling back.

The entire MDF is about 140 GB.  But TLog for dropping this service wants over 500 GB.  They're talking about attaching a 1TB USB drive, but I don't know whether that would be enough either!

How much space should I expect it to take?  And is there another way?  I've been over the documentation and all I'm sure of is that I can't TRUNCATE the QUEUE -- which is what I'd really, REALLY like to do.

Thanks
0
Daniel Wilson
Asked:
Daniel Wilson
  • 3
  • 2
2 Solutions
 
Eugene ZCommented:
check and try the below solutions (what is your biggest table there?)

SQL Server Database Mail Cleanup Procedures
http://www.mssqltips.com/sqlservertip/1732/sql-server-database-mail-cleanup-procedures/


Analyze and Correct a large SQL Server MSDB Database
http://www.mssqltips.com/sqlservertip/1461/analyze-and-correct-a-large-sql-server-msdb-database/
0
 
Daniel WilsonAuthor Commented:
The monster is a queue.

The index on it is queue_message_155...
The queue is _Lakeside_dbTools_Waits_LogOutQueue

I have managed to disable the broker on MSDB.  I made MSDB single-user for a few minutes to do so.

One cannot delete from or truncate a queue. http://msdn.microsoft.com/en-us/library/ms190495.aspx

One thing the DROP SERVICE command does is empty the queue.  But that pushes my log to 500 GB.

Do you have other suggestions?
0
 
Eugene ZCommented:
it does not look like the standard msdb queue  _Lakeside_dbTools_Waits_LogOutQueue

check \try and if you think it will not affect your application

DROP QUEUE
http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/Q_28008574.html#a38818804

--
try to check where from this communicated (sp_who\sp_who2\3)
0
 
Daniel WilsonAuthor Commented:
OK, I got rough with it:

ALTER DATABASE [msdb] SET NEW_BROKER WITH ROLLBACK IMMEDIATE;

After which I could drop the service and then the queue.

Thanks for the help.
0
 
Daniel WilsonAuthor Commented:
Eugene, I appreciate the ideas, but they really didn't get me there.  Still, thanks for taking the time to look into it.
0

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now