Link to home
Start Free TrialLog in
Avatar of zeeshanbutt
zeeshanbutt

asked on

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

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
Avatar of chapmandew
chapmandew
Flag of United States of America image

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 
Avatar of zeeshanbutt
zeeshanbutt

ASKER

Someone told me to take a fullbackup first, and then try to shrink which will reduce the log size.
Is it true?
Nope, that is 100% not true.
You can take a log backup and then try to shrink it though.
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
ASKER CERTIFIED SOLUTION
Avatar of chapmandew
chapmandew
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
chapmandew,

IDo I have to run the following two commands together?

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


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

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
I don't see how you can close this question w/o assigning points....
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.
Actually, switching to simple is not a must whatsoever.  :)