Espero que puedas señalarme en la dirección correcta. No soy un usuario frecuente de T-SQL, pero busqué en Google y encontré el script a continuación. Corregí un poco el guión.
Quiero que el guión:
- Para seleccionar todas las bases de datos, excepto las bases de datos del sistema.
- Para establecer la recuperación a simple.
- Para reducir los archivos de registro para cada db (.ldf), excepto el sistema db
La secuencia de comandos:
USE MASTER
declare
@isql varchar(2000),
@dbname varchar(64)
declare c1 cursor for select name from master..sysdatabases where name not in ('master','model','msdb','tempdb','ReportServer','ReportServerTempDB')
open c1
fetch next from c1 into @dbname
While @@fetch_status <> -1
begin
select @isql = 'ALTER DATABASE @dbname SET RECOVERY SIMPLE'
select @isql = replace(@isql,'@dbname',@dbname)
print @isql
exec(@isql)
select @isql='USE @dbname checkpoint'
select @isql = replace(@isql,'@dbname',@dbname)
print @isql
exec(@isql)
select @isql='DBCC SHRINKFILE @dbname.ldf'
select @isql = replace(@isql,'@dbname',@dbname)
print @isql
exec(@isql)
fetch next from c1 into @dbname
end
close c1
deallocate c1
¿Por qué, por qué, por qué? Además, ¿cuál es "la dirección correcta"? ¿El guión no funciona? ¿Si es así, cómo? ¿Recibe un mensaje de error? ¿Qué es? Probablemente necesite un comando USE en el último bloque. Pero de nuevo: ¿Por qué, por qué, por qué?
—
Aaron Bertrand
Porque los archivos .ldf ocupan el 70% del espacio en disco en el servidor. Pero si sabes de una mejor manera, por favor, ilumíname. No sé si el script funciona, no puedo ejecutarlo. Tengo que estar seguro de que funciona primero, ya que es un entorno de producción.
—
Arviddk
¿No tienes un entorno de desarrollo o prueba donde puedas probar esto? Francamente, no tomaría nada de aquí, independientemente de quién lo escribió, y lo aplicaría a la producción basado solo en las seguridades de extraños en Internet ...
—
Aaron Bertrand
@Arviddk ¿Sabe cuáles son las consecuencias de cambiar el modelo de recuperación de FULL / BULK LOGGED a SIMPLE? Si es consciente, continúe y haga eso.
—
BuahahaXD
Solo quería comentar sobre el por qué para futuros lectores que pueden estar buscando hacer lo mismo. Solíamos hacer copias de seguridad completas de SQL con copias de seguridad de registros de transacciones. Desde entonces, cambiamos a usar Dell AppAssure para hacer copias de seguridad, lo que nos coloca en un lugar donde no necesitamos copias de seguridad del registro de transacciones. Ahora nos quedan cientos de bases de datos en varios servidores aún configuradas con terabytes de archivos LDF sin ningún motivo. Esto afecta a las copias de seguridad / restauraciones, así como a otras cosas que rodean eso, la replicación y demás.
—
Thorin