Scenarium

 Logg inn       Registrer
Abonner!

Som abonnenter kan du lese og laste ned alle artikkler. Tegn abonnement for full tilgang.Tre lengder å velge i mellom.

Les Mer...

Som abonnenter kan du lese og laste ned alle artikkler. Tegn abonnement for full tilgang.Tre lengder å velge i mellom.

Les Mer...

Regnskaps Angst

Privat post
Privat post
Du må være logget inn for å bruke denne tjenesten.
Artikler
Artikler

Siste artikler | Arkiv | Søk

Hvordan flytte data på en Windows Small Business Server 2003 - Del 2 - MS SQL Server 2000 databaser
Hvordan flytte data på en Windows Small Business Server 2003 - Del 2 - MS SQL Server 2000 databaser
By Dag Staale @ september 06, 2007 00:23 00:23 :: 1714 Visninger :: 0 Kommentarer :: Article Rating :: SQL Server 2000, Artikler for alle
Du kan ikke uten videre benytte sp_detach_db til å koble fra msdb databasen, for å flytte denne. Hvis du forsøker dette vil du få en feilmelding fra MS SQl Server 2000 som følger:
 
Msg 7940, Level 16, State 1, Server SBS01, Line 1
System databases master, model, msdb, and tempdb cannot be detached.
 
 
Figur 32 – Som vi ser, det nytter ikke å flytte msdb databasen på denne måten.
 
For å flytte msdb databasen må vi starte SQL Server med særskilte parametre slik at detach kan benyttes. Disse er –c valget, -m valget og trace flag 3608. Vi må derfor stoppe SQL Server, sette start parametrene og restarte SQL Server. Når SQL Server har restartet kan vi detache, flytte og attache denne databasen, og til slutt å fjerne start parametrene og restarte SQL Server.
 
ADVARSEL
 
  1. Når SQL Server er startet med overstående start parametre, så er SQL Server ikke tilgjenglig for brukere. Du må derfor ikke utføre andre operasjoner på databasene i SQL Server.
 
  1. Det er mulig å flytte MODEL og MSDB databasen samtidig. Hvis du velger å gjøre dette må du passe på å reattache MODEL databasen ført etter flyttingen. Deretter må SQL Server restartes uten start parametre –c –m –T3608. Deretter kan MSDB reattaches. Dersom du reattacher MSDB før MODEL vil du i gitte situasjoner  kunne oppleve at MSDB har overtatt rollen til MODEL. Du kan da forsøke å detache MSDB og attache MODEL, for så å attache MSDB på nytt. Hvis du definitivt ikke greier dette må SQL Server fra sikkerhetskopien din.
 
Hvordan registrere start parametrene –c, -m og trace flag 3608
Vi skal stille noen Binary Command Line Option for å kunne utføre flyttingen. Dette kan gjøres på flere vis. For eksempel gjennom SQL Server Enteprise Manager. Jeg synes dette er tungvint så vi skal gjøre dette i Services. Vi må jo starte og stoppe tjenesten i alle fall. Så vi kan likegodt sette SQL Server sart parametre der.
 
MS SQL Server 2000 – Binary Command Line Options
Option
Beskrivelse
-c
Ikke kjør som en service
-m
Start SQL Server i single user (admin) mode (aktuell for master database recovery)
T3608
Starter opp instansen og forhindrer SQL Server fra å foreta gjenoppretting av andre databaser foruten master.
Tabell 5Forklaring på noen SQL Server 2000 Binary Command Line Options.
 
 
 
Figur 33 – Klikk Start, All Programs, Administrativ Tools, og Services. Naviger til den aktuelle instansen, i mitt tilfelle MSSQLSERVER. Høyreklikk og velg Properties.
 
 
Figur 34 – Under fanen General, klikk på Stopp.
 
 
Figur 35 – Skriv Start Parameters –c –m –T3608. Klikk deretter Start.
 
 
Figur 36 – Legg merke til startup parametrene, etter at du klikket start. Klikk OK. La service vinduet stå åpent. Vi trenger dette etterpå.
 
 
Figur 37 – Vi kan sjekke hvordan MS SQL Server starter ved å starte SQL Server Enteprise Manager og navigere til Management, SQL Server Logs.
 
Hvordan finne lokaliseringen av MSDB databasen
Når vi skal flytte modell databasen må vi vite hvor den ligger. Dette kan vi finne ut ved å bruke OSQL kommandoer:
 
