Web design and hosting, database, cloud and social media solutions that deliver business results
  • Geschäftslösungen
    • Robotische Prozessautomatisierung
    • Software
    • Datenbank-Beratungsdienste
      • Datawarehouse-Dienste
      • Datenintegration
      • PowerBI
      • Werkzeuge
    • Website Design
      • Weblokalisierung und -übersetzung
      • Website Sicherheit
    • Cloud Services
      • Microsoft Azure
    • Microsoft Office
    • Sozialen Medien
  • Akademie
    • Unsere Testumgebung
    • Datenbankdesign lernen
      • SQL Server 2008 Wartungsplan
      • Offene Abfrage abrufen
      • Verwenden von SQL Server Daten
      • Verwenden von SQL Server Datum
      • Verwenden von SQL Server Funktionen
      • Verwenden von SQL Server Pivot-Unpivot
    • Lern Web Design
      • ASP-NET
      • CSS
      • Verwendung von JavaScript
    • Lernen von IT-Diensten
      • Anfordern von SSL und Generierung von PFX-Datei in OpenSSL Simple Steps
  • Über
    • Bloggen
    • Karriere
    • Mannschaft
      • Adrian Ananda
      • Ali Al-Amine
      • Ayse Hur
      • Chester Copperpot
      • Gavin Clayton
      • Sai Gangu
      • Suneel Kumar
      • Surya Mukkamala
    • Mappe
عربى (AR)čeština (CS)Deutsch (DE)English (EN-GB)English (EN-US)Español (ES)فارسی (FA)Français (FR)हिंदी (HI)italiano (IT)日本語 (JA)polski (PL)Português (PT)русский (RU)Türk (TR)中国的 (ZH)

Ein vollständiger Wartungsplan für SQL Server 2008

SQL Server-Wartungsplan, der Datenbankdateien auf mehreren Servern sichern und wiederherstellen kann, re-organisieren oder neu erstellen Indizes abhängig von der Zeit

Datenbanken optimieren

Scrolling CSS Diagram

Dieser Abschnitt ist darauf ausgerichtet, Datenbanken optimiert zu halten. In diesem Beispiel werden wir den Code einrichten, um folgendes zu machen (siehe ein grobes Diagramm, wie die Server verbunden sind);

  • Backup-Datenbank vom Live-Server zu einem freigegebenen Backup-Ordner
  • Re-Index-Datenbank
  • Töte alle Verbindungen und stelle die Datenbank auf dem Berichtsserver wieder her.
  • Linked Servers wird in einem separaten Artikel bald sein
  • Log-Versand wird in einem separaten Artikel bald sein

Wenn Sie es mit dem Server umgehen, müssen Sie das Konto zulassen, das von SQL Server aus dem Zugriff auf das Zielserver-Dateisystem ausgeführt wird.

Alle SQL-Code wird aus einer Dienstprogramm-Datenbank ausgeführt und Schema auf "maint" gesetzt

Es gibt eine Vielzahl von anderen Artikeln, die wir unten geschrieben haben, die für Sie interessant sein können.

Vollständiger Wartungsplan

Jetzt können wir alle diese separaten Code-Segmente mit einer anderen Prozedur verwalten, die sie in der richtigen Reihenfolge anrufen wird, wird dies in den Live-Server gestellt werden. Der Code läuft wie folgt:

  • Trainiere die Zeit
  • Wenn es abends re-index die Datenbank ist
  • Führen Sie eine Sicherung der Datenbank aus (fügen Sie hinzu, wo Sie benötigen)
  • Wenn es abends die anderen Datenbanken wieder hinzufügt (füge wo du brauchst)
  • Töten Sie Verbindungen und Wiederherstellungsdatenbank (addieren Sie, wo Sie benötigen)

Dieser Code wurde erprobt und lief für Perioden von Monaten ohne Probleme.

Bitte beachten Sie, dass das Schrumpfen von Protokolldateien und Datenbankdateien auf ein Minimum reduziert werden muss, indem Sie eine Sicherung durchführen, die Sie das Protokoll leeren (obwohl es den verwendeten Speicherplatz beibehalten wird). Wenn es nötig ist, wenn es außerhalb der normalen Arbeitszeiten laufen sollte.

