Lots of databases, full recovery model, low disk space...what to do?
I do not much care for having my development databases set to Recovery modell = full. There is really no need for that. The day I need to restore a logfile the environmnet better be a production environment.
Unfortunatly SQL 2005 let me set the Recovery model on a global level (Please tell me how if it really does - I'm no core SQL guy.). I know it let's you set default file locations etc. and that is good.
The problems starts when SharePoint creates the db's for you, because you never remember to go in to the SQL server and change the recovery model to simple. Then shrink the log file to save the space... It is simply to unconvenient.
Running low on disk space, this problem had to dealt with. But to change some hundred databases manually is of course out of the question. So I wrote a small script to take care of it.
The Script first alters the recovery model, then shrinks the file. Remember to set the starting point for your databases. In my example I have 7 system databases and the rest is SharePoint db's. Be carefull not to make changes to any database not used for development only.
Do a check on
select name, database_id from sys.databases order by database_id
USE [master] GO DECLARE @dbname nvarchar(128) DECLARE @filename nvarchar(128) DECLARE @cmd nvarchar(500) DECLARE @SQLString NVARCHAR(500) DECLARE @ParmDefinition NVARCHAR(500) DECLARE @getdbnames CURSOR SET @getdbnames = CURSOR FOR select name from sys.databases where database_id > 7 order by database_id
BEGIN
END CLOSE @getdbnames DEALLOCATE @getdbnames |
Please note that this approach is not recommended to test and production environments. Leave SharePoint databases to their default settings there.
The change run supprisingly fast (there is a lot of disk I/O here) and I got a lot of free space on the server again! :)
Edit:
Just got a reply from Michael in Austria. He says:
Everytime you create a new database SQL Server "clones" its "Model" database. So by setting your appreciate recovery model at this database, it will be default for every new one.
I have tested it for SQL Server 2000 but it should be the same for all other editions.
You can get more information about the model database here: https://msdn.microsoft.com/en-us/library/ms186388.aspx
Thanks, Michael! :)
Comments
- Anonymous
June 16, 2009
PingBack from http://topalternativedating.info/story.php?id=10781