La dimensione della proprietà non è disponibile per il database


14

Recentemente ho ripristinato un database nella stessa istanza da cui è stato eseguito il backup (SQL Server 2008 R2 Enterprise) e ho scoperto che non potevo accedere alle proprietà del database.

Ho fatto quanto segue:

  • Controllato che il proprietario del database sia stato impostato correttamente usando sp_helpdb.
  • Modificato il proprietario del database in sa. Non una soluzione.
  • Cambiato il proprietario del database al mio sysadminutente. Non una soluzione.
  • Rilasciato DBCC updateusagesul database interessato. Non una soluzione.
  • Esegui DBCC CheckDBsu una copia ripristinata in un'altra istanza. Nessuna corruzione trovata. La copia ripristinata (dallo stesso file di backup) non ha generato errori durante l'accesso alla finestra delle proprietà del database.

Qualcuno può aiutare?

Il messaggio di errore che ricevo quando provo a visualizzare le proprietà è:

Impossibile visualizzare la finestra di dialogo richiesta. (SqlMgmt)
La dimensione della proprietà non è disponibile per il database '[DBNAME]'.
Questa proprietà potrebbe non esistere per questo oggetto o potrebbe non essere recuperabile a causa di diritti di accesso insufficienti. (Microsoft.SqlServer.Smo)

Sono sysadminsu questo caso.

Aggiornamento: come suggerito, ho creato un nuovo utente, l'ho reso amministratore di sistema e ho cambiato il proprietario del database. Purtroppo non è una soluzione. Vedrò se una traccia del profiler fornisce qualcosa di utile.

Aggiornamento: Aaron - il database originale è stato rinominato e portato offline ma è ancora su quell'istanza. Il backup di quel database è stato quindi ripristinato utilizzando il nome originale. I nomi dei file dei nuovi file di database sono diversi dall'originale in quanto vivono nella stessa cartella dell'originale mdf / ldf. Il db ripristinato sta attualmente guidando le nostre app critiche normalmente.


@Grazie sto usando SSMS 2014 e ci ho provato da più client / server.
Peter,

Forse esegui anche una traccia del profiler sul DB in cui funziona e vedi cosa c'è di diverso anche con quello in cui funziona e non funziona: qualcosa deve essere diverso?
Pimp Juice IT

Di recente ho riscontrato questo problema dopo aver ripristinato un database di grandi dimensioni. Mi dispiace dire che si è risolto da solo però. Potrebbe essere una domanda sciocca, ma hai controllato il log degli errori per qualcosa di spiacevole?
dwjv,

Risposte:


8

L'ho risolto riavviando il servizio SQL Server, sfortunatamente / fortunatamente.

La mia idea iniziale era quella di staccare / collegare il database. Non che pensassi che questo avrebbe effettivamente risolto il problema, l'ho letto da qualche parte in un forum. Questo non ha avuto effetto.

Purtroppo non ho fatto ciò che PJ Mahoney ha suggerito in merito a: eseguire una traccia. Spero di vedere di nuovo questo problema in modo da poter scoprire se una traccia rivela qualcosa. Grazie per il suggerimento

Almeno rispondere alla mia domanda significa che non devo vedere un altro suggerimento sulla modifica del proprietario del database; P

Grazie


5

Ho avuto questo stesso errore durante il tentativo di modificare le proprietà di crescita del file di registro di un database di produzione. Ho provato a utilizzare SSMS e ho avuto lo stesso errore:

La dimensione della proprietà non è disponibile per il database XXX.

Ho usato T-SQL per modificare invece il file di registro del database.

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

Dopo aver completato il comando sono stato in grado di aprire le proprietà del database in SSMS. Spero che questo funzioni per gli altri.


interessante! Commenta qui se ha funzionato per te
Peter,

funziona bene e no?
Kiquenet,

1

Questo può accadere su database molto occupati o anche se il database non è occupato in generale, ma al momento sta eseguendo un'istruzione che sta cambiando rapidamente la dimensione del file di registro. Ad esempio, se si tenta di eliminare un numero molto elevato di righe (milioni) da una tabella, il motore dovrà accedere a ogni riga per motivi di rollback, il che costringerà il file di registro a crescere rapidamente. Mentre è in corso, se si tenta di aprire le proprietà del database in SSMS, verrà visualizzato il messaggio di errore "la dimensione della proprietà non è disponibile .."

Un altro modo per riprodurlo è il seguente: prendere un database molto grande (oltre 100 milioni di righe) ed eseguire un'istruzione ALTER TABLE su di esso (ad esempio convertire una colonna char in un varchar). Guarda il tuo file di registro esplodere in centinaia di mega o addirittura gigabyte al secondo. Ancora una volta, mentre ciò accade, SSMS non sarà in grado di fornire le dimensioni del database perché sta cambiando troppo velocemente per essere accurato.

Inutile dire che non provare questo su server live. :)


1

Mi sono appena imbattuto in questo e da una traccia, apparentemente questo è stato bloccato da un'operazione INDICE REBUILD in esecuzione

Il mio errore specifico era

Property SpaceAvailable non è disponibile per il database '[dbOverwatch]'. Questa proprietà potrebbe non esistere per questo oggetto o potrebbe non essere recuperabile a causa di diritti di accesso insufficienti. (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

Deve avere un valore di timeout molto basso, ma forse puoi verificare se hai qualcosa che viene bloccato quando provi ad accedere alle proprietà


Interessante. Lo proverò.
Peter,

0

Ricevo questo messaggio di errore durante la distribuzione di una soluzione di strumenti di database di SQL Server sul database (su SQL Server 2008 R2). Al termine della distribuzione, l'errore scompare. È un po 'brutto perché né il DB è in modalità Single User o di sola lettura (ovviamente no) o qualsiasi altra cosa che indichi il motivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.