Tamaño de Base de datos y log en SQL Server

Desde las bases de datos del sistema podemos extraer todo tipo de información, para localizar dentro de una BBDD de una instancia concreta de SQL podemos extraer con una consulta la información de los tamaños que ocupan:

with mf
as
(
    select database_id, type, size * 8.0 / 1024 size
    from sys.master_files
)
select 
    name, db.is_auto_shrink_on, 
    (select sum(size) from mf where type = 0 and mf.database_id = db.database_id) DatosMB,
    (select sum(size) from mf where type = 1 and mf.database_id = db.database_id) LogMB
from sys.databases db

Evento 17137 en bases de datos SQL Server

La configuración por defecto de una base dedatos en Microsoft SQL Server en sus diferentes versiones, permite descargar al servidor de la caché la propia base de datos cuando la propiedad «AUTO CLOSE» esta activada, se genera el evento:

«Event ID 17137 Source: MSSQL$NOMBREUSUARIO Starting up database ‘NombreDeLaBBDD'»

Es posible modificar el comportamiento desde SQL Management Studio, haciendo clic con el botón derecho sobre la base de datos, en Opciones indicar la propiedad «Auto Close» a False:

En las versiones SQL Express siempre aparece activado, en el resto desactivado, si el acceso es muy esporádico puede mantenerse en OFF
Listado de las BBDD con la propiedad activada:

SELECT name FROM master.sys.databases WHERE is_auto_close_on = 1

Cambiar mediante sentencia SQL:

ALTER DATABASE <NombreBBDD> SET AUTO_CLOSE OFF

 

Ficheros bak no aparecen en SQL Server

Al trasladar copias de seguridad de SQL Server e intentar restaurarlas desde una ubicación diferente a la predeterminada, desde el explorador de Management Studio (SMSS) aunque sepamos que dentro de una carpeta concreta están los ficheros pueden no aparecer, si no están asignados los permisos; deberemos asignar permisos de lectura por lo menos sobre el usuario «NT SERVICE\MSSQLSERVER» del equipo local donde se ejecuta la instancia (por defecto)

Cuenta con la que se ejecuta el servicio:

Asignación de permisos a la carpeta donde se encuentran las copias de seguridad:

Iniciar Microsoft SQL Server cuando todo falla

En ocasiones algunas instancias de base de datos pueden comportarse de forma errática, los motivos pueden ser diversos: falta de recursos, ataques, corrupción de datos… el primer paso es averiguar el origen y para ello podemos lograr arrancar los servicios en modo usuario único y con los recursos mínimos, para ello debemos añadir el parámetro «-f» desde el administrador de servicios o iniciar desde línea de comandos «net start «SQL Server (MSSQLSERVER)» /f /m »

Solo una conexión se permitirá pero logaremos evaluar más en detalle los posibles errores del servicio degradado.

 

 

Reinicio requerido al instalar SQL Server

En ocasiones la instalación no permite continuar por alguno de los requisitos del instalador, en este caso estar pendiente un reinicio. Después de reiniciar el equipo sigue apareciendo la imposibilidad de instalar (RebootRequiredCheck). Existen varias posibles causas, el modo de apagado/hibernación de Windows 8 puede ser una de ellas. Para «engañar» al instalador renombra temporalmente la siguiente entrada del registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired