22. maj 2003 - 14:47Der er
6 kommentarer og 1 løsning
Multi de-/attachment af DB i via Query Analyser
Jeg har en masse databaser (400), som skal kopieres fra en SQL server til en anden.
Det er mislykkedes ved brug af DTS, men har kunne detache en, kopiere .mdf og .ldf filen til den nye server og attachet den der og det virker.
Nu skal jeg så have lavet et script der gør det hele for mig.
Alle databaserne har navnformaet år-måned-dato. F.eks 2002-01-01 (1. jan) og 2002-06-01 (1. juni)
Det er ikke noget problem, at detache Databaserne. Dette gøres med følgende script..
DECLARE @DatabaseName sysname DECLARE DatabaseList CURSOR LOCAL FAST_FORWARD FOR Select name From master..sysdatabases Where name like '2002%'
Open DatabaseList While 1 = 1 Begin Fetch Next From DatabaseList Into @DatabaseName if @@fetch_status <> 0 break
EXEC sp_detach_db @DatabaseName, 'TRUE' End
Close DatabaseList
Deallocate DatabaseList
Det skulle vel være muligt, at detached en database. Bruge filsystemet og kopiere filer over på den anden server (har midlertidig share med skriverettigheder netop til dette formål) og attache dem på den nye server.
Det skal lige siges, at den gamle server skal have genattachet databaserne igen efterfølgende, så det er faktisk én detach, én kopieren og to attach jeg skal have lavet.
Det skal lige siges, at begge SQL servere har hver deres sa password.
Af en eller anden grund, så kan jeg ikke kopiere filerne fra et drev til et andet. Dvs jeg kan godt kopier dem lokalt, men lige så snart jeg skal ud på et netværksdrev, så skriver den access denied. Dette er selvom jeg er logget ind med domain admin kontoen og både file-permissions og share-permissions er sat til fuld control for domain admin, samt at drevet er mappet til X: på den server jeg sidder på.
Det er det. Det kan jeg nemlig godt. Jeg både prøvetg via \\server og jeg har også prøvet at lave et net use til share. Det virker fint nok i dos, men bare ikke i SQL. Jeg fatter det ikke.
Ja det lyder lidt sært! Men noglegange kan SQLserveren godt rode lidt rundt i permission i filesystemet. Måske du skulle genstarte sql-servicen efter de nye shares og rettigheder er oprettet.
Men du kunne jo klare det ved først at kopiere dem over på et lokalt drev, så ligger de alle da samlet og bagefter kopiere dem manuelt evt. via dosprompten :O)
Problemet ligger i, at informationerne om filnavn m.m. bliver slettet fra sysdatabasen på serveren når man detacher dem. Når jeg så skal attache dem igen, så skal jeg huske på navnet. Det er også fint med 1-2 databaser, men vi taller om 507 i dag. Jeg har god fundet en løsning i dag, så jeg kommer uden om master..sysdatabase. Derved kan jeg via en anden database hente navnene ind igen og attace dem igen når jeg har fået dem kopieret.
Tror jeg helt glemmer, at prøve at kopiere dem via scriptet. Må gøre det sure arbejde og lave en sikkerheds kopi af DB'erne og attache dem igen efterfølgende... dette er kun en engangs operation heldigvis ;o)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.