none
Upgrade von SQL Server 2000 nach SQL Server 2005 RRS feed

  • Frage

  • Hallo,

    ich möchte eine SQL-Server 2000 Instanz auf den SQL-Server 2005 bzw. 2008 upgraden.

    Was muß ich tun? Hättet ihr eine Anleitung?

    Danke Michael

     

     

    Donnerstag, 1. Juli 2010 07:52

Antworten

  • Hallo Michael,

    siehe z.B. Upgrade auf SQL Server 2005 und SQL Server 2005 Upgrade Handbook.

    Grundsätzlich gibt es zwei Migrationswege: Side-by-Side und die InPlace Migration.
    Aus meiner sicht läuft die InPlace Migration am einfachsten. Man installiert einfach den MS SQL Server 2005/2008, wählt dabei die vorhandene Instanz aus und die wird dann auf die neue Version aktualisiert. Anschließend muss man nur den CompLevel der Datenbanken ändern und Indizes & Statistiken aktualisieren, siehe auch Migration MS SQL Server 2000 => 2005.

    Bei der Side-By-Side installiert man eine parallele Instanz oder eine auf einem anderen Rechner, überträgt z.B. per SSIS die Anmeldungen und nachher dann per detach/attach die Datenbanken.

    Beides hat seine entsprechenden Down-Zeiten, da musst Du sehen, wie lange es maximal sein darf und welche Methode am besten für Dich ist.

    Vorher solltest Du Deine MS SQL Server 2000 Datenbanken mit dem Microsoft SQL Server 2005 Upgrade Advisor bzw. Microsoft SQL Server 2008 Upgrade Advisor überprüfen lassen, ob sie den reibungsfrei migriert werden können oder ob Du vorher noch Probleme beheben musst.

     


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Donnerstag, 1. Juli 2010 08:34
  • Hallo Michael,

    Ich empfehle Dir: Aktualisiere gleich auf SQL Server 2008 (R2) ,
    denn 2005 (das Jahr sagt es) schon ist nicht mehr der frischeste.

    Vor der Aktualisierung solltest Du den Updateratgeber laufen lassen:
    Verwenden des Updateratgebers zur Vorbereitung auf Aktualisierungen
    um möglich Probleme vorab zu beseitigen.
    Was zu dem zu beachten ist findest Du unter
    Überlegungen zum Aktualisieren des Datenbankmoduls

    Wenn das alles paßt erledigt der Setup den Rest (mit etwas Glück ;-)
    Schnellstart-Installation von SQL Server 2008 R2

    Solltest Du Dich für SQL Server 2008 (ohne R2)
    entscheiden ist die Installation von Service Pack 1 Pflicht -
    Und bei SQL Server 2005 von Service Pack 3.
    Das Vorgehen ist aber auch dort entsprechend.

    Gruß Elmar

    Donnerstag, 1. Juli 2010 08:42
    Beantworter
  • Hallo Michael, ergänzend noch ein Template, was ich zur Umstellung benutze. Schau es Dir mal an und ändere es auf Deine Belange ab!

    -- Sicherung der alten Datenbank auf dem alten Server erstellen
    backup database <MeineDatenbank>
     to disk =
    '\\<MeinServer>\f$\MSSQL10.MSSQLSERVER\MSSQL\Backup\<MeineDatenbank>_<Tagesdatum>.bak'
    
    --- ab hier auf dem neuen Server <MeinServer> anmelden !!
    restore database <MeineDatenbank>
     from disk =
    '\\<MeinServer>\f$\MSSQL10.MSSQLSERVER\MSSQL\Backup\<MeineDatenbank>_<Tagesdatum>.bak'
     with
     move '<MeineDatenbank>_Data' to
    'd:\MSSQL10.MSSQLSERVER\MSSQL\Data\<MeineDatenbank>_Data.MDF',
     move '<MeineDatenbank>_Log' to
    'e:\MSSQL10.MSSQLSERVER\MSSQL\Data\<MeineDatenbank>_Log.LDF'
    
    exec sp_dbcmptlevel <MeineDatenbank>, 100;
    
    use <MeineDatenbank>
    go
    exec sp_changedbowner '<meineDomäne>\<meinKonto>';
    
    ALTER DATABASE <MeineDatenbank> SET PAGE_VERIFY CHECKSUM  WITH NO_WAIT;
    ALTER DATABASE <MeineDatenbank> COLLATE Latin1_General_CI_AS;
    
    exec sp_updatestats;
    dbcc updateusage ('<MeineDatenbank>');
    go
    
    -- Logins anlegen
    <Skript selber erstellen>
    
    -- gibt es verwaiste Benutzer
    use <MeineDatenbank>
    exec sp_change_users_login 'report'
    
    exec sp_change_users_login 'Update_One','<user>','<login>';
    
    --
    -- Schemata gerade ziehen (Skript erzeugen und manuell ausführen)
    --
    select 'ALTER USER [' + SCHEMA_OWNER+'] WITH DEFAULT_SCHEMA=[dbo];'
    from INFORMATION_SCHEMA.SCHEMATA
    where SCHEMA_NAME not in ('dbo','guest', 'INFORMATION_SCHEMA', 'sys')
    and SCHEMA_NAME not like 'db_%'
    order by schema_name;
    
    select 'DROP SCHEMA [' + SCHEMA_OWNER+'];'
    from INFORMATION_SCHEMA.SCHEMATA
    where SCHEMA_NAME not in ('dbo','guest', 'INFORMATION_SCHEMA', 'sys')
    and SCHEMA_NAME not like 'db_%'
    order by schema_name;
    go
    
    -- Recovery-Modell umschalten und Sicherung anstossen
    USE [master]
    GO
    ALTER DATABASE [<MeineDatenbank>] SET RECOVERY FULL WITH NO_WAIT
    
    BACKUP DATABASE <MeineDatenbank> TO  DISK =
    'f:\MSSQL10.MSSQLSERVER\MSSQL\Backup\<MeineDatenbank>_<Tagesdatum>a.BAK'
    WITH NOFORMAT, NOINIT,  SKIP, NOREWIND, NOUNLOAD,  STATS = 10;

    Einen schönen Tag noch,
    Christoph


    Microsoft SQL Server MVP
    http://www.insidesql.org

    Donnerstag, 1. Juli 2010 12:23

