none
SQL 2008 -> SQL 2012 RRS feed

  • Frage

  • Hallo,

    in einer Blog Seite von Olaf Helper fand ich ein Script das damals beim Upgrade von SQL 2000 auf SQL 2005 auszufühlen sei.

    Gibt es etwas vergleichbares zu beachten beim Übergang von SQL 2008 auf SQL 2012 - oder kann man einfach ein Upgrade durchlaufen lassen und sofort weiterarbeiten?

    Danke!

    Thomas

    P.S. Hier der Blogeintrag:

    Also bei der Installation die vorhandene Instanz ausgewählt, installieren lassen, fertig … nach ja fast. Zum einen verbleiben die DBs in Kompatibilitätsmodus 80 = MS SQL Server 2000; wenn, dann wollen wir auch die neuen Features nutzen können, also muss das umgestellt werden (nur die „master“ wird automatisch umgestellt!).

    Microsoft empfiehlt nach der Migration auf jeden Fall

     die Statistiken

     die Datenplatzverwendung

    aktualisieren zu lassen. Ein CheckDB vorher & nachher schadet ebenfalls nicht.

    Für das alles zusammen habe ich mir ein kleines Script erstellt, das man auf der jeweiligen DB ausführt:

     

    -- Kompatibilitätsmodus auf 90 = SQL Server 2005 umsetzten
    
    DECLARE @DB sysname 
    
    SET @DB = (SELECT DB_NAME(DB_ID()))
    
    EXEC dbo.sp_dbcmptlevel @dbname=@DB, @new_cmptlevel=90
    
    -- Neue Option: Seitenüberwachung von "TORN_PAGE_DETECTION" 
    
    -- auf "Checksum" ändern; verbessert die Fehlererkennung
    
    DECLARE @SQL nvarchar(500)
    
    SET @SQL = N'ALTER DATABASE ' + @DB + ' SET PAGE_VERIFY CHECKSUM WITH NO_WAIT'
    
    EXEC sp_executesql @stmt = @SQL
    
     
    
    SET @SQL = N'ALTER DATABASE ' + @DB + ' SET PAGE_VERIFY CHECKSUM'
    
    EXEC sp_executesql @stmt = @SQL
    
    GO
    
    ----------------------------------------------------------------
    
    -- Index- und Größenstatistiken aktualisieren
    
    EXEC master..sp_updatestats @resample ='RESAMPLE'
    
    DBCC UPDATEUSAGE(0) WITH COUNT_ROWS
    
    GO
    
    -- Zum Schluß die DB überprüfen lassen; läuft am längsten
    
    DBCC CheckDB(0) WITH ALL_ERRORMSGS
    
    GO
    
    -- Abschließende Überprüfung: Alle DBs umgestellt?
    
    SELECT [name], compatibility_level, page_verify_option_desc
    
    FROM sys.databases
    
    ORDER BY [name]
    

     

    Genauso wird dann voraussichtlich die Migration MS SQL Server 2005 => 2008 ablaufen.


    • Bearbeitet shewanja Samstag, 22. Februar 2014 23:03
    Samstag, 22. Februar 2014 23:00

Antworten

  • Hallo,

    wie es der Zufall so will bin ich gerade an diesem Wochenende dabei unsere Datenbanken von SQL Server 2005 => 2012 zu migrieren  und ja, da nutze ich das gleiche Skript, außer das bei alle Datenbanken bereits "CHECKSUM" eingestellt ist und ich mir das sparen kann.

    Leider ist in dem Skript ein Bug, es darf nicht

    EXEC master..sp_updatestats @resample ='RESAMPLE'
    

    heißen, denn so werden immer nur die Statistiken in der "master" Datenbank aktualisiert, es muss

    EXEC sp_updatestats @resample ='RESAMPLE'
    

    sein, damit die Statistiken der aktuellen Datenbank aktualisiert werden.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert shewanja Sonntag, 23. Februar 2014 19:59
    • Tag als Antwort aufgehoben shewanja Sonntag, 23. Februar 2014 20:00
    • Als Antwort vorgeschlagen Stefan FalzModerator Montag, 24. Februar 2014 13:10
    • Als Antwort markiert shewanja Montag, 24. Februar 2014 13:16
    Sonntag, 23. Februar 2014 05:25
  • Denn eigentlich erstellt der SQL Server hier doch neue Datenbanken aus den Backupdateien – oder?

    Hallo Thomas,

    beim Restore wird eine neue Datei erstellt; aber durch den Restore ist der Inhalt zunächst 100% identisch zu zuvor. Gleich danach wird die Datenbank auf das neue Format migriert. Von daher, ja, ruhig die Statistiken neu erstellen lassen.

    Ein Grund zum Warten wäre z.B. das man Hekaton = In-Memory Engine oder aktualisierbare CSI = Column Store Index nutzen möchte, die es eben erst ab SQL Server 2014 gibt (geben wird).


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort vorgeschlagen Stefan FalzModerator Montag, 24. Februar 2014 13:10
    • Als Antwort markiert shewanja Montag, 24. Februar 2014 13:16
    Montag, 24. Februar 2014 07:36

