Die Eigenschaftsgröße ist für die Datenbank nicht verfügbar

14

Ich habe kürzlich eine Datenbank in derselben Instanz wiederhergestellt, in der sie gesichert wurde (SQL Server 2008 R2 Enterprise), und festgestellt, dass ich nicht auf die Datenbankeigenschaften zugreifen konnte.

Ich habe folgendes gemacht:

  • Überprüft, ob der Datenbankeigentümer mit richtig eingestellt wurde sp_helpdb.
  • Der Datenbankbesitzer wurde in geändert sa. Kein Fix.
  • Den Datenbankbesitzer wieder in meinen sysadminBenutzer geändert . Kein Fix.
  • Wird DBCC updateusagefür die betroffene Datenbank ausgegeben . Kein Fix.
  • Führen Sie DBCC CheckDBeine wiederhergestellte Kopie in einer anderen Instanz aus. Keine Korruption gefunden. Die wiederhergestellte Kopie (aus derselben Sicherungsdatei) hat beim Zugriff auf das Datenbank-Eigenschaftenfenster keine Fehler verursacht.

Kann jemand helfen?

Die Fehlermeldung, die beim Anzeigen von Eigenschaften angezeigt wird, lautet:

Der angeforderte Dialog kann nicht angezeigt werden. (SqlMgmt) Die
Eigenschaftsgröße ist für die Datenbank '[DBNAME]' nicht verfügbar.
Diese Eigenschaft ist für dieses Objekt möglicherweise nicht vorhanden oder kann aufgrund unzureichender Zugriffsrechte nicht abgerufen werden. (Microsoft.SqlServer.Smo)

Ich bin ein sysadminauf dieser Instanz.

Update: Wie vorgeschlagen, habe ich einen neuen Benutzer erstellt, ihn zu sysadmin gemacht und den Datenbankbesitzer in ihn geändert. Leider kein Fix. Ich werde sehen, ob eine Profiler-Ablaufverfolgung etwas Nützliches ergibt.

Update: Aaron - Die ursprüngliche Datenbank wurde umbenannt und offline geschaltet, befindet sich jedoch noch in dieser Instanz. Die Sicherung dieser Datenbank wurde dann unter Verwendung des ursprünglichen Namens wiederhergestellt. Die Dateinamen der neuen Datenbankdateien unterscheiden sich vom Original, da sie sich im selben Ordner wie das Original-MDF / LDF befinden. Die wiederhergestellte Datenbank steuert derzeit unsere kritischen Apps wie gewohnt.

Peter
quelle
@Shanky Ich verwende SSMS 2014 und habe dies von mehreren Clients / Servern aus versucht.
Peter
Vielleicht führen Sie auch einen Profiler-Trace für die Datenbank durch, in der es funktioniert, und sehen Sie, was sich auch dort von der Datenbank unterscheidet, in der es funktioniert und nicht funktioniert - muss etwas anders sein?
Pimp Juice IT
Ich hatte vor kurzem dieses Problem nach dem Wiederherstellen einer großen Datenbank. Es tut mir leid zu sagen, dass es sich von selbst geklärt hat. Könnte eine dumme Frage sein, aber haben Sie das Fehlerprotokoll auf etwas Unangenehmes überprüft?
Dienstag,

Antworten:

8

Ich habe dies durch einen Neustart des SQL Server-Dienstes behoben, leider / zum Glück.

Meine ursprüngliche Idee war, die Datenbank zu trennen / anzuhängen. Nicht, dass ich gedacht hätte, dass dies das Problem tatsächlich beheben würde, ich habe das gerade irgendwo in einem Forum gelesen. Dies hatte keine Wirkung.

Ich habe leider nicht getan, was PJ Mahoney vorschlug: eine Spur zu verfolgen. Ich hoffe, ich sehe dieses Problem wieder, damit ich herausfinden kann, ob eine Spur etwas aufdeckt. Danke für den Vorschlag.

Wenn ich zumindest meine eigene Frage beantworte, muss ich keinen weiteren Vorschlag zum Ändern des Datenbankbesitzers sehen

Vielen Dank

Peter
quelle
5

Ich hatte den gleichen Fehler, als ich versuchte, die Eigenschaften für das Dateiwachstum der Protokolldatei einer Produktionsdatenbank zu ändern. Ich habe versucht, mit SSMS und hatte den gleichen Fehler:

Die Eigenschaftsgröße ist für die XXX-Datenbank nicht verfügbar.

Ich habe stattdessen T-SQL verwendet, um die Datenbankprotokolldatei zu ändern.

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

Nachdem der Befehl ausgeführt wurde, konnte ich die Datenbankeigenschaften in SSMS öffnen. Ich hoffe, das funktioniert für andere.

Mark S.
quelle
interessant! Kommentiere hier, ob das für dich funktioniert hat
Peter
funktioniert gut und richtig?
Kiquenet
1

Dies kann bei stark ausgelasteten Datenbanken der Fall sein oder auch, wenn die Datenbank im Allgemeinen nicht ausgelastet ist, derzeit jedoch eine Anweisung ausführt, die die Größe der Protokolldatei schnell ändert. Wenn Sie beispielsweise versuchen, eine sehr große Anzahl von Zeilen (Millionen) aus einer Tabelle zu löschen, muss das Modul jede Zeile für Rollback-Zwecke anmelden, wodurch die Protokolldatei schnell wächst. Währenddessen wird beim Versuch, die Datenbankeigenschaften in SSMS zu öffnen, die Fehlermeldung "Eigenschaftsgröße ist nicht verfügbar" angezeigt.

Eine andere Möglichkeit, es zu reproduzieren, ist folgende: Nehmen Sie eine sehr große Datenbank (mehr als 100 Millionen Zeilen) und führen Sie eine ALTER TABLE-Anweisung darauf aus (z. B. konvertieren Sie eine char-Spalte in eine varchar). Sehen Sie, wie Ihre Protokolldatei in Hunderten von Megabyte oder sogar Gigabyte pro Sekunde explodiert. Währenddessen kann Ihnen SSMS die Datenbankgröße nicht mitteilen, da sie sich zu schnell ändert, um genau zu sein.

Bitte versuchen Sie dies nicht auf Live-Servern. :)

Xotic1
quelle
1

Ist gerade auf diese und eine Ablaufverfolgung gestoßen, anscheinend wurde diese durch eine INDEX REBUILD-Operation blockiert, die ausgeführt wurde

Mein spezifischer Fehler war

Die Eigenschaft SpaceAvailable ist für die Datenbank '[dbOverwatch]' nicht verfügbar. Diese Eigenschaft ist für dieses Objekt möglicherweise nicht vorhanden oder kann aufgrund unzureichender Zugriffsrechte nicht abgerufen werden. (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

Das Zeitlimit muss sehr niedrig sein. Sie können jedoch überprüfen, ob beim Zugriff auf die Eigenschaften blockiert wird

Thiago Dantas
quelle
Interessant. Ich werde das testen.
Peter
0

Ich erhalte diese Fehlermeldung während der Bereitstellung einer SQL Server-Datenbank-Tools-Lösung für die Datenbank (unter SQL Server 2008 R2). Nach Abschluss der Bereitstellung ist der Fehler behoben. Es ist ein bisschen unangenehm, weil sich weder die Datenbank im Einzelbenutzermodus noch schreibgeschützt (natürlich nicht) oder irgendetwas anderes befindet, das den Grund angibt.

Magier
quelle