MainMind

True & racing de norte a sur


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

 

Firebird: conexión fallida

Todavía hay aplicaciones que necesitan interoperabilidad, con bases de datos de Firebird, desde herramientas de Office u otros orígenes de datos; puede realizarse desde ODBC (Open DataBase Connectivity), debemos asegurarnos si la aplicación es de 32 o 64 bits, en ambos casos es posible instalar el driver desde la página oficial, es posible tener los dos instalados sin problema. Si ya disponemos de una versión podemos aprovechar para actualizarla y forzar la instalación de la que nos falte:

Desde linea de comandos y el directorio de instalación de la versión, por ejemplo para la versión de 32 bits:

instclient.exe install gds32

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.
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.