Alle Antworten

  • Hallo,

    wie es der Zufall so will bin ich gerade an diesem Wochenende dabei unsere Datenbanken von SQL Server 2005 => 2012 zu migrieren  und ja, da nutze ich das gleiche Skript, außer das bei alle Datenbanken bereits "CHECKSUM" eingestellt ist und ich mir das sparen kann.

    Leider ist in dem Skript ein Bug, es darf nicht

    EXEC master..sp_updatestats @resample ='RESAMPLE'
    

    heißen, denn so werden immer nur die Statistiken in der "master" Datenbank aktualisiert, es muss

    EXEC sp_updatestats @resample ='RESAMPLE'
    

    sein, damit die Statistiken der aktuellen Datenbank aktualisiert werden.


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort markiert shewanja Sonntag, 23. Februar 2014 19:59
    • Tag als Antwort aufgehoben shewanja Sonntag, 23. Februar 2014 20:00
    • Als Antwort vorgeschlagen Stefan FalzModerator Montag, 24. Februar 2014 13:10
    • Als Antwort markiert shewanja Montag, 24. Februar 2014 13:16
    Sonntag, 23. Februar 2014 05:25
  • Hallo Olaf,

    ganz herzlichen Dank für deine Antwort hier ... ich würde mich freuen zu zwei weiteren Fragen deine Meinung zu hören:

    Mein Server zieht auch auf eine neue physikalische Maschine und üblicherweise mache ich dann auf dem alten Rechner mit SQL Management Studio die Backupdateien der SQL Datenbanken. Diese spiele ich dann auf dem neuen Server ein.

    Sollte man dann auch dein Script noch mal durchlaufen lassen? Denn eigentlich erstellt der SQL Server hier doch neue Datenbanken aus den Backupdateien – oder?

    Und zweites: kennst du einen Grund, warum man bei SQL 2008 R2 bleiben möchte und mit einem Upgrade lieber auf SQL 2014 wartet?

    Herzliche Grüße

    Thomas
    Sonntag, 23. Februar 2014 20:03
  • Denn eigentlich erstellt der SQL Server hier doch neue Datenbanken aus den Backupdateien – oder?

    Hallo Thomas,

    beim Restore wird eine neue Datei erstellt; aber durch den Restore ist der Inhalt zunächst 100% identisch zu zuvor. Gleich danach wird die Datenbank auf das neue Format migriert. Von daher, ja, ruhig die Statistiken neu erstellen lassen.

    Ein Grund zum Warten wäre z.B. das man Hekaton = In-Memory Engine oder aktualisierbare CSI = Column Store Index nutzen möchte, die es eben erst ab SQL Server 2014 gibt (geben wird).


    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    • Als Antwort vorgeschlagen Stefan FalzModerator Montag, 24. Februar 2014 13:10
    • Als Antwort markiert shewanja Montag, 24. Februar 2014 13:16
    Montag, 24. Februar 2014 07:36
  • Hallo Olaf,

    prima - und ganz herzlichen Dank nochmals :-)

    Das script habe ich mittlerweile auf einer Testmaschine durchlaufen lassen, das ging problemlos und die Datenbank war fehlerfrei - also wird das in Zukunft bei mir eingesetzt.

    Viele Grüße

    Thomas

    Montag, 24. Februar 2014 13:06