Was ist eine Ressourcendatenbank?
Die Ressourcendatenbank, auch bekannt als Resource DB oder RDB, ist eine versteckte, schreibgeschützte Datenbank in SQL Server. Microsoft SQL Server ist ein relationales Datenbankmanagementsystem (RDBMS), das von Microsoft entwickelt und vermarktet wird. Wie andere relationale Datenbanksoftware unterstützt SQL Server die strukturierte Abfragesprache (SQL) zur Arbeit mit relationalen Datenbanken. Das primäre Schnittstellenwerkzeug für SQL Server ist das SQL Server Management Studio (SSMS), das sowohl auf 32-Bit- als auch auf 64-Bit-Systemen funktioniert.
Viele SQL Server-Benutzer assoziieren Systemdatenbanken mit vier Datenbanken:
- Master-Datenbank: Die Master-Datenbank enthält alle systemweiten Informationen für eine SQL Server-Instanz.
- Model-Datenbank: Die Model-Datenbank wird vom SQL Server-Agenten verwendet, um Warnungen und Aufgaben zu planen.
- MSDB-Datenbank: Diese Datenbank dient als Vorlage für alle auf der SQL Server-Instanz erstellten Datenbanken. Alle Änderungen an der Model-Datenbank, wie z.B. Datenbankgröße, Wiederherstellungsmodell und andere Datenbankeinstellungen, werden auf nachfolgende Datenbanken angewendet.
- TEMPDB-Datenbank: Die Tempdb-Datenbank fungiert als Arbeitsbereich, der temporäre Elemente oder Zwischenergebnisse speichert.
Die Ressourcendatenbank ist die fünfte Datenbank. Sie ergänzt die Master-Datenbank, da der SQL Server nun auf sie angewiesen ist. Sie enthält alle Systemobjekte, die mit SQL Server 2005 und höher geliefert werden. Systemobjekte wie sys.objects sind physisch in der Ressourcendatenbank gespeichert, existieren jedoch auch logisch im sys-Schema jeder Datenbank.
Die Ressourcendatenbank kann nur Systemobjekte enthalten und keine Benutzerdaten oder Metadaten speichern. Gespeicherte Prozeduren, Katalogansichten und erweiterte Prozeduren sind Beispiele für vorgefertigten System-T-SQL-Code, der in der Ressourcendatenbank gespeichert ist.
Der tatsächliche Name der Ressourcendatenbank ist mssqlsystemresource. Die Ressourcendatenbank hat eine Datendatei und eine Protokolldatei mit den Namen mssqlsystemresource.mdf und mssqlsystemresource.ldf, die standardmäßig unter <Laufwerksbuchstabe>:\Program Files\Microsoft SQL Server\MSSQL<Versionsnummer>.<Instanzname>\MSSQL\Binn\ gespeichert sind.
Die Ressourcendatenbank vereinfacht und beschleunigt den Prozess des Upgrades auf eine neue Version von SQL Server. Früher beinhaltete das Aktualisieren von SQL Server das Entfernen und Neuerstellen von Systemobjekten. Da die Ressourcendatenbankdatei alle Systemobjekte enthält, können Administratoren ein Update durchführen, indem sie einfach die Ressourcendatenbankdateien (mssqlsystemresource.mdf und mssqlsystemresource.ldf) auf den lokalen Server übertragen.
Warum ist die Ressourcendatenbank wichtig?
Das Hauptziel einer Ressourcendatenbank ist es, Updates auf dem Server so schnell und effizient wie möglich durchzuführen. Da alle Systemobjekte in der Ressourcendatenbank vorhanden sind, können Datenbankadministratoren (DBAs) die vorherigen Ressourcendatenbankdateien während des Upgrades mit den neuen Ressourcendatenbankdateien überschreiben.
Diese Aktion wird alle Systemobjekte in der Datenbank aktualisieren. In früheren Versionen des SQL Servers mussten alle Systemobjekte während des Upgrade-Prozesses verworfen und neu erstellt werden, was zeitaufwändig war. Darüber hinaus würde die Einrichtung fehlschlagen, wenn eines der Objekte fehlte oder ein Problem verursachte.
Beste Praktiken für die Ressourcendatenbank
In SQL Server 2000 und früheren Versionen gab es keine Ressourcendatenbank. Sie wurde erstmals in SQL Server 2005 eingeführt, um Upgrades zugänglicher und schneller zu machen. Jede SQL Server-Instanz in einer Datenbank hat eine ID. Die maximale Anzahl von Datenbanken, die in einer einzigen Instanz gespeichert werden können, beträgt 32767. Dies ist auch die ID der Ressourcendatenbank, und sie ist für jede Ressourcendatenbank in jeder Instanz gleich. Daher erhält die Ressourcendatenbank die maximal mögliche Datenbank-ID der Instanz.
Viele Menschen sind sich der Existenz der Ressourcendatenbank aufgrund ihres versteckten Status nicht bewusst. Einige DBAs glauben, dass, da es sich um eine Datenbank handelt, sie denselben Wartungsaufwand wie eine herkömmliche Datenbank erfordert, was nicht ganz korrekt ist. Dies kann in der Zukunft zu weiteren Problemen führen.
Hier sind einige bewährte Praktiken, die beim Arbeiten mit einer Ressourcendatenbank zu beachten sind:
- Vermeiden Sie es, die Dateien der Ressourcendatenbank zu verschieben. Während spezielle Verfahren zum Übertragen der Dateien anderer Systemdatenbanken existieren, wird das Ändern des Dateispeicherorts der Ressourcendatenbank weder unterstützt noch empfohlen. Ein Upgrade von SQL Server kann zur Installation einer neuen Ressourcendatenbank führen, die ihre Dateien dauerhaft an diesem festen Ort speichert.
- Seien Sie konsequent mit Backups, um die Ressourcendatenbank wiederherzustellen. Die Ressourcendatenbank kann nicht mit den typischen Backup- und Wiederherstellungsverfahren gesichert oder wiederhergestellt werden, die für andere Datenbanken in SQL Server verwendet werden, da sie nicht mit SQL Server-Tools zugänglich ist. Obwohl die Dateierweiterung der Ressourcendatenbank .mdf ist, kann sie als .exe-Datei behandelt werden. Administratoren können diese Methode verwenden, um ein dateibasiertes oder festplattenbasiertes Backup zu erstellen.
- Wenden Sie Service Packs auf mehrere Instanzen mit der Ressourcendatenbank an. Der DBA muss die Dateien mssqlsystemresource.mdf und mssqlsystemresource.ldf auf die Zielinstanz kopieren, um ein Service Pack auf mehrere Instanzen anzuwenden.
- Verwenden Sie die Ressourcendatenbank, um Änderungen rückgängig zu machen. Wenn ein DBA die durch Service Packs vorgenommenen Änderungen rückgängig machen muss, müssen die Administratoren die .mdf- und .ldf-Dateien durch die einer zuvor gesicherten Version ersetzen.

Keerthi Rangan
Keerthi Rangan is a Senior SEO Specialist with a sharp focus on the IT management software market. Formerly a Content Marketing Specialist at G2, Keerthi crafts content that not only simplifies complex IT concepts but also guides organizations toward transformative software solutions. With a background in Python development, she brings a unique blend of technical expertise and strategic insight to her work. Her interests span network automation, blockchain, infrastructure as code (IaC), SaaS, and beyond—always exploring how technology reshapes businesses and how people work. Keerthi’s approach is thoughtful and driven by a quiet curiosity, always seeking the deeper connections between technology, strategy, and growth.