Ich arbeite seit SQL Server 6.5 mit SQL Server ein und aus. Der alte Rat, der mir immer noch in den Sinn kommt, war, niemals ein direktes Upgrade durchzuführen.
Ich aktualisiere derzeit meine 2008 R2 DEV- und TEST-Systeme auf SQL Server 2012 und muss dieselbe Hardware verwenden. Der Gedanke, meine Reporting Services-Konfiguration nicht wiederherstellen zu müssen, ist sehr attraktiv, und ich bin zeitlich sehr konkurrenzfähig. Es handelt sich weder um Analysedienste noch um ungewöhnliche oder nicht standardmäßige Vorgänge. Es werden nur das Datenbankmodul und die Berichterstellungsdienste installiert.
Hat jemand ernsthafte Probleme mit vorhandenen Upgrades gehabt? Oder sollte ich meine Position zu In-Place-Upgrades neu bewerten?
sql-server
sql-server-2012
migration
upgrade
ssrs
Beschädigte Ware
quelle
quelle
Antworten:
Wirklich kurze Antwort - In Place ist in Ordnung. Sie können Ihre Konfiguration anschließend überprüfen und die Best Practices für SQL Server 2012 implementieren.
Eine längere Antwort auf SQL Server-Upgrades / -Migrationen
Das ist also eine Ansichtssache und es gibt nicht unbedingt eine falsche oder richtige Antwort, aber ich bevorzuge aus vielen Gründen Upgrades im Migrationsstil anstelle von In-Place-Upgrades. Davon abgesehen hatten einige meiner Kunden aus verschiedenen Gründen keine andere Wahl, als ein In-Place-Upgrade durchzuführen. Seit SQL Server 2005 waren In-Place-Upgrades nicht mehr so schlecht wie früher.
Warum bevorzuge ich eine Migration zu einem direkten Upgrade?
Wohlgemerkt ich sage nicht , Sie haben dies als eine Migration zu tun. In-Place funktioniert und es funktioniert gut, wenn Sie nicht planen, neue Hardware in Ihrem Budget zu kaufen, und dies für dieses Upgrade nicht tun können. Die Unterstützung beim Upgrade-Prozess ist so viel besser als in den 6,5 Tagen, sodass Sie sich dadurch nicht in eine schlechte Position bringen.
Wenn Sie vorhaben, eine In-Place-Migration für dev / test durchzuführen, aber eine Migration für die Produktion durchführen möchten, sollten Sie vor der Produktion mindestens eine Migration durchführen. Auf diese Weise können Sie Ihre Checkliste im Voraus ausarbeiten und sich mit potenziellen Problemen befassen, an die Sie nicht gedacht haben.
Anhängen / Trennen vs. Sichern / Wiederherstellen für Migrationen
Wenn Sie sich für den Migrationsansatz entscheiden, gibt es noch eine Entscheidung, über die Sie möglicherweise noch debattieren. Auf diese Weise verschieben Sie Ihre Datenbank in die neue Umgebung. Sie können Ihre Datenbank entweder vom alten Server trennen und an den neuen Server anhängen oder sie sichern und dort wiederherstellen.
Ich bevorzuge Backup / Restore. Der größte Vorteil, den ich von Detach / Attach höre, ist die Zeitersparnis. Für mich gewinnt Backup / Restore aus ein paar Gründen:
Wenn Sie sich für die Sicherung / Wiederherstellung entscheiden, ist Ihre alte Quellendatenbank weiterhin online. Ich möchte diese Datenbank nach dem Backup offline schalten. Manchmal gehe ich noch einen Schritt weiter und setze die gesamte SQL-Instanz offline, nachdem ich Sicherheit, Jobs, Verbindungsserver, Zertifikate, Datenbank-E-Mail-Einstellungen und andere instanzweite Informationen ausgeführt habe. Dies vermeidet ein Problem beim Testen, bei dem jemand sagt "Alles sieht gut aus!" Nur um ein oder zwei Tage später festzustellen, dass sie mit der alten Datenbank auf dem alten Server gesprochen haben. Indem Sie diese Datenbanken offline schalten oder die gesamte Instanz offline schalten, können Sie diese Fehlalarme und die damit verbundenen Probleme vermeiden.
So beschleunigen Sie den Migrationsansatz
Sie können die für die Umstellung von einer alten auf eine neue Umgebung für eine ausgelastete Produktionsumgebung mit geringen Ausfallzeiten erforderlichen Ausfallzeiten minimieren, indem Sie das vollständige Wiederherstellungsmodell verwenden. Grundsätzlich - bereiten Sie die Umgebung, in die Sie migrieren, auf, indem Sie die neueste vollständige Sicherung, alle differenziellen Sicherungen und alle bereits erstellten Protokollsicherungen unter Angabe
NORECOVERY
der Daten wiederherstellen. Dann müssen Sie für die endgültige Umstellung nur die Protokollsicherungen wiederherstellen, die noch nicht wiederhergestellt wurden, und Die letzte Log-Sicherung, die Sie wiederherstellen möchtenWITH RECOVERY
. Auf diese Weise kann bei einer großen Datenbank das tatsächliche Stillstandszeitfenster drastisch minimiert werden, indem die Kosten für die vollständigen, differenziellen und meisten Protokollwiederherstellungen vor dem Stillstandszeitfenster bezahlt werden. Vielen Dank an Tao für den Hinweis in den Kommentaren!So machen Sie das In-Place-Upgrade sicherer
Einige Dinge, die Sie tun können, um Ihre Erfahrungen und Ergebnisse bei der Auswahl des In-Place-Ansatzes zu verbessern.
Die Bedeutung von Upgrade- oder Migrationschecklisten
Wenn Sie sich für ein Upgrade entscheiden (ob vorhanden oder migriert), sollten Sie ernsthaft in Betracht ziehen, eine Checkliste zu erstellen und diese Checkliste in jeder Umgebung zu verwenden. Sie sollten eine Reihe von Dingen in diese Checkliste aufnehmen, nicht zuletzt:
Lassen Sie dann die Person, die die Produktionsaktualisierung vornimmt, die Checkliste in einer anderen Umgebung als der Produktion befolgen - insbesondere in einer Umgebung, in der das Schließen möglichst der Produktion ähnelt ("South of Prod", wie ich sage ...), und notieren Sie sich alle Probleme oder Punkte wo sie von der Checkliste ablenken oder wegen eines Mangels an der Checkliste improvisieren mussten. Dann lassen Sie die Änderungen einfließen und haben Spaß mit Ihrer Produktionsänderung.
Ich kann nicht genug betonen, wie wichtig es ist, nach der Migration oder dem Upgrade gründliche Tests durchzuführen, bevor Sie mit der Migration beginnen. Eine Rollback-Entscheidung während eines Upgrades sollte einfach sein - insbesondere während einer Migration. Wenn es etwas Unangenehmes gibt, führen Sie ein Rollback durch und finden Sie es heraus, wenn Sie es in der Hitze der Migration nicht effektiv und zuverlässig beheben können. Sobald Sie mit dieser neuen Umgebung vertraut sind und Benutzer eine Verbindung herstellen, wird das Rollback zu einer schwierigen Aufgabe. Sie können eine SQL Server-Datenbank nicht auf eine frühere Version zurücksetzen. Das bedeutet manuelle Arbeit und Datenmigrationen. Ich warte immer ein paar Wochen, um die alte Umgebung zu töten, aber Sie sollten alles tun, um zu vermeiden, dass diese alte Umgebung benötigt wird, indem Sie alle Ihre Probleme finden, bevor Ihre Live-Benutzer jemals die neue Umgebung berühren. Am besten, bevor Sie mit dem Upgrade / der Migration beginnen.
Kurzer Hinweis zur Migration / Aktualisierung von SQL Server Reporting Services Die Migration einer SSRS-Installation ist keine herkulische Aufgabe, wie viele meinen. Dieser Technet / Books Online-Artikel ist eigentlich ganz praktisch . Eine der wichtigsten Warnungen in diesem Artikel lautet "Sichern der Verschlüsselungsschlüssel", insbesondere wenn Sie viele vertrauliche Informationen wie geplante E-Mail-Adressen von Berichtsempfängern, Verbindungsinformationen für eine Vielzahl von Verbindungen usw. gespeichert haben Ich kann einen meiner Kunden schon seit einiger Zeit fragen, wie wichtig das ist. Sie wissen es, weil ich diesen Schritt durcheinander gebracht und ziemlich viel Zeit damit verbracht habe, Berichtszeitpläne und Berechtigungen für Verbindungszeichenfolgen zu ändern.
quelle
Meiner Erfahrung nach sollte derselbe Entscheidungsprozess wie zuvor durchgeführt werden. AFAIK Bei der Installation von SQL Server im MS SQL Server-Produkt selbst und den potenziellen Problemen, die bei der Einführung von Software mit Millionen von Codezeilen auftreten können, gab es keine "Weltveränderer". Es könnte etwas Schlimmes passieren, und jetzt haben Sie keine ROLLBACK-Option mehr.
Sie haben jedoch andere Alternativen. Sie können einen Snapshot des Systems erstellen, an einer anderen Stelle wiederherstellen, das Upgrade durchführen und sehen, was passiert. Dieser Test sollte Ihnen viel Komfort bieten, garantiert jedoch nicht, dass keine Probleme mit der Prod Box auftreten. Dies ist jedoch eine Option, die in SQL 6.5-Tagen nicht verfügbar war.
Ich würde nur den schlimmsten Fall annehmen. Sie führen ein direktes Upgrade durch und es schlägt kläglich fehl. Sie müssen sich dann in Ihrem RTO und RCO davon erholen. Versteht das Unternehmen die Risiken und haben Sie Pläne, diese zu mindern?
Wenn das Geschäft damit nicht in Ordnung ist, dann tue es nicht, wäre mein Rat.
quelle
Wenn Ihre Server in einer virtuellen Umgebung ausgeführt werden, können Sie einen Snapshot für einen Klon ausführen und dann das direkte Upgrade anwenden und die Instanz testen, um sicherzustellen, dass das Upgrade erfolgreich war. Wenn dies funktioniert, können Sie den Snapshot anwenden und den Klon zum Produktionsserver machen. Wenn dies nicht funktioniert, können Sie den Snapshot löschen und zum Image vor dem Upgrade zurückkehren, um es erneut zu versuchen, oder den Klon löschen und eine vollständige Migration durchführen.
quelle
Aufgrund einer großen Hardware-Investition mussten wir nur das Betriebssystem aktualisieren und dabei die aktuelle SQL Server-Version (2012, 3 Server, 22 Instanzen, ~ 300 Datenbanken) beibehalten. Keine komplexen Einstellungen wie Spiegeln usw.
Dieses Beispiel stimmt nicht genau mit der Frage überein, da SQL Server nicht aktualisiert wird. Ich denke, dies ist immer noch eine gute Antwort, da die gezeigten Schritte tatsächlich einfacher wären als eine echte In-Place-Migration.
Übersicht: Ein externes Laufwerk wurde angeschlossen, um vor allem vorsorglich vollständige Sicherungen durchzuführen. Nur das Modell und msdb werden tatsächlich vom externen Laufwerk wiederhergestellt. Die ldf / mdf wurden zum Abnehmen / Anbringen an Ort und Stelle belassen. Einige lokale Konten wurden in den DBs referenziert. Nachdem sie im Betriebssystem neu erstellt wurden, wurden die Verweise in der Datenbank neu erstellt (da sich die SIDs möglicherweise ändern).
Dann waren hier die Schritte, die für uns gearbeitet haben:
1) Notieren Sie sich die Einstellungen auf Serverebene, die in den Schritten 12 (Serverrollen) und 18 bis 23 wiederhergestellt werden.
2) Patchen Sie SQL Server 2012 auf SP3 (Konsistenz erforderlich, wenn Sie System-DBs wiederherstellen möchten).
3) Stellen Sie sicher, dass die Versionen für jede Instanz übereinstimmen. "Version auswählen"
4) Erstellen Sie diese 6 Skripte, indem Sie dieses Skript ausführen. Redgate SQL Multiscript ist eine enorme Zeitersparnis, wenn es viele Instanzen gibt (Passen Sie die Werkzeuge -> Optionen => Zeilenlänge auf das Maximum an (8192) und verwenden Sie dann die Textausgabe).
Benutzer erneut mit Anmeldungen verknüpfen
5) Führen Sie ein Skript aus, um alle DBs einschließlich des Systems (Master, MSDB, Modell) auf einem externen Laufwerk zu sichern.
6) Führen Sie ein Skript aus, um alle DBs zu trennen
7) C Das Laufwerk wird neu formatiert. Bewahren Sie die LDF / MDFs auf, wenn sie NICHT auf C waren.
8) Windows Server 2012 ist auf C installiert
9) Verschieben Sie den LDF / MDF für die ursprünglichen Systemdateien aus dem Weg, wenn sie nicht auf dem Laufwerk C gespeichert waren.
10) SQL Server 2012 wird neu installiert und auf SP3 gepatcht. A. Erstellen Sie die Systembenutzer- / Gruppenkonten neu
11) Sichern Sie die System-DBs an einen NEUEN Speicherort oder Dateinamen (achten Sie darauf, die Originale nicht zu überschreiben!).
12) Führen Sie das Snippet zum erneuten Erstellen von Rollen aus. So etwas wie:
13) Führen Sie das Skript zum erneuten Erstellen der Anmeldung aus (führt keine Aktionen aus, wenn die Anmeldungen wiederhergestellt wurden).
14) Beenden Sie SQL AGENT.
(Könnte den Meister hier wiederherstellen, wir sind durchgeknallt).
15) Fügen Sie mdf / ldf mithilfe des obigen Skripts hinzu. ein. Wenn dies fehlschlägt, stellen Sie es manuell mithilfe des obigen Skripts wieder her.
16) Versuchen Sie, das Modell wiederherzustellen
17) Stellen Sie sicher, dass SQL Agent gestoppt ist. Wiederherstellen der MSDB (Link) a. Wenn dies fehlschlägt, müssen Jobs + Wartungsplan + E-Mail-Konfiguration + Bediener neu erstellt werden
18) Benutzer öffnen, um sich einzuloggen ...
19) Aktivieren Sie den Service Broker für die Übereinstimmung mit dem ursprünglichen Wert SELECT name, is_broker_enabled FROM sys.databases.
20) Starten Sie SQL Agent
21) Setzen Sie die Parallelitätsschwelle auf den ursprünglichen Wert
22) Passen Sie alle Datenbankeinstellungen an ihre ursprünglichen Werte an:
23) Überprüfen Sie den Jobbesitz:
Wenn auch die SQL Server-Version aktualisiert worden wäre, glaube ich nicht, dass die Modell- und MSDB-Datenbanken wiederhergestellt werden könnten, sodass Jobs aufgrund von https://support.microsoft.com/en-us/kb/264474 verloren gegangen wären
Was fehlt:
quelle
An beiden Ansätzen ist nichts auszusetzen - ich habe beides getan, und beide Ergebnisse sind in der Regel gut.
Wenn es ein Problem mit dem Migrationsansatz gibt, handelt es sich nicht um ein technisches Problem, sondern um Faulheit. Zu oft stelle ich fest, dass ein Unternehmen noch nicht vollständig auf die xxxx-Version umgestiegen ist, weil es sich für eine Swing-Migration entschieden hat und nie die harte Arbeit geleistet hat, sich vollständig zu bewegen. Jetzt haben sie zwei oder mehr Sätze von Servern anstelle von einem.
quelle