Erstellen bzw. Aktualisieren einer Berichtsdatenbank

In diesem Thema wird das Erstellen bzw. Aktualisieren einer Berichtsdatenbank beschrieben, die Sie als skalierbare freigegebene Datenbank verwenden möchten. Eine Berichtsdatenbank kann, wie in dieser Abbildung dargestellt, eine Kopie einer Produktionsdatenbank sein, oder sie kann aus mindestens einer Produktionsdatenbank importierte Berichtsdaten enthalten. Der Vorgang des Erstellens bzw. Aktualisierens einer Berichtsdatenbank wird als Erstellungsphase bzw. als Aktualisierungsphase bezeichnet, je nachdem, ob eine neue Berichtsdatenbank erstellt oder eine veraltete Berichtsdatenbank aktualisiert wird.

Die Lebensdauer einer skalierbaren freigegebenen Datenbank beginnt mit dem Erstellen einer neuen Berichtsdatenbank auf einer Gruppe von Berichtsvolumes. Schließlich können die Berichtsdaten nicht verwendet werden, da sie mit der Zeit nicht mehr aktuell sind, und die Berichtsdatenbank gilt dann als veraltet. Eine veraltete Berichtsdatenbank wird als Teil der einzelnen Updatezyklen aktualisiert. Das Aktualisieren einer veralteten Berichtsdatenbank umfasst das Aktualisieren der Daten bzw. das Erstellen einer vollständig neuen Version der Datenbank.

Sie können die in SQL Server bereitgestellten Methoden zum Kopieren von Daten oder Datenbanken verwenden, um eine Berichtsdatenbank zu erstellen bzw. zu aktualisieren. Weitere Informationen finden Sie nachfolgend in diesem Thema unter "Methoden zum Erstellen bzw. Aktualisieren einer Berichtsdatenbank".

Methoden zum Erstellen bzw. Aktualisieren einer Berichtsdatenbank

HinweisHinweis

Bevor eine Berichtsdatenbank erstellt bzw. aktualisiert wird, müssen die zugehörigen Berichtsvolumes auf dem Produktionsserver bereitgestellt und jeweils für den Lese-/Schreibzugriff markiert sein. Eine Beschreibung der in diesem Verfahren enthaltenen Schritte finden Sie weiter unten in diesem Thema unter "Schritte zum Erstellen bzw. Aktualisieren der Datenbank".

