Ejecutar comandos para todas las bases SQL server de un servidor
Ahora que GeneXus guarda las KB en bases de datos SQL Server, se me multiplicaron la cantidad de bases que tengo que "administrar". Hoy tengo 38 KB y algunas de ellas tienen la base de datos correspondiente al modelo.
En total, tengo 62 bases de datos SQL Server.
--Hace el backup de las bases de datos y deja una archivo con el mismo nombre que la DB
Mis tareas mas habituales de administración son :
- Backup
- Chequear que no tengan problemas de integridad
- Defragmentar los indices
- Recuperar el espacio no utilizado dentro de los archivos de la base de datos.
Aunque ultimamente me ha tocado enfrentarme a la tareas de DBA, no son mi especialidad ni me atraen demasiado.
Encontre este stored procedure (no documentado) que no conocía que permite ejecutar un comando para todas las bases existentes.
--Comprueba la integridad física y lógica de todos los objetos de la base de datos especificada
EXEC sp_msforeachdb 'DBCC CHECKDB("?")'
EXEC sp_msforeachdb 'DBCC CHECKDB("?")'
--recupera espacio no utilizado en las base de datos
EXEC sp_msforeachdb 'DBCC SHRINKDATABASE ("?")'
EXEC sp_msforeachdb 'DBCC SHRINKDATABASE ("?")'
--Hace el backup de las bases de datos y deja una archivo con el mismo nombre que la DB
EXEC sp_msforeachdb 'BACKUP DATABASE ? TO DISK = "c:\dbbackup\?.bak"'
Sabo sobre las situaciones semejantes y despues la utiliza interesante que sabe decidir la complecacion presente - como reparar mssql.
ResponderBorrar