El tamaño de la propiedad no está disponible para la base de datos

14

Recientemente restauré una base de datos en la misma instancia de la que se realizó una copia de seguridad (SQL Server 2008 R2 Enterprise) y descubrí que no podía acceder a las propiedades de la base de datos.

He hecho lo siguiente:

  • Comprobado el propietario de la base se estableció correctamente usando sp_helpdb.
  • Cambió el propietario de la base de datos a sa. No es una solución
  • Cambié el propietario de la base de datos a mi sysadminusuario. No es una solución
  • Emitido DBCC updateusagecontra la base de datos afectada. No es una solución
  • Ejecutar DBCC CheckDBen una copia restaurada a otra instancia. No se encontró corrupción. La copia restaurada (del mismo archivo de respaldo) no arrojó ningún error al acceder a la ventana de propiedades de la base de datos.

¿Alguien puede ayudar?

El mensaje de error que recibo cuando intento ver las propiedades es:

No se puede mostrar el cuadro de diálogo solicitado. (SqlMgmt)
El tamaño de la propiedad no está disponible para la base de datos '[DBNAME]'.
Es posible que esta propiedad no exista para este objeto o que no se pueda recuperar debido a derechos de acceso insuficientes. (Microsoft.SqlServer.Smo)

Soy un sysadminen este caso.

Actualización: como sugerí, creé un nuevo usuario, lo hice administrador del sistema y cambié el propietario de la base de datos. No es una solución por desgracia. Veré si una traza del generador de perfiles produce algo útil.

Actualización: Aaron: se cambió el nombre de la base de datos original y se la desconectó, pero aún se encuentra en esa instancia. La copia de seguridad de esa base de datos se restauró utilizando el nombre original. Los nombres de archivo de los nuevos archivos de la base de datos son diferentes del original ya que viven en la misma carpeta que el original mdf / ldf. La base de datos restaurada actualmente está impulsando nuestras aplicaciones críticas de manera normal.

Peter
fuente
@Shanky Estoy usando SSMS 2014 y he intentado esto desde múltiples clientes / servidores.
Peter
Tal vez también ejecute un seguimiento del generador de perfiles en el DB donde funciona y vea qué hay de diferente allí con el que funciona y no funciona: ¿algo tiene que ser diferente?
Pimp Juice IT
Recientemente tuve este problema después de restaurar una gran base de datos. Lamento decir que se aclaró solo. Puede ser una pregunta tonta, pero ¿ha revisado el registro de errores para ver si hay algo desagradable?
dwjv

Respuestas:

8

Lo resolví reiniciando el servicio de SQL Server, desafortunadamente / afortunadamente.

Mi idea inicial fue separar / adjuntar la base de datos. No es que pensara que esto realmente solucionaría el problema, solo lo leí en un foro en alguna parte. Esto no tuvo efecto.

Lamentablemente, no hice lo que PJ Mahoney sugirió re: ejecutar un rastro. Espero ver este problema nuevamente para poder averiguar si un rastro revela algo. Gracias por la sugerencia.

Al menos responder mi propia pregunta significa que no tengo que ver otra sugerencia sobre cómo cambiar el propietario de la base de datos; P

Gracias

Peter
fuente
5

Tuve este mismo error al intentar modificar las propiedades de crecimiento del archivo de registro de una base de datos de producción. Intenté usar SSMS y tuve el mismo error:

El tamaño de la propiedad no está disponible para la base de datos XXX.

En su lugar, utilicé T-SQL para modificar el archivo de registro de la base de datos.

USE [master]
GO
ALTER DATABASE [MyDatabase] MODIFY FILE ( NAME = N'MyDatabase_log', FILEGROWTH = 524288KB )
GO

Después de completar el comando, pude abrir las propiedades de la base de datos en SSMS. Espero que esto funcione para otros.

Marcas.
fuente
¡interesante! Comenta aquí si eso funcionó para ti
Peter
trabajando bien y no?
Kiquenet
1

Esto puede suceder en bases de datos muy ocupadas o incluso si la base de datos no está ocupada en general, pero en este momento está ejecutando una declaración que está cambiando rápidamente el tamaño del archivo de registro. Por ejemplo, si intenta eliminar una gran cantidad de filas (millones) de una tabla, el motor tendrá que iniciar sesión en cada fila para revertir, lo que obligará a que el archivo de registro crezca rápidamente. Mientras esto está en progreso, si intenta abrir las propiedades de la base de datos en SSMS, verá el mensaje de error "el tamaño de la propiedad no está disponible .."

Otra forma de reproducirlo es la siguiente: tome una base de datos muy grande (más de 100 millones de filas) y ejecute una instrucción ALTER TABLE en ella (por ejemplo, convierta una columna char en un varchar). Vea su archivo de registro explotar en cientos de megas o incluso gigabytes por segundo. Nuevamente, mientras esto sucede, su SSMS no podrá darle el tamaño de la base de datos porque está cambiando demasiado rápido para ser exacto.

No hace falta decir que no intentes esto en servidores en vivo. :)

Xotic1
fuente
1

Acabo de encontrar esto y de un rastro, aparentemente esto fue bloqueado por una operación INDEX REBUILD que se estaba ejecutando

Mi error específico fue

Property SpaceAvailable no está disponible para la Base de datos '[dbOverwatch]'. Es posible que esta propiedad no exista para este objeto o que no se pueda recuperar debido a derechos de acceso insuficientes. (Microsoft.SqlServer.Smo)

SELECT
(SELECT SUM(CAST(df.size as float)) FROM sys.database_files AS df WHERE df.type in ( 0, 2, 4 ) ) AS [DbSize],
(SUM(a.total_pages) + (SELECT ISNULL(SUM(CAST(df.size as bigint)), 0) FROM sys.database_files AS df WHERE df.type = 2 )) AS [SpaceUsed]
FROM
sys.partitions p join sys.allocation_units a on p.partition_id = a.container_id left join sys.internal_tables it on p.object_id = it.object_id

Debe tener un valor de tiempo de espera muy bajo, pero tal vez pueda verificar si hay algo bloqueado cuando intenta acceder a las propiedades

Thiago Dantas
fuente
Interesante. Lo probaré.
Peter
0

Recibo este mensaje de error durante la implementación de una solución de herramientas de base de datos de SQL Server contra la base de datos (en SQL Server 2008 R2). Una vez que finaliza la implementación, el error desaparece. Es un poco desagradable porque ni la base de datos está en modo de usuario único o solo lectura (por supuesto no) o cualquier otra cosa que indique la razón.

Magier
fuente