OSQL –E -q
use msdb
go
sp_helpfile
go
 
 
Figur 38 – For å starte et CMD vindu trykk Start, All Programs, Accessories, Command Promt. Vi ser her lokaliseringen av modell databasen og merker oss dette for det tidspunkt vi skal flytte data og log filene.
 
Hvordan detache model databasene før vi flytter filene?
Etter at vi har stilt startparametre og restartet SQL Server instansen, kan vi detache modell databasen. Ved å bruke de etterfølgende OSQl kommandoer.
 
TIPS
Pass på at SQL Server Agent ikke kjører!
 
OSQL –E -q
use master
go
sp_detach_db ‘msdb’
go
Exit
 
 
Figur 39 – Vi har nå koblet fra modell, og vi kan flytte data og log filene.
 
 
Figur 40 – Jeg kopierer filene over til sin nye katalog og sletter deretter de gamle. Men jeg venter jo selvfølgelig til jeg har startet SQL Server med de nye flyttede filene?
 
Hvordan attache databasen msdb etter flytting
Jeg tror dette begynner å gå greit nå og tar derfor dette ennå litt raskere, men først må vi fjerne startparametrene.
 
 
Figur 41 – Klikk Start, All Programs, Administrativ Tools, og Services. Naviger til den aktuelle instansen, i mitt tilfelle MSSQLSERVER. Høyreklikk og velg Properties. Høyreklikk den aktuelle SQL Server instansen og velg Properties. Stopp tjenesten og fjern eventuelle start parametre. Klikk Start når du er ferdig.
 
TIPS
Hvis du ikke fjerner startup parametrene (dvs restarter SQL Server uten start parametre –c –m –T3608) vil du kunne oppleve følgende feilmelding:
 
Server: Msg 615, Level 21, State 1, Line 1
Could not find database table ID 3, name ‘model’.
 
Når vi har restarted SQL Server uten start parameter, kan vi reattache MSDB med følgende kommandoer:
 
OSQL –E -q
use master
go
sp_attach_db ‘msdb’,‘F:\MSSQLServerDatafiler\msdbdata.mdf’, ‘F:\MSSQLServerDatafiler\msdblog.ldf’
go
Exit
 
 
Figur 42 – Attacher msdb databasen etter flytting.
 
TIPS
Legg merke til at databasen heter msdb, og filnavnene msdbdata.mdf og msdblog.ldf. Dette pr default.
 
TIPS
Dersom du flytter både MODEL og MSDB samtidig må du huske på å reattache MODEL først. Deretter må du restarte SQL Server uten nevnte startup parametre i denne hvodan artikkelen. Så må du reattache MSDB. Dersom du ikke gjør dette vil du kunne oppleve følgende feilmelding:
 
Msg 0, Level 11, State 0, Line 0
A server error occurred on the current command. The result, if any, should be discarded.
 
I så fall kan du forsøke å detache MSDB, for deretter å reattache MODEL. Deretter kan du reattache MSDB.
 
Det du videre vil kunne oppleve at når du reattacher MSDB så får du en feilmelding som følger:
 
Error 229: EXECUTE permission denied on object ‘ObjectName’, databse ‘master’, owner ‘dbo’.
 
I så falle har du en situsjaon hvor eierskapet til database er ødelagt eller brutt. Du må derfor reskapet eierskapet over msdb databasen. Dette kan du gjøre ved å bruke Transact-SQL kommandoer eller OSQL.
 
De aktuelle komandoer for å gjøre dette er:
 
use MSDB
go
EXEC sp_changedbowner ’sa’
go
 
Du kan finne noen tips om dette i min blogg her:
 
Du kan også finne tips her:
 
 
Figur 43 – Før jeg sletter de gamle filene sjekker jeg nå at SQL Server virkelig kjører på de flyttede filene. For å gjøre dette kjører jeg følgende kommandoer i et CMD vindu. Husk at det er to filer somskal sjekkes, ikke bare en som i figuren.
 
OSQL –E -q
use msdb
go
sp_helpfile
go
exit
 
 
Figur 44 – Glem nå ikke å slette de gamle filene.
 
Forrige | Neste |
Registrer rangering
Registrer kommentar

Navn (påkrevd)

E-post (påkrevd)

Websted

Enter the code shown above: