Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[MSSQL] Zmiana katalogu dla baz danych.

2,084 views
Skip to first unread message

Tom

unread,
Apr 21, 2008, 8:55:38 AM4/21/08
to
Cześć
Muszę przenieść bazy z jednego dysku na drugi do innego katalogu (MSSQL
2000).

Czy mógłby ktoś powiedzieć mi w jakiej kolejności to rozegrać?

Oto moja propozycja, ale chyba niezbyt dobra, bo właśnie zauważylem, że
dokonałem backupu bazy master a potem go odtworzyłem (czyli nic mi to nie
dało)


1. Zrobienie backupu WSZYSTKICH baz

2. Zatrzymanie serwera

3. Przegranie z jednej lokaliozacji do drugiej

5. Uruchomienie SQL Servera w trybie single-user: sqlserv -m

6. W SQL Query Analyserze:
restore database master from disk = 'R:\Backup\master.bak'

7. Zatrztymanie serwera

8. Uruchamiamy serwer w trybie bez serwisów: sqlservr.exe -c

9. W SQL Query Analyserze:
restore database msdb from disk = 'R:\Backup\msdb.bak'

10. A potem Detachowanie baz i attachowanie ich w innej lokalizacji


Gdzieś sie w tym wszystkim pogubiłem.
Jak więc mam dokonać zmiany katalogu?


Darek

unread,
Apr 21, 2008, 10:23:48 AM4/21/08
to
Tom pisze:

> Cześć
> Muszę przenieść bazy z jednego dysku na drugi do innego katalogu (MSSQL
> 2000).
>
> Czy mógłby ktoś powiedzieć mi w jakiej kolejności to rozegrać?
>
> Oto moja propozycja, ale chyba niezbyt dobra, bo właśnie zauważylem, że
> dokonałem backupu bazy master a potem go odtworzyłem (czyli nic mi to nie
> dało)
>
>
> 1. Zrobienie backupu WSZYSTKICH baz
>
> 2. Zatrzymanie serwera
>
> 3. Przegranie z jednej lokaliozacji do drugiej
>
> 5. Uruchomienie SQL Servera w trybie single-user: sqlserv -m
>
> 6. W SQL Query Analyserze:
> restore database master from disk = 'R:\Backup\master.bak'
>
Wydaje mi sie ze musisz dodac WITH REPLACE i MOVE w przeciwnym wypadku
odtworzy sie w tym samym miejscu.

> 7. Zatrztymanie serwera


>
>
> 9. W SQL Query Analyserze:
> restore database msdb from disk = 'R:\Backup\msdb.bak'
>

Tutaj tak samo.


--
Pozdrawiam
Darek
http://www.ostolski.com/
SQL Server, .NET, C++, Pyhton i wiele więcej

Tom

unread,
Apr 22, 2008, 5:29:21 AM4/22/08
to
Użytkownik "Darek" <chq_at...@spam.pl> napisał w wiadomości
news:fui822$7n6$1...@inews.gazeta.pl...

> Wydaje mi sie ze musisz dodac WITH REPLACE i MOVE w przeciwnym wypadku
> odtworzy sie w tym samym miejscu.

OK. Mam takie pliki:
R:\Backup\master.bak - zbackupowana baza master (Full backup)
C:\Program Files\Microsoft SQL Server\Dane\MSSQL\Data\master.mdf - w tym
pliku ma wylądować baza master (czyli miejsce docelowe)
C:\Program Files\Microsoft SQL Server\Dane\MSSQL\Data\mastlog.ldf -
docelowe miejsce logu transakcyjnego


Zrobiłem zatem takie zapytanie:


RESTORE DATABASE master FROM disk ='R:\Backup\master.bak'
WITH MOVE 'master' TO 'C:\Program Files\Microsoft SQL
Server\Dane\MSSQL\Data\master.mdf',
MOVE 'mastlog' TO 'C:\Program Files\Microsoft SQL
Server\Dane\MSSQL\Data\mastlog.ldf',
REPLACE
go


I dostaję odpowiedź:
Server: Msg 3179, Level 16, State 1, Line 1
The system database cannot be moved by RESTORE.
Server: Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.


Co to może być?


Darek

unread,
Apr 22, 2008, 8:16:09 AM4/22/08
to
Tom pisze:

