Solved

How to shrink a 171 GB size SQL 2005 database !!!

Posted on 2008-10-08
14
1,419 Views
Last Modified: 2012-05-05
Hi All,
Few days agao I posted a similar question abpout shrinking a specific database, and the conculusion was that it cannot be shrink. This time it is a different database and the log file is big which make me thin that it can be shrink. Please read below.

I have a 171 GB database. I want to shrink this database as much as possible.

Under SQL Managment studio when I see the property of this database, the size of the database is 174335.94 MB and the space available is 4144.27 MB.

The Files for this database and have following sizes.

MDF size = 14272 KB
NDF size = 82286016 KB
LDF size = 96219712 KB

When i run sp_spaceused I get the following numbers;
DatabaseName: TestDB
DatabaseSize: 174335.94 MB
UnAllocatedSpace: 4144.27 MB
Reserved: 78056560 KB
Data: 64241760 KB
IndexSize: 13774472 KB
Unused: 40328 KB

I dont want to corrupt or lose the data.
Please suggest the best & easist way to reduce the size of this database as much as possible.

Thanks a million for your prompt help.

Zee
0
Comment
Question by:zeeshanbutt
  • 6
  • 6
14 Comments
 
LVL 60

Expert Comment

by:chapmandew
Comment Utility
0
 
LVL 41

Expert Comment

by:graye
Comment Utility
Yes you should be able to shrink this database.  You need to perform periodic maintenance tasks to curb the growth of the logfile.    Take a look at the following article, it explains everything in pretty good detail.
http://home.hot.rr.com/graye/Articles/SQL_LogMaintenance.htm
0
 

Author Comment

by:zeeshanbutt
Comment Utility
Someone told me to take a fullbackup first, and then try to shrink which will reduce the log size.
Is it true?
0
 
LVL 60

Expert Comment

by:chapmandew
Comment Utility
Nope, that is 100% not true.
0
 
LVL 60

Expert Comment

by:chapmandew
Comment Utility
You can take a log backup and then try to shrink it though.
0
 

Author Comment

by:zeeshanbutt
Comment Utility
The transaction log size is 91 GB. I dont want to backup transaction log since I dont have more than 65 GB of free space on the disk. But I want to truncate it, is this a good idea? How do I truncate transaction log, without hurting the database?

Please suggest.

Zee
0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 
LVL 60

Accepted Solution

by:
chapmandew earned 500 total points
Comment Utility
You can truncate the log...just make sure afterwards that you do a full backup and then setup a maint plan that does the log backups for you...or set your recovery mode to simple.

backup log yourdbname with truncate_only

dbcc shrinkfile('logfilename', 0)

Then you're all set.
0
 

Author Comment

by:zeeshanbutt
Comment Utility
chapmandew,

IDo I have to run the following two commands together?

backup log yourdbname with truncate_only
dbcc shrinkfile('logfilename', 0)


0
 

Author Comment

by:zeeshanbutt
Comment Utility
Sorry I mistype earlier.

The LDF size is 91 GB. I dont want to backup LDF since I dont have more than 65 GB of space on the disk. But I want to truncate it. How do I truncate LDF (logs), without hurting the database?

Also IDo I have to run the following two commands together?

backup log yourdbname with truncate_only
dbcc shrinkfile('logfilename', 0)

Please suggest.

Zee
0
 

Author Comment

by:zeeshanbutt
Comment Utility

I have reduced my database size. The LDF file size is now 5000 KB that is 0.005 GB only (originaly it was 96 GB). And the database size now is 78.4GB only (originaly it was 171 GB).

This is what I did.
1. Switch to SIMPLE recovery model
2. Truncate the transaction log (BACKUP LOG dbName WITH NO_LOG)
3. Shrink it (DBCC SHRINKFILE)

Since I will be scheduling regular full backups, I will be fine using SIMPLE recovery model.

Thanks everyone for thier help.

Zee
0
 
LVL 60

Expert Comment

by:chapmandew
Comment Utility
I don't see how you can close this question w/o assigning points....
0
 

Author Comment

by:zeeshanbutt
Comment Utility
WhackAMod,

I tried to assign points to chapmandew & also to myself since chapmandew was missing one key point (Switch to SIMPLE recovery model) which was a must and not an optional point. That's why I thought if I can assign 300 points to chapmandew, and 200 to myself. I wasn't sure if I could do that. And it seems like I can't. chapmandew is always very helpful and I dont mind giving him all 500 points. How can I do that now?
Please suggest.
0
 
LVL 60

Expert Comment

by:chapmandew
Comment Utility
Actually, switching to simple is not a must whatsoever.  :)
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Suggested Solutions

Let's review the features of new SQL Server 2012 (Denali CTP3). It listed as below: PERCENT_RANK(): PERCENT_RANK() function will returns the percentage value of rank of the values among its group. PERCENT_RANK() function value always in be…
Ever wondered why sometimes your SQL Server is slow or unresponsive with connections spiking up but by the time you go in, all is well? The following article will show you how to install and configure a SQL job that will send you email alerts includ…
Via a live example combined with referencing Books Online, show some of the information that can be extracted from the Catalog Views in SQL Server.
Via a live example, show how to shrink a transaction log file down to a reasonable size.

762 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now