5. 5
Sieben Gründe, diese Session zu besuchen:
• Eine
Migra+on
ist
schon
in
Planung
• Mentale
Vorbereitung
auf
das
Kommende
• Um
Neuerungen
in
SQL
Server
2012
und
Unterschiede
zu
früheren
Versionen
zu
erfahren
Ø Tja,…
Pech!(Leider
eine
andere
Session)
• Um
vor
den
BI-‐Sessions
zu
flüchten
• Um
bei
der
Migra+on
der
Produk+vsysteme
nicht
etwas
Spaß
mit
der
GL
haben
zu
müssen…
• Um
jetzt
schon
Spaß
haben
zu
können
7. 7
• Noch Fragen ?
• Auf Wiedersehen !
• Nee ! Scherz !
8. 8
Wo soll ich nur beginnen?
Mein Ziel:
n Zeigen, wie umfangreich eine Migration sein kann
n Auf Stolperfallen hinweisen
n Verschiedene Migrationsmöglichkeiten auflisten
n Versuche so viel wie möglich zu zeigen und zu erwähnen
(Vollständigkeit ist nicht gewährleistet)
9. 9
Wer von Ihnen hat eine gute Dokumentation
über die vorhandenen SQL Server ?
Bitte um Handzeichen !
10. Auf was ist alles zu achten ?
Client
Anbindung
/
Datenbanken
User
/
Logins
sp_configure
Anwendungen
Schni[stellen
Compa+bility
Monitoring
(Filestream)
Replika+on
Server
Colla+on
Level
Tools
Shares
(ist
und
hat)
Wartung
SQL
Server
200x
Linked
Server
Hier
war
mit
x
ε
{5,
8,
8R2}
dann
die
Virenscanner
Trace
Flags
Folie
voll…
Lokale
WIN
Security
SQL
Server
2012
Repor+ng
Endpoints,
Snapshots
Konzept
f.a.k.a.
„Denali“
Services
User/Groups
Powershell,
XEvents
Recovery
Neue
Neues
Integra+on
Konzept
Services
Jobs
Box(en)?
OS?
XPs
/
DLLs
Ausfall
Neue
Analysis
Firewall?
Konzept
Storage?
Services
Alerts
SPs
(master)
Resource
Policy
Based
Mail
Group
Policies
CLRs
Governor
Management
Migra+onskonzept
/
Methoden
/
Projektplan
11. 11
Spätestens jetzt
sollte auch der letzte DBA einsehen,
dass es sich wahrlich lohnt,
eine gute Dokumentation zu haben!
13. 13 Migrationsmethoden
n Inplace Migration
p = SQL Server 2012 „drüberbügeln“
p Lange Downtime
p Point Of No Return: Konvertierung der
Datenbanken
p Geht nicht für x86 -> x64
p Ergebnis: SQL Server mit Migrationshintergrund
Das möchte ich nicht !
14. 14 Migrationsmethoden
n Side-by-Side Migration
p Neue SQL Server 2012 Instanz (Named
Instance)
p Name = ComputernameInstance
p Komplizierter im Cluster
p Geht auch nicht für x86 -> x64
p Alte Produktionsmaschine wird verändert
Also ich möchte das auch nicht !
15. 15 Migrationsmethoden
NEUER SERVER
n Nachteile
p Viel Arbeit!
p Kostet
n Vorteile
p „Saubere“ Umgebung
p Erlaubt ausführliche Tests
p Leichtere Implementierung neuer Technologien
p Kann während der Produktion vorbereitet werden
p Minimale Downtime
p Kein Point Of No Return
Das
möchte
ich!
17. 17
„Eine Schlacht wird in der Planung gewonnen,
nicht erst auf dem Feld.“
Und das bedeutet viel Detailarbeit.
18. 18 Planung
n Neue Hardware kaufen?
n Neues OS kaufen?
n … SQL Server 2012 kaufen?
n Welche Anwendungen/Systeme/User sind betroffen?
n Was ist besonders business critical? (Testaufwand)
n Werden alle Anwendungen vom Hersteller
auf SQL2012 supported?
n Benötigen irgendwelche Datenbanken irgendwelche oder
gar nicht mehr vorhandene Kompatibilitätslevel (z.B.
SQL2K)?
n Maximale Downtime?
19. 19 Planung
n Virtualisierung?
n Konsolidierung?
n OS
p Neues OS (Win2008R2 / Windows 2012)?
p x86 -> x64?
p OS Konfiguration
Performance-Einstellungen, Sicherheit (Benutzer,
Gruppen, Gruppen Richtlinien,…)
p Virenscanner – funktioniert der alte noch?
p SQL Server Dienstkontoprivilegien
20. 20 Planung
n Physikalisches Design (Storage)
n SQL Server Konfiguration
n Anwendungskonnektivität
p Alter Clustername = Neuer Clustername?
bzw. alter SQLServerName = Neuer SQLServerName?
p DNS-Alias?
n Für Freigaben ggf. „DisableStrictNameChecking“ in Registry?
(Im Win2k08-Cluster – Das geht so nicht mehr…)
n Wie gesagt, …Detailarbeit
22. 22 SQL Server Installation
n Auf richtige Server Collation achten, relevant für tempdb
(siehe http://www.collation-charts.org/mssql/)
n Auf Trace Flags achten
die Einen gibt es nicht mehr (z.B. 4116),
die Anderen braucht man vielleicht noch (z.B. 1118)
n Grundsätzlich auf alle bisher vorhandenen Serverobjekte achten, die in master
oder msdb leben
(Linked Server, Endpunkte, XEvents (neu machen!), Jobs,
Alerts,…)
n Resource Governor (Wohl dem, der Skripte hat)
n Und wer keine Doku hat, der dokumentiert jetzt
23. Migrationsgedanken
Client
Anbindung
/
Datenbanken
User
/
Logins
sp_configure
Anwendungen
Schni[stellen
Compa+bility
Monitoring
(Filestream)
Replika+on
Server
Colla+on
Level
Tools
Shares
(ist
und
hat)
Wartung
SQL
Server
200x
Linked
Server
mit
x
ε
{5,
8,
8R2}
Virenscanner
Trace
Flags
Lokale
WIN
Security
SQL
Server
2012
Repor+ng
Endpoints,
Snapshots
Konzept
f.a.k.a.
„Denali“
Services
User/Groups
Powershell,
Xevents
Recovery
Neue
Neues
Integra+on
Konzept
Services
Jobs
Box(en)?
OS?
XPs
/
DLLs
Ausfall
Neue
Analysis
Firewall?
Konzept
Storage?
Services
Alerts
SPs
(master)
Resource
Policy
Based
Mail
Group
Policies
CLRs
Governor
Management
Migra+onskonzept
/
Methoden
/
Projektplan
24. 24 Datenbanken
n Funktionieren die Stored Procedures, Views und
Funktionen noch ?
n Funktioniert die Applikation (der Anwendungscode) noch ?
n Und all das andere…?
25. 25 Datenbanken
Vorher bitte lesen:
Deprecated Features in SQL Server 2012
http://msdn.microsoft.com/en-us/library/ms143729(v=sql.110).aspx
Man nehme:
SQL Server 2012 Upgrade Advisor
Man gebe:
Dem Upgrade Advisor einen Server Trace (Replay
template), um den Anwendungscode zu checken
26. 26 Datenbanken
Optionen die Migration durchzuführen
p Backup/Restore (Full/Diff/Log)
p Replikation
p Database Copy (Dateisystem oder Objekte)
p SAN detach/attach (point of no return)
p HW-basierter SAN Mirror-Snapshot
p „Manuelles Log Shipping“
n Nach Go-offline die letzten Transaktionslogbackups restaurieren
n Wenige Minuten Ausfallzeit
p Datenbankspiegelung?
n Ausfallzeit nur wenige Sekunden!
n Spiegelung allerdings nur One Way von Alt nach Neu
27. 27 Datenbanken
n Was ist noch zu beachten
p Compatibility Level
p SQL Server 2000 Datenbanken müssen erst nach
SQL2005/2008 angepasst und migriert werden
Compatibility Level >= SQL2005!
p CLRs testen, in SQL Server enablen
n Ablauf (Bei Migrationsmethode DB – Mirroring)
p Spiegelung einrichten (Principal >=SQL2005)
Zum Migrationszeitpunkt FAILOVER zu SQL Server 2012
p Witness hat (in CTP3) keine Wirkung
(Principal weg, Mirror geht nicht online… Bug oder Feature?)
p Spiegelung auf SQL Server 2012 entfernen
p Alle Clients irgendwie umleiten
Ich würde die Backup / Restore Methode bevorzugen
29. Datenbanken
n Logins sollten vorbereitet werden
p Lokale Windows Groups und User nicht vergessen
p Problem: „Default Database“
n Datenbank (zur Not namensgleiche DummyDB)
muss auf Zielserver vorhanden sein
n Restore-Sync für Mirror mit „replace“ wg. dbid
n Alles, was irgendwie zu den
Datenbank-Anwendungen gehört,
sollte auch vorbereitet werden
(XPs, master-SPs, Jobs, Linked Server, Fileshares, CLR-enabled,…)
30. Logins
Problem:
n User-SIDs in (migrierten) Datenbanken referenzieren Login-SID
n Kein Problem für Domain-Accounts (Domain-SID)
n Für SQL Server authentifizierte Logins muss Login-SID und DBUser-SID auf
dem neuen Server identisch sein, sonst verwaiste User
n Ratsam: Vor der Migration auf dem Quellsystem bereits verwaiste User
recherchieren und ggf. säubern (drop user)
30
31. Logins
Verwaiste User erkennen mit
http://msdn.microsoft.com/de-de/library/ms174378.aspx
USE
<database_name>;
GO;
sp_change_users_login
@Action='Report';
GO;
Besser:
Erst
gar
keine
verwaisten
User
auoommen
lassen.
33. Logins
n Create
Login
Script erzeugen aus:
select
*
from
sys.server_principals
select
*
from
sys.syslogins
n sp_help_revlogin
http://support.microsoft.com/kb/246133
n Angepasstes von Alex Jahn verwenden (für einzelne Datenbanken)
34. Logins
n Bitte nicht alle Logins übernehmen !
(…)
WHERE
p.name
not
in
(
'sa',
'##MS_SQLResourceSigningCertificate##',
'##MS_SQLReplicationSigningCertificate##',
'##MS_SQLAuthenticatorCertificate##',
'VORDEFINIERTAdministratoren',
'NT-‐AUTORITÄTSYSTEM',
'SQL2005SQLServer2005MSSQLUser$SQL2005$MSSQLSERVER',
'SQL2005SQLServer2005SQLAgentUser$SQL2005$MSSQLSERVER',
'SQL2005SQLServer2005MSFTEUser$SQL2005$MSSQLSERVER',
'##MS_AgentSigningCertificate##',
'SQLDOMsqlservice
)
35. Logins
Vorher:
n evtl. Windows local Groups / User anlegen
n Kann man auch Skript schreiben:
p Net user <user> <pwd> /add
p Net localgroup <group> /add
p Net localgroup <group> <user1 user2 … user(n)> /add
36. Anwendungen
n Unterstützt der Hersteller SQL Server 2012?
n Funktioniert die Konnektivität?
n Funktionieren die Anwendungsserver noch?
(neue JDBC-Treiber….?)
n Funktioniert der Code wie gewohnt?
Tipp:
SQL Server Upgrade Assistant
http://www.scalabilityexperts.com/tools/downloads.html
Vergleicht Ausführung und Ergebnisse von Quell- und Zielserver
basierend auf Profiler / Trace API
37. Schluss
n Eine Migration kann beliebig komplex sein
n Meine Empfehlung: Umzug auf neuen Server
n Gute Dokumentation ist notwendige Voraussetzung
n Es gibt viele hilfreiche Werkzeuge
n Testen, testen, testen! (SQLIO)
n Performance nicht vergessen
38. Lesen
n Upgrade to SQL Server 2012
http://msdn.microsoft.com/en-us/library/bb677622(v=sql.110).aspx
n SQL Server 2012 What‘s New White-Paper
http://www.microsoft.com/sqlserver/en/us/future-editions.aspx
n Deprecated Database Engine Features in SQL
Server 2012
http://technet.microsoft.com/en-us/library/ms143729(SQL.110).aspx
p SQL Server Upgrade Assistant
http://www.scalabilityexperts.com/tools/downloads.html
39. 39
Vielen Dank für Ihre Aufmerksamkeit !
Fragen ?