> OK. Mam takie pliki:
> R:\Backup\master.bak - zbackupowana baza master (Full backup)
> C:\Program Files\Microsoft SQL Server\Dane\MSSQL\Data\master.mdf - w tym
> pliku ma wylądować baza master (czyli miejsce docelowe)
> C:\Program Files\Microsoft SQL Server\Dane\MSSQL\Data\mastlog.ldf -
> docelowe miejsce logu transakcyjnego
>
>
> Zrobiłem zatem takie zapytanie:
>
>
> RESTORE DATABASE master FROM disk ='R:\Backup\master.bak'
> WITH MOVE 'master' TO 'C:\Program Files\Microsoft SQL
> Server\Dane\MSSQL\Data\master.mdf',
> MOVE 'mastlog' TO 'C:\Program Files\Microsoft SQL
> Server\Dane\MSSQL\Data\mastlog.ldf',
> REPLACE
> go
>
>

A czy probowales tego w trybie Single?

Znalazlem cos takiego:

http://www.lazydba.com/sql/1__13294.html

Niestety nie mialem czasu przecwiczyc.

Grzegorz Danowski

unread,
Apr 22, 2008, 8:23:54 AM4/22/08
to
Użytkownik "Tom" <no_...@com.pl> napisał w wiadomości
news:fui2sa$b63$1...@inews.gazeta.pl...

> Muszę przenieść bazy z jednego dysku na drugi do innego katalogu (MSSQL
> 2000).
>
> Czy mógłby ktoś powiedzieć mi w jakiej kolejności to rozegrać?

A może
1. detach wszystkich baz użytkownika,
2. przeniesienie plików,
3. attach poprzednio odłączonych baz.

Choć dodatkowy backup na pewno nie zaszkodzi :).
Pozdrawiam
Grzegorz


Tom

unread,
Apr 23, 2008, 3:56:43 AM4/23/08
to
Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał w
wiadomości news:fuklct$kke$1...@absolut.sgh.waw.pl...

> A może
> 1. detach wszystkich baz użytkownika,
> 2. przeniesienie plików,
> 3. attach poprzednio odłączonych baz.

OK, ale co z bazą master?


Grzegorz Danowski

unread,
Apr 23, 2008, 4:03:17 AM4/23/08
to
Użytkownik "Tom" <no_...@com.pl> napisał w wiadomości
news:fumq3s$pa3$1...@inews.gazeta.pl...

>> A może
>> 1. detach wszystkich baz użytkownika,

> OK, ale co z bazą master?

Sorki, nie doczytałem Twojego posta.
G.


Robert Winkler

unread,
Apr 23, 2008, 5:37:33 AM4/23/08
to
>> A może
>> 1. detach wszystkich baz użytkownika,
>> 2. przeniesienie plików,
>> 3. attach poprzednio odłączonych baz.
>
>
>
> OK, ale co z bazą master?

Witaj

Informacja o lokalizacji bazy master (danych i transaction loga), oraz pliku
logów
przekazywana jest do serwisu SQL serwera w postaci parametrów startowych
serwisu.
Spróbuj więc wyłączyć serwis, przenieść baze master
a nastepnie w Enterprise Managerze, we własciwościach serwera,
na pierwszej zakładce (General) wybierz "Startup Parameters ..."
zmień następnie ścieżke do plików bazy master, oraz ewentualnie dla pliku z
errorlogiem.
Po ponownym uruchomieniu, serwer powinien korzystać z bazy master
umieszczonej w nowym katalogu.

___________
Robert Winkler

Tom

unread,
Apr 24, 2008, 5:29:33 AM4/24/08
to
Użytkownik "Robert Winkler" <win...@NOSPAMpoczta.fm> napisał w wiadomości
news:fumvvo$pbv$1...@atlantis.news.neostrada.pl...

> Informacja o lokalizacji bazy master (danych i transaction loga), oraz
> pliku logów
> przekazywana jest do serwisu SQL serwera w postaci parametrów startowych
> serwisu.


No dokładnie!
Dzięki wszystkim - okazało się, że procedura, którą posługwałem się
dotyczyła MSSQLa 7.0 (u mnie śmija 2000)
Tak więc dla potomnych informuję, że pod 2000 i 2005 opisana jest tu:
http://support.microsoft.com/kb/224071/pl

Była tam między innymi opisana przez ciebie zmiana parametrów startowych
ścieżki do bazy masier.

Thanx :)


0 new messages