Tilted Forum Project Discussion Community

Tilted Forum Project Discussion Community (https://thetfp.com/tfp/)
-   Tilted Technology (https://thetfp.com/tfp/tilted-technology/)
-   -   [SQL Server 2000] Auto shrinking transaction logs? (https://thetfp.com/tfp/tilted-technology/56835-sql-server-2000-auto-shrinking-transaction-logs.html)

Stompy 05-25-2004 08:25 AM

[SQL Server 2000] Auto shrinking transaction logs?
 
For some odd reason, SQL Server 2000 doesn't have a "Truncate Log on Checkpoint" option that 7 had... so now all the transaction logs on our new servers are just getting way outta control.

There's a command you can use to shrink it:

Code:

use db
BACKUP LOG db WITH TRUNCATE_ONLY
DBCC SHRINKFILE ('db_Log', 2)

But that's tedious to run it on every individual database.. there's gotta be a way to have SQL do this for you. I can't seem to figure out what it is.

Anyone have any ideas?

Tirian 05-25-2004 01:02 PM

Stompy- if you find out, I'd appreciate you posting the answer in this thread. I too have the same question. Weird thing is, there is a "Schedule this task" checkbox on the backup screen when using the enterprise manager, but it seems to have no effect when I click the checkbox to try and schedule the task. Perhaps I am missing something here ?

f00sion 05-25-2004 04:05 PM

Ive never had a problem with this..but cant you just create a new scheduled job manually?... Tools > Job Scheduling, and then Transact-SQL command?

Stompy 05-25-2004 06:18 PM

Yeah, but there's like 200 databases on this server so that'd be pretty tedious.

Isn't there a more automated method that can be set upon DB creation?

bobd123 06-06-2004 06:14 PM

Just run this code in query analyzer against the master db or set up a agent job to run it on a schedule. It will resize all the transaction logs on the server.

/*

Function: For each user database remove all the freespace and truncate the transaction log.

Instructions: Run against master, the script will use the system catalog to produce a list of databases.
If you want to excluce a database add the excluded db name to the 'not in' list below.

cjm@integer.org
http://www.integer.org

Copyright (C) 2003 Cameron Michelis copying and redistribution of this file is permitted
provided this notice and the above comments are preserved.
*/

Set quoted_identifier off
use master
go

DECLARE @dataname varchar(30)
DECLARE @dataname_header varchar(75)
DECLARE datanames_cursor CURSOR FOR SELECT name FROM sysdatabases
WHERE name not in ('master', 'pubs', 'tempdb', 'model', 'northwind', '2024', 'MOBILESQL', 'THEGLNDB')

OPEN datanames_cursor

FETCH NEXT FROM datanames_cursor INTO @dataname

WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status = -2)
BEGIN
FETCH NEXT FROM datanames_cursor INTO @dataname
CONTINUE
END
SELECT @dataname_header = "Database " + RTRIM(UPPER(@dataname))
PRINT " "
PRINT @dataname_header
EXEC("BACKUP LOG " + @dataname + " WITH TRUNCATE_ONLY")
EXEC("DBCC SHRINKDATABASE (" + @dataname + ",TRUNCATEONLY)")
FETCH NEXT FROM datanames_cursor INTO @dataname
END

DEALLOCATE datanames_cursor
PRINT ""
PRINT " "
PRINT "Free space removed and transaction log truncated for each user database"

Stompy 06-11-2004 12:55 PM

you rock!

thanks a ton, that worked like a charm :)

twister002 06-12-2004 01:05 PM

I'm no SQL DBA but if you set up a maintinence plan for the DB's you can backup your T-logs. The backup truncates them, then you can either offload them to media or delete them automatically after a set amount of time.


All times are GMT -8. The time now is 05:28 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54