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
sysadmin
Benutzer geändert . Kein Fix. - Wird
DBCC updateusage
für die betroffene Datenbank ausgegeben . Kein Fix. - Führen Sie
DBCC CheckDB
eine 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 sysadmin
auf 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.
Antworten:
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
quelle
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:
Ich habe stattdessen T-SQL verwendet, um die Datenbankprotokolldatei zu ändern.
Nachdem der Befehl ausgeführt wurde, konnte ich die Datenbankeigenschaften in SSMS öffnen. Ich hoffe, das funktioniert für andere.
quelle
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. :)
quelle
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
Das Zeitlimit muss sehr niedrig sein. Sie können jedoch überprüfen, ob beim Zugriff auf die Eigenschaften blockiert wird
quelle
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.
quelle