Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

How to drop a SQL Server SERVICE without CRAZY log activity

Posted on 2013-01-25
5
Medium Priority
?
520 Views
Last Modified: 2013-01-30
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
Comment
Question by:Daniel Wilson
  • 3
  • 2
5 Comments
 
LVL 43

Expert Comment

by:Eugene Z
ID: 38818804
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
 
LVL 32

Author Comment

by:Daniel Wilson
ID: 38818848
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
 
LVL 43

Assisted Solution

by:Eugene Z
Eugene Z earned 2000 total points
ID: 38818939
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
 
LVL 32

Accepted Solution

by:
Daniel Wilson earned 0 total points
ID: 38819036
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
 
LVL 32

Author Closing Comment

by:Daniel Wilson
ID: 38834519
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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows gives you an overview on SQL Server 2016 row level security. You will also get to know the usages of row-level-security and how it works
What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

782 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question