Alle Antworten

  • Hallo Michael,

    siehe z.B. Upgrade auf SQL Server 2005 und SQL Server 2005 Upgrade Handbook.

    Grundsätzlich gibt es zwei Migrationswege: Side-by-Side und die InPlace Migration.
    Aus meiner sicht läuft die InPlace Migration am einfachsten. Man installiert einfach den MS SQL Server 2005/2008, wählt dabei die vorhandene Instanz aus und die wird dann auf die neue Version aktualisiert. Anschließend muss man nur den CompLevel der Datenbanken ändern und Indizes & Statistiken aktualisieren, siehe auch Migration MS SQL Server 2000 => 2005.

    Bei der Side-By-Side installiert man eine parallele Instanz oder eine auf einem anderen Rechner, überträgt z.B. per SSIS die Anmeldungen und nachher dann per detach/attach die Datenbanken.

    Beides hat seine entsprechenden Down-Zeiten, da musst Du sehen, wie lange es maximal sein darf und welche Methode am besten für Dich ist.

    Vorher solltest Du Deine MS SQL Server 2000 Datenbanken mit dem Microsoft SQL Server 2005 Upgrade Advisor bzw. Microsoft SQL Server 2008 Upgrade Advisor überprüfen lassen, ob sie den reibungsfrei migriert werden können oder ob Du vorher noch Probleme beheben musst.

     


    Olaf Helper ----------- * cogito ergo sum * errare humanum est * quote erat demonstrandum * Wenn ich denke, ist das ein Fehler und das beweise ich täglich http://olafhelper.over-blog.de
    Donnerstag, 1. Juli 2010 08:34
  • Hallo Michael,

    Ich empfehle Dir: Aktualisiere gleich auf SQL Server 2008 (R2) ,
    denn 2005 (das Jahr sagt es) schon ist nicht mehr der frischeste.

    Vor der Aktualisierung solltest Du den Updateratgeber laufen lassen:
    Verwenden des Updateratgebers zur Vorbereitung auf Aktualisierungen
    um möglich Probleme vorab zu beseitigen.
    Was zu dem zu beachten ist findest Du unter
    Überlegungen zum Aktualisieren des Datenbankmoduls

    Wenn das alles paßt erledigt der Setup den Rest (mit etwas Glück ;-)
    Schnellstart-Installation von SQL Server 2008 R2

    Solltest Du Dich für SQL Server 2008 (ohne R2)
    entscheiden ist die Installation von Service Pack 1 Pflicht -
    Und bei SQL Server 2005 von Service Pack 3.
    Das Vorgehen ist aber auch dort entsprechend.

    Gruß Elmar

    Donnerstag, 1. Juli 2010 08:42
    Beantworter
  • Hallo Michael, ergänzend noch ein Template, was ich zur Umstellung benutze. Schau es Dir mal an und ändere es auf Deine Belange ab!

    -- Sicherung der alten Datenbank auf dem alten Server erstellen
    backup database <MeineDatenbank>
     to disk =
    '\\<MeinServer>\f$\MSSQL10.MSSQLSERVER\MSSQL\Backup\<MeineDatenbank>_<Tagesdatum>.bak'
    
    --- ab hier auf dem neuen Server <MeinServer> anmelden !!
    restore database <MeineDatenbank>
     from disk =
    '\\<MeinServer>\f$\MSSQL10.MSSQLSERVER\MSSQL\Backup\<MeineDatenbank>_<Tagesdatum>.bak'
     with
     move '<MeineDatenbank>_Data' to
    'd:\MSSQL10.MSSQLSERVER\MSSQL\Data\<MeineDatenbank>_Data.MDF',
     move '<MeineDatenbank>_Log' to
    'e:\MSSQL10.MSSQLSERVER\MSSQL\Data\<MeineDatenbank>_Log.LDF'
    
    exec sp_dbcmptlevel <MeineDatenbank>, 100;
    
    use <MeineDatenbank>
    go
    exec sp_changedbowner '<meineDomäne>\<meinKonto>';
    
    ALTER DATABASE <MeineDatenbank> SET PAGE_VERIFY CHECKSUM  WITH NO_WAIT;
    ALTER DATABASE <MeineDatenbank> COLLATE Latin1_General_CI_AS;
    
    exec sp_updatestats;
    dbcc updateusage ('<MeineDatenbank>');
    go
    
    -- Logins anlegen
    <Skript selber erstellen>
    
    -- gibt es verwaiste Benutzer
    use <MeineDatenbank>
    exec sp_change_users_login 'report'
    
    exec sp_change_users_login 'Update_One','<user>','<login>';
    
    --
    -- Schemata gerade ziehen (Skript erzeugen und manuell ausführen)
    --
    select 'ALTER USER [' + SCHEMA_OWNER+'] WITH DEFAULT_SCHEMA=[dbo];'
    from INFORMATION_SCHEMA.SCHEMATA
    where SCHEMA_NAME not in ('dbo','guest', 'INFORMATION_SCHEMA', 'sys')
    and SCHEMA_NAME not like 'db_%'
    order by schema_name;
    
    select 'DROP SCHEMA [' + SCHEMA_OWNER+'];'
    from INFORMATION_SCHEMA.SCHEMATA
    where SCHEMA_NAME not in ('dbo','guest', 'INFORMATION_SCHEMA', 'sys')
    and SCHEMA_NAME not like 'db_%'
    order by schema_name;
    go
    
    -- Recovery-Modell umschalten und Sicherung anstossen
    USE [master]
    GO
    ALTER DATABASE [<MeineDatenbank>] SET RECOVERY FULL WITH NO_WAIT
    
    BACKUP DATABASE <MeineDatenbank> TO  DISK =
    'f:\MSSQL10.MSSQLSERVER\MSSQL\Backup\<MeineDatenbank>_<Tagesdatum>a.BAK'
    WITH NOFORMAT, NOINIT,  SKIP, NOREWIND, NOUNLOAD,  STATS = 10;

    Einen schönen Tag noch,
    Christoph


    Microsoft SQL Server MVP
    http://www.insidesql.org

    Donnerstag, 1. Juli 2010 12:23