Avatar billede soda Nybegynder
22. maj 2003 - 14:47 Der 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.

Nogen der kan hjælpe mig her ?
Avatar billede janus_007 Nybegynder
22. maj 2003 - 15:47 #1
Enten kan du bruge DTS til at flytte filerne med efter at du har kørt din kode, eller du kan implementere flg. i det ovenstående du har lavet:

USE master
EXEC xp_cmdshell 'copy c:\mssql\mydb.mdf \\newserver\programs\mssql',
  NO_OUTPUT


Jeg formoder du også selv kan lave selve attach som en funktion :O)
Avatar billede soda Nybegynder
22. maj 2003 - 16:19 #2
Yes yes. Jeg kigger på det i morgen og virker skidtet ;o), så får du point for svaret. Ser meget lige til ud.
Avatar billede soda Nybegynder
23. maj 2003 - 12:49 #3
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å.
Avatar billede janus_007 Nybegynder
23. maj 2003 - 13:01 #4
prøv at foretage en test kopiering direkte i dosprompten !!
Avatar billede soda Nybegynder
23. maj 2003 - 14:32 #5
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.
Avatar billede janus_007 Nybegynder
23. maj 2003 - 14:45 #6
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)
Avatar billede soda Nybegynder
23. maj 2003 - 16:36 #7
Jeg har genstartet den.

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)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester