close
Kaspersky Endpoint Security

Welcome to

Kaspersky Endpoint Security


By Kaspersky Endpoint Security


Wie zu SQL Server von einer Maschine zur anderen wandern



Wie zu SQL Server von einer Maschine zur anderen wandern

Geschrieben von yrushka am 23. Oktober 2012 (51)
Ich war vor kurzem in einem großen Migrationsprojekt beteiligt, die von einem Ort zum anderen, um die Bewegung von wenigen Datenbank Produktions-Server enthalten. Es war ein sehr großes Projekt, das viel innere Koordination zwischen Teams und Scheduling impliziert wird, so dass die Auswirkungen für die Endnutzer minimal. Sollten Sie zu einem anderen in der Lage, einen SQL-Server von einer Maschine zu bewegen sicherstellen, dass Sie auf die unten dargestellten Prüfliste bleiben. Der Hauptzweck der Migration ist ein Klon von SQL Server mit der gleichen Konfiguration zu erstellen, Datenbanken auf dem Laufenden, Sicherheit und SQL-Agent-Aufträge in Platz. Dafür wählte ich immer beide Master und Msdb zusammen mit allen Benutzerdatenbanken wiederherzustellen. Es schien viel einfacher als Verschieben von Benutzern / Passwörter, verwaiste Benutzer zu lösen, Standard-Datenbanken zu aktualisieren, die Aktualisierung von Systemeigenschaften (sp_configure), Migration Jobs, Operatoren SQL Agent, DB Mail-Profile neu zu erstellen, Datenerfassung Funktionalität ändern, Wiederherstellen von Daten Partitionieren und ganz andere spezifische DatenbankOptionen, die einmal aktiviert, wo. Nach der Migration alles reibungslos und ohne Fehler gehen müssen, andernfalls gehen die Migration erfolgreich nicht. Sie müssen sicherstellen, dass Sie alle Punkte decken und wenn Sie den Schalter in Verbindung Strings alles machen aus DBA Seite der Ansicht abgeschlossen. Bitte, wenn Sie finden dort etwas weiter unten auf der Liste hinzugefügt werden soll, fühlen Sie sich frei zu äußern, und ich werde diesen Beitrag aktualisieren. I. Schritte auf dem aktuellen Produktionsserver zu tun - [Server A] Überprüfen Sie SQL Server-Eigenschaften - diese müssen auf die Zukunft Server bleiben. use master GEHEN wählen SERVER ( 'Sortierungs') wählen SERVER ( 'Edition') wählen SERVER ( 'InstanceName') wählen SERVER ( 'Product') wählen SERVER ( 'Productlevel') Wählen Sie SERVER ( "Server") Überprüfen Sie den globalen Konfigurationseinstellungen - Diese muss auf die Zukunft Server bleiben. use master gehen sp_configure 'show advanced options', 1 rekonfigurieren gehen sp_configure CHECK-DatenbankenIntegrität Es ist notwendig, um sicher zu sein, dass wiederhergestellt Backups auf migrierte Server gültig ist. DBCC CHECKDB ( 'DATABASE_NAME') Notieren Sie Modelldatenbank wächst Optionen. Diese Einstellung ist wichtig für jede neu erstellte Datenbank. Meine dringende Empfehlung ist, dass Sie nie die Standardeinstellung verlassen, weil es eine große Ursache für eine schlechte Leistung sein kann. Die Standardeinstellung ist 1 MB pro Datendatei und 10% pro Protokolldatei - vorstellen, was es bedeutet, für eine Datenbank MB nach MB zuzuweisen, wenn sie sagen, 50 MB zuweisen muss oder eine Protokolldatei wachsen, die 10 GB groß ist. Notieren Sie physischen Pfad für master, model, msdb, tempdb-Datenbanken Daten und Protokolldateien. use master gehen Wählen Sie Name, Dateiname von sys.master_files wo database_id in (1,2,3,4), um von database_id  Notieren Sie physischen Pfad für Mssqlsystemresource Daten und Protokolldateien. SQL 2008: \ Programme \ Microsoft SQL Server \ MSSQL10_50: Es sollte in sein. \ MSSQL \ Binn \ Für SQL 2005: das gleiche wie Master-Datenbank Lage. Abfrage laufen auf SQL 2008 und obereVersionen, um den physischen Standort zu finden: use master gehen Wählen Sie Name, Dateiname, Dbid von sys.master_files wo database_id in (32767) II Vollsicherung auf Master und Msdb Perform. Schritte auf dem zukünftigen Produktionsserver zu tun - [Server B] Installieren derselben Ausgabe / Version von SQL Server auf der neuen Maschine. Halten Sie folgendes beachten Sie bei der Installation: Stellen Sie sicher, dass der neue Server die gleichen Laufwerksbuchstaben angebracht hat, in dem Systemdatenbanken befinden sich auf alten SQL Server. Andernfalls, nachdem die SQL von Master wiederherstellen nicht in der Lage zu starten, da SQL den Rest von Systemdatenbanken auf physische Pfade von [Server A] zu starten wollen. Wenn Sie Systemdatenbanken wiederherstellen möchten, dann müssen Sie die gleiche Ausgabe zu halten (Standard, Entreprise, Business Intelligence) und Version (ex: 2008 RTM 2008 SP1, 2008 R2 RTM etc.). Sie können nicht eine Sicherung einer Systemdatenbank (Master, model, msdb) auf einem Server Build wiederherstellen, die auf dem aus dem Build anders ist die Sicherung ursprünglich durchgeführt wurde. Eine Abhilfewäre, Dateien manuell die Systemdatenbanken von [Server A] bis [Server B] kopiert zu ersetzen. Dies kann nur geschehen, wenn die migrierte Server gestoppt werden kann. Wenn nicht, dann müssen Sie den Vorgang mit "Datenbank wiederherstellen ...." Folgen, wenn Sie nur Benutzerdatenbanken wiederherstellen möchten, dann können Sie die gleiche oder obere Ausgabe / Version installieren. Wenn Sie eine niedrigere Auflage / Version als die aktuelle Produktion eines installieren, können Sie nicht in der Lage sein, einige der Datenbanken wiederherstellen höher mit baut Funktionen, die nicht auf der unteren baut unterstützt werden. Halten Sie die gleiche Zusammenstellung, wenn SQL Server installieren. Erstellen Sie eine Domain / Windows-Benutzerkonto, das verwendet wird SQL-Dienste zu starten. Backup-System-Datenbanken - master, model, msdb - und an einem sicheren Ort setzen ... falls Sie sie zu erholen. Beenden Sie SQL Server. Kopieren Sie alle Systemdatenbanken Dateien und fügen Sie sie zum sicheren Ort. Erstellen Sie die physischen Standorte für master, model, msdb, tempdb, bemerkte Mssqlsystemresource Datenbanken in den Schritten nach unten I.5 & I.6 Geben Sie dem Benutzer das Ausführen von SQLVolle Sicherheitsrechte auf die neuen Ordner erstellt. Kopieren Sie die Systemdatenbanken Sicherungen, die auf [Server A] bis [Server B] (Schritt I.7). Beenden Sie SQL Server. Kopieren Sie bestehende Modell, msdb und Mssqlsystemresource Datenbank-Dateien aus dem Installationsverzeichnis auf [SERVER B], um den neu geschaffenen Einsen (Schritt II.4). Danach werden Sie den Speicherort für diese Datenbanken zu ändern können. Denn jetzt müssen SQL alten Standorten, um msdb, Modell, tempdb und Mssqlsystemresource zu laden. Starten Sie SQL Server im Single-User-Modus. Von einer erhöhten cmd (mit Administratorrechten gestartet), Zugriff auf den richtigen Ordner, in dem sqlservr.exe ausführbare befindet und unter Befehle auszuführen. ": \ Programme \ Microsoft SQL Server \ MSSQL [Instanz] \ MSSQL \ Binn C" Dort, wo Fälle, in denen andere Dienste wie SQL-Agent oder SQL Reporting der einzelnen Verbindung nahm und verboten den Administrator Master wiederherstellen Normalerweise werden Sie es finden . Dieser Fehler wird angegeben: Grund: Der Server ist im Single-User-Modus. Es kann nur ein Administrator bei dieser anschließenZeit. Bevor Sie die SQL im Single-User-Modus starten, stellen Sie sicher, dass alle SQL-Dienst beendet und es ist niemand, der eine Standardverbindung zu machen, wird (Anwendung, Reporting) cd [Laufwerk]: \ folder_name sqlservr.exe -c -m  Wiederherstellen Master-Datenbank aus der Sicherung von [SERVER A] kopiert eine NEUE cmd Zeile gestartet mit Administratorrechten oder verwenden. - Verbindung zu SQL sqlcmd -SMACHINENAME \ ServerInstance -E - Stellen Sie sicher, dass Sie Ihren Server verbunden sind: select @@ server GEHEN RESTORE DATABASE Master FROM DISK = '[Laufwerk]: \ BACKUP_PATH \ MASTER_.bak' MIT ersetzen; GEHEN  Beenden Sie die Befehlszeile und Starten Sie SQL aus Services (in Multi-User) Nun werden die Systemdatenbanken (außer Master) werden aus den neu erstellten Pfade geladen werden. Überprüfen Sie neue Dateien Speicherort für Systemdatenbanken. Master wird an die richtige Stelle verweisen. msdb, tempdb und Modell muss geändert werden. Wenn Sie msdb wiederherstellen wird können Sie zu diesem Zeitpunkt geben, um den neuen Speicherort für die Dateien. So, hier werde ich zeigen, wie Modell zu bewegenund tempdb. Für msdb ist die gleiche. select * from sys.master_files use master gehen Ändern Datenbank tempdb Datei ändern (Name = tempdev, filename = '[Laufwerk]: \ NEW_LOCATION \ tempdb.mdf') Ändern Datenbank tempdb Datei ändern (Name = tempdev2, filename = '[Laufwerk]: \ NEW_LOCATION \ tempdev2.ndf') Ändern Datenbank tempdb Datei ändern (Name = templog, filename = '[Laufwerk]: \ NEW_LOCATION \ templog.ldf') Ändern Sie Datenbank-Modell-Datei ändern (Name = modeldev, filename = '[Laufwerk]: \ NEW_LOCATION \ model.mdf') Ändern Sie Datenbank-Modell-Datei ändern (Name = modellog, filename = '[Laufwerk]: \ NEW_LOCATION \ modellog.ldf')  Beenden Sie SQL Server und die Modelldateien aus alten Standort neue Position zu verschieben. tempdb wird bei jedem Neustart SQL auf dem neuen angegebenen Position neu erstellt werden, so dass keine Notwendigkeit, die Dateien zu verschieben. Starten Sie SQL und stellen Sie sicher, dass der Systemdatenbank Punkt an den richtigen Stellen. select * from sys.master_files [optional] wiederherstellen msdb-Datenbank. Ich persönlich Probleme bei der Ausführung Database Mail angetroffen nach msdb wiederherstellen auf SQL 2008R2. Ich landete die msdb ursprünglichen Dateien zu verlassen und migriert alle Aufträge durch Scripting, erstellt msdb.dbo.cdc_jobs Tabelle (weil cdc an Ort und Stelle als auch war) und Datenbank-Mail neu konfiguriert. Entfernen Sie Ordner in Schritt II.4 erstellt. Testen Sie einige SQL-Benutzer für die Verbindung. Linked Server werden nicht, weil ihre Anmeldeinformationen arbeiten, in dem mit Service Master-Schlüssel aus originären Server verschlüsselt. Um dies Sie Backup-Service Master-Schlüssel müssen zu beheben von [Server A], geben Berechtigung für die Datei auf Ihren Benutzer und kopieren Sie auf [Server B], um sie wiederherzustellen. - Auf [Server A] BACKUP SERVICE MASTER KEY TO FILE = '[Laufwerk]: \ share \ master_key' ENCRYPTION BY Kennwort = 'Passwort' - Recht auf Datei klicken, Eigenschaften, Sicherheit, Berechtigungen: Geben Sie volle Berechtigungen für Ihre Benutzer. - Auf [Server B] RESTORE SERVICE MASTER KEY FROM FILE = '[Laufwerk]: \ master_keymaster_key' ENTSCHLÜSSELN durch ein Passwort = 'Passwort' Kraft  Ändern Sie den Servernamen in Systemtabellen. @@ Servervariable wird auf alten Server verweisen. Es muss geändert werden.- Check Server mit ID = 0. Die Abfragen kehrt alten Servernamen [SERVER A]. [SERVER B] wird nicht gefunden werden. SELECT @@ Server EXEC sp_helpserver 'SERVER B' EXEC sp_helpserver 'SERVER A' SELECT srvname FROM sysservers wo srvid = 0 - Löschen Sie alte Verweise auf alte Server. EXEC sp_droplinkedsrvlogin 'SERVER A', null EXEC sp_dropserver 'SERVER A' - Hinzufügen neuer Servername: [SERVER B] EXEC sp_addserver [SERVER B], 'local', 'duplicate_OK' EXEC sp_addlinkedsrvlogin 'SERVER B', 'true' - NEUSTART SQL. [SERVER B] wird den alten Servernamen ersetzen. SELECT @@ Server EXEC sp_helpserver 'SERVER B' SELECT srvname FROM sysservers wo srvid = 0  Bei Versionen unter SQL 2008, haben Sie von sysjobs sowie auch die Ursprungsservernamen zu aktualisieren. Bei höheren Versionen wird die Referenz in sysjobs von server_id gemacht, die immer 0 ist. SELECT * FROM msdb.dbo.sysjobs UPDATE msdb.dbo.sysjobs SET originating_server = @@ Server WHEREoriginating_server <> @@ Server  III. Verbleibende Schritte auf dem aktuellen Produktionsserver zu tun - [Server A] Führen Sie vollständige Sicherungen für alle Benutzerdatenbanken. Es ist eine gute Idee, Backup-Komprimierung und Backup-Verifikation (RESTORE VERIFYONLY) Führen Sie Differentialsicherungen zu verwenden. Kopieren Sie alle Sicherungen auf [SERVER B]. Wiederherstellen Vollständige Sicherungen und differentielle Backups auf [SERVER B] mit "NO RECOVERY 'Option. Führen Sie Transactional Backups. Kopieren Sie alle TRAN Sicherungen auf [SERVER B] und diese wiederherstellen, mit "Verwertung" Option. Und ein letzter Schritt, nachdem Sie alle Benutzerdatenbanken wiederherstellen, im Auge behalten Datenbanken Besitzer 'sa' Benutzer zu ändern, sonst werden Sie eine Fehlermeldung erhalten von wie diese hier sys Schemaobjekte Ausführung: Die EXECUTE-Berechtigung für das Objekt verweigert wurde '', Datenbank 'Mssqlsystemresource', Schema 'sys'. (.Net SqlClient Data Provider) verwenden Database_Name EXEC sp_changedbowner 'sa' gehen

Endpoint-Security 2014 gartner     Endpoint-Security-10 Fenster 10

Categories and tags