28. december 2001 - 19:05Der er
6 kommentarer og 1 løsning
backup af DB til fil og restore på en anden MSSQL-Server (fra fil)
Hej Er der nogen der kender en workaround til nedenstående problem ?
Jeg har installeret (på min Win2K maskine) en MS-SQL Server Enterprise Manager (MicroSoft Management Console Manager 1.2,version 5.0, Build 2195 Servicepack 2 )
Her har jeg registreret dels en local SQL server (S1), og dels en anden SQL server (S2) fra netværket. Der findes nu en database på S2, som jeg gerne vil have en kopi af over på S1. Det skal foregå via filer, da jeg er igang med at teste, at jeg kan \'håndbære\' en database over på en vilkårlig SQL Server.
Fra S2 vælger jeg All Tasks, Backup af databasen, og vælger backup til device, og lægger det i en passende fil. Denne fil lægger jeg derefter lokalt på min maskine. Fra S1 i Enterprise Manageren stiller jeg mig nu på den lokale SQL server (S1) og vælger Restore database fra device, og udpeger filen. Dette giver nedenstående fejl: *************** Server: Msg 3624, Level 20, State 1, Line 1 Location: upgraddb.cpp:214 Expression: tableIndex < ARRAY_LEN (upgradeMap) SPID: 10 Process ID: 784 Connection Broken *****************
Jeg har nu forsøgt mange forskellige angrebsvinkler: Opret en ny tom database, og restore fra fil... Restore direkte fra fil... Brug kommandolinien i Query Analyzer, og anvende .bak filer i kommandoen RESTORE DATABASE RING FROM DISK = \'c:\\AS2002\\RING.bak\' sætningen parser OK, men afvikles med ovenstående fejl igen.....
Jeg har også forsøgt mig med DUMP og LOAD istedet for BACKUP og RESTORE, men det virker heller ikke.
Har jeg et kompatibilitets problem mellem de to SQL servere ? eller .....
Forsøg dig i stedet med Deatach og Attach af databasen dette er en nemmere og mere sikker måde at flytte/kopiere en database på.
Du kan bruge sp_detach_db og sp_attach_db eller gøre det via Enterprise Manager (2000 only).
Når du har deatached databasen, kan du flytte datafilerne til en anden server, og der lave en attach. Søh evt. i Books Online efter sp_detach_db/sp_attach_db
og får følgende fejl: Server: Msg 5172, Level 16, State 15, Line 1 The header for file \'c:\\MSSQL7\\Data\\RING.mdf\' is not a valid database file header. The PageAudit property is incorrect. **************************
Såvidt jeg kan se, er der her 2 problemer:
1) attach kommandoen er ikke tilgængelig fra Enterprise Manager, hvorfor ...?
2) fejlmeddelelsen fra EXEC sp_attach_db antyder at jeg forsøger at koble en MSSQL8 database på en MSSQL7 ... eller ?
på kommandoen SELECT @@VERSION får jeg følgende to svar:
fra Server S1: Microsoft SQL Server 7.00 - 7.00.623 (Intel X86) Nov 27 1998 22:20:07 Copyright (c) 1988-1998 Microsoft Corporation MSDE on Windows NT 5.0 (Build 2195: Service Pack 2)
fra Server S2: Microsoft SQL Server 2000 - 8.00.194 (Intel X86) Aug 6 2000 00:57:48 Copyright (c) 1988-2000 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 2)
..... så løsningen må vist være, at få installeret MSSQL Server 8 på Server S1 ?
1) Du kan ikke anvende attach før ver. 2000. Da du sikkert anvender Enterprise Manager på din 2000, kan du se kommandoen, men ikke anvende den, fordi den server du prøver at anvende den på er en 7.0.
2) Jeg mener der blev lavet en ændring i det interne format med SP 3 til 7.0, du kan evt. først prøve at køre SP 3 på din 7.0 inden du vælger at opgradere til 2000. Men når det er sagt, vil det jo sikkert være nemmere fremadrettet at have alt på samme version :-)
Jeg har opgraderet adskillige servere/databaser fra 7.0 til 2000 og jeg har endnu de første alvorlige problemer til gode.
Hvis du bruger FullText indexering skal du lige være lidt opmærksom når du opgraderer fra 7.0 til 2000. Der er ændret en del i sprogopsætningen hertil.
Ellers har jeg heller ikke oplevet problemer fra 7.0 til 2000. Jeg har tvært imod fået en masse nye muligheder.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.