SQL Code

Use [utilities]
GO
CREATE PROC [maint].MaintenancePlan AS BEGIN
DECLARE @BackupType VARCHAR(1)='E'
IF DATEPART(HOUR,GETDATE()) BETWEEN 5 AND 21 BEGIN
SET @BackupType='D'
END
--EXEC ('USE TempDb; DBCC SHRINKFILE(templog, 0)');--This is only needed when space is at a premium!
--Re-index Live
IF @BackupType='E' EXEC [maint].DatabaseReIndex 'dbname'
--Create Backup
BACKUP DATABASE TO DISK=N'{backuplocation}{dbname}.bak'
WITH NOFORMAT, INIT, NAME =N'{dbname}', SKIP, NOREWIND, NOUNLOAD, STATS= 10;
--EXEC ('USE ; DBCC SHRINKFILE(_log, 0)');--This is only needed when space is at a premium!
--Backup Other Files at Night
IF @BackupType='E' BEGIN
  EXEC [maint].DatabaseReIndex 'dbname'
  --Backup Others
  BACKUP DATABASE [databasename] TO DISK=N'{backuplocation}{dbname2}.bak'
  WITH FORMAT,INIT, NAME =N'{dbname2}',SKIP, NOREWIND, NOUNLOAD,  STATS= 10
END

--Restore Backups on other server
EXEC [server].[utilities].[maint].KillConnections 'dbname';
EXEC [server].[utilities].[maint].RestoreDatabase_{dbname};

--Restore Backups on other server for db_2 etc
IF @BackupType='E' BEGIN
  EXEC [server].[utilities].[maint].KillConnections 'dbname2';
  EXEC [server].[utilities].[maint].RestoreDatabase_{dbname2};
END

END
GO

Sicherungsdatenbank

backup database screenshot

Um den Code zu sichern, um Ihre Datenbank zu sichern, ist es am einfachsten, den Code von SSMS zu schreiben.

Folgen Sie dem Prozess, den Sie normalerweise verwenden würden, und wählen Sie dann "Skriptaktion zu neuem Abfragefenster" aus.

Kopiere diesen Code in den Wartungsplan.

Re-Index-Datenbank

Als nächstes können wir einen Code hinzufügen, um unsere Datenbank neu zu indizieren, dies ist wieder eine freigegebene gespeicherte Prozedur, wo man nur dem System den Namen mitteilen muss.

Um Code-Duplizierung zu vermeiden, können Sie darüber lesen auf dem Link unten.

More: Gespeicherte Prozedur, um fragmentierte Datenbankindizes neu zu erstellen oder neu zu ordnen

Kill-Verbindungen

Wenn Sie eine Wiederherstellung in der Datenbank durchführen, können Sie nur eine Verbindung dazu haben (der Vorgang, der die Wiederherstellung durchführt), daher können wir eine gespeicherte Prozedur erstellen, um alle Verbindungen außer dem aktuellen Prozess zu schließen. Wir haben hierzu einen eigenen Artikel erstellt.

More: Gespeicherte Prozedur, um alle Verbindungen zur ausgewählten Datenbank zu töten

Datenbank wiederherstellen

Dieser Code kann auch aus SQL Server Management Studio skriptiert werden. Wenn Sie diesen Code zu einer gespeicherten Prozedur hinzufügen, können Sie ihn von anderen Prozessen und sogar anderen Servern wirklich leicht anrufen. Wir haben diese in einen separaten Artikel verschoben, um mehr Optionen zu decken.

More: Datenbank aus gespeicherten Prozedur wiederherstellen

Author

Was this helpful?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink Cookie-RichtlinieSeitenverzeichnis

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
Die Einstellungen auf dieser Seite sind so eingestellt, dass alle Cookies zulässig sind. Diese können auf unserer Cookie Policy & Settings Seite geändert werden. Wenn Sie diese Seite weiter nutzen, stimmen Sie der Verwendung von Cookies zu.
Ousia Logo
Logout
Ousia CMS Loader