SQL Server 2005 und hörere Versionen unterstützen die folgenden Methoden zum Erstellen bzw. Aktualisieren einer Berichtsdatenbank:

  • SQL Server Integration Services (SSIS)

    Sie können eine Datenbank erstellen bzw. kopieren, indem Sie SSIS-Pakete ausführen und den Task SQL ausführen oder den Task Datenbank übertragen verwenden.

    • Der Task SQL ausführen führt SQL-Anweisungen oder gespeicherte Prozeduren von einem Paket aus. Mithilfe des Tasks SQL ausführen können Sie eine Datenbank erstellen, indem Sie eine CREATE DATABASE-Anweisung ausführen und dann die Datenbank durch Kopieren in mindestens eine Tabelle oder Sicht auffüllen. Weitere Informationen finden Sie unter SQL ausführen (SSIS-Task).

    • Mithilfe des Tasks Datenbank übertragen können Sie eine Datenbank innerhalb derselben Serverinstanz oder zwischen mehreren Instanzen kopieren. Weitere Informationen finden Sie unter Datenbanken übertragen (Task).

    HinweisHinweis

    Sie können eine Datenbank auch mithilfe des SQL Server-Import/Export-Assistenten erstellen. Hierzu muss jedoch mindestens eine Tabelle oder Sicht kopiert werden. Weitere Informationen finden Sie unter Verwenden des SQL Server-Import/Export-Assistenten zum Verschieben von Daten.

  • Sichern und Wiederherstellen

    Sie können die Sicherung einer Produktionsdatenbank auf dem Berichtsvolume wiederherstellen. Dieser Vorgang umfasst die Wiederherstellung einer vollständigen Datenbanksicherung auf dem Berichtsvolume.

    • Wenn Sie für das Produktions- und Berichtsvolume denselben Laufwerkbuchstaben verwenden, stellen Sie das Berichtsvolume auf einem anderen Host bereit. Stellen Sie dann eine Verbindung mit einer Serverinstanz her, um die Datenbank wiederherzustellen.

    • Wenn Sie für das Berichts- und Produktionsvolume unterschiedliche Laufwerkbuchstaben verwenden, müssen Sie der RESTORE DATABASE-Anweisung eine WITH MOVE-Klausel hinzufügen, die den Laufwerkbuchstaben des Berichtsvolume im Pfadnamen der wiederhergestellten Datenbank angibt.

    Weitere Informationen zum Sichern und Wiederherstellen zum Zweck des Kopierens einer Datenbank finden Sie unter Kopieren von Datenbanken durch Sichern und Wiederherstellen.

  • Kopieren der Produktionsdatenbank

    Bevor Sie eine Datenbank manuell kopieren bzw. die Methode zum Trennen und Anfügen des Assistenten zum Kopieren von Datenbanken verwenden können, müssen Sie die Datenbank offline schalten und nach dem Kopieren der Datenbank wieder online schalten. Der Assistent zum Kopieren von Datenbanken bietet allerdings eine alternative Methode, die SMO-Übertragungsmethode, mit der die Datenbank im Onlinestatus kopiert wird. Obwohl die SMO-Übertragungsmethode langsamer als die Methode zum Trennen und Anfügen ist, bietet sie den Vorteil, dass sämtliche aktive Verbindungen zur Datenbank beibehalten werden.

    Weitere Informationen finden Sie unter Verwenden des Assistenten zum Kopieren von Datenbanken.

HinweisHinweis

Sie sollten beim Erstellen einer Berichtsdatenbank für die Produktions- und Berichtsdatenbank unbedingt denselben Pfadnamen und nach Möglichkeit denselben Laufwerkbuchstaben für das Produktions- und Berichtsvolume (nach Bereitstellung auf den Berichtsservern) verwenden.

Es kann sich als vorteilhaft erweisen, die Berichtsdatenbank für die erwartete Arbeitsauslastung von Abfragen zu optimieren. Zu diesen Optimierungen gehören z. B.:

  • Aktualisieren bzw. Neuerstellen von Statistiken in betroffenen Tabellen und Indizes (je nach Bedarf).

  • Neuerstellen von Indizes mit dem FILL-Faktor 100.

  • Festlegen des einfachen Wiederherstellungsmodells für die Berichtsdatenbank und Ausführen eines Prüfpunkts zur Kürzung des Transaktionsprotokolls sowie zur Freigabe zusätzlichen Speicherplatzes.

HinweisHinweis

Richtlinien zum Verwenden einer Berichtsdatenbank als skalierbare, freigegebene Datenbank finden Sie unter Sicherstellen einer richtigen Umgebung für skalierbare freigegebene Datenbanken.

Wenn eine Datenbank für die Verwendung bereit ist, müssen Sie die Berichtsvolumes als schreibgeschützt markieren und diese vom Produktionsserver entfernen. Weitere Informationen finden Sie nachstehend in diesem Thema unter "Schritte der Erstellungs- bzw. Aktualisierungsphase".

Schritte der Erstellungs- bzw. Aktualisierungsphase

HinweisHinweis

Bevor Sie eine Berichtsdatenbank aktualisieren können, müssen zunächst die zugehörigen Berichtsvolumes von allen Berichtsservern entfernt werden. Weitere Informationen finden Sie unter Trennen einer skalierbaren freigegebenen Datenbank.

Führen Sie auf dem Produktionsserver folgende Aktion aus, um eine Berichtsdatenbank zu erstellen bzw. zu aktualisieren:

  1. Finden Sie mithilfe der Hardwaredienstprogramme des Herstellers die logische Gerätenummer (LUN, Logical Unit Number) des jeweiligen Berichtsvolume heraus, damit der Produktionsserver auf diese zugreifen kann. Führen Sie diesen Schritt für die einzelnen Volumes aus, wenn die Datenbank mehrere Berichtsvolumes verwendet.

  2. Stellen Sie die einzelnen Berichtsvolumes bereit, und markieren Sie sie jeweils für den Lese-/Schreibzugriff. Der DiskPart-Befehl list volumes, in dem alle Datenträger und Volumes eines Computers angezeigt werden, enthält hilfreiche Volumeinformationen. Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um mit dem DiskPart-Dienstprogramm das Volume bereitzustellen:

    DiskPart

    DISKPART> ausgewähltes Volume =<Laufwerksnummer>

    DISKPART> Buchstaben zuweisen =<Laufwerksbuchstabe>

    DISKPART> attribute clear readonly

    DISKPART> exit

    Dabei ist <drive-number> die vom Windows-Betriebssystem zugewiesene Volumenummer und <drive-letter> der für das Berichtsvolume zugewiesene Buchstabe. Führen Sie diesen Schritt für die einzelnen Volumes aus, wenn die Datenbank mehrere Berichtsvolumes verwendet.

  3. Beim Aktualisieren einer vorhandenen Berichtsdatenbank:

  4. Erstellen bzw. aktualisieren Sie die Datenbank.

    Der Administrator erstellt bzw. aktualisiert die Datenbank mithilfe der von Methoden zum Erstellen oder Aktualisieren einer Berichtsdatenbank. Die Berichtsdatenbank kann einen beliebigen gültigen Datenbanknamen verwenden. Weitere Informationen finden Sie weiter vorne in diesem Thema unter "Methoden zum Erstellen bzw. Aktualisieren einer Berichtsdatenbank".

    HinweisHinweis

    Für Berichtsdatenbanken wird die CHECKSUM-Standardeinstellung für PAGE_VERIFY empfohlen. Weitere Informationen finden Sie unter ALTER DATABASE (Transact-SQL).

  5. Trennen Sie die Datenbank von der Produktionsserverinstanz.

    Sie können dies mithilfe der folgenden Transact-SQL-Anweisung ausführen:

    sp_detach_db @dbname='<database_name>'
    

    Dabei ist <database_name> der Name der Datenbank.

    HinweisHinweis

    Standardmäßig wird mit sp_detach_db UPDATE STATISTICS ausgeführt, um eine neue Stichprobe für die Statistiken zu erstellen. Einige Implementierungen erfordern jedoch das getrennte Ausführen von UPDATE STATISTICS mithilfe der FULL SCAN-Option.

  6. Markieren Sie die einzelnen Berichtsvolumes als schreibgeschützt, und entfernen Sie sie vom Produktionsserver.

    Geben Sie an der Eingabeaufforderung die folgenden Befehle ein, um mit dem DiskPart-Dienstprogramm das Volume zu entfernen:

    DiskPart

    DISKPART> ausgewähltes Volume =<Laufwerksnummer>

    DISKPART> attribute set readonly

    DISKPART> remove

    Dabei ist <drive-number> die vom Windows-Betriebssystem zugewiesene Volumenummer und <drive-letter> der für das Berichtsvolume zugewiesene Buchstabe. Führen Sie diesen Schritt für die einzelnen Volumes aus, wenn die Datenbank mehrere Berichtsvolumes verwendet.

    Wichtiger HinweisWichtig

    Berichtsvolumes müssen schreibgeschützt sein, bevor sie vom Produktionsserver entfernt werden.

Die Berichtsdatenbank kann nun als skalierbare freigegebene Datenbank zur Verfügung gestellt werden. Weitere Informationen finden Sie unter Anfügen einer Berichtsdatenbank als eine skalierbare freigegebene Datenbank.