RSS

BackUp i Restore w MSSQL Server 2008

27 Kwi

W MS SQL Server 2008 dostajemy całkiem dobre narzędzia. Poza SQL Server Management Studio mamy jeszcze do dyspozycji SQLCMD na którym właśnie chciałbym się skupić i pokazać jak z poziomu konsoli można wykonać podstawowe zadania administracyjne, czyli backup&restore.

1. Backup ze skryptu w oddzielnym pliku, który sprawi że będziemy mogli przechowywać wszystkie kopie w jednym pliku :
Tworzymy plik na dysku c:, np c:\all-in-one.sql który będzie miał w środku :

BACKUP DATABASE [NaszaBaza] TO DISK = 'C:\BazySQL\kopia.bak' WITH NOINIT, STATS = 10
GO

W zwykłym CMD zostaje nam już tylko wpisać :
sqlcmd -S KOMPUTER\SERWERSQL -i c:\all-in-one.sql
lub
sqlcmd -S KOMPUTER\SERWERSQL -U sa -P "naszetajnehaslo" -i c:\all-in-one.sql

2. Backup bez żadnych zewnętrznych plików, który tak jak wyżej sprawi że będziemy mogli przechowywać wszystkie kopie w jednym pliku :
sqlcmd -S KOMPUTER\SERWERSQL -Q "BACKUP DATABASE [NaszaBaza] TO DISK = 'C:\BazySQL\kopia.bak' WITH NOINIT, STATS = 10"
Przewagą tej metody jest to, że możemy używać zmiennych dostępnych w CMD takich jak nap %date% lub definiowanych samemu ( przykład poniżej )

3. Backup ze skryptu w oddzielnym pliku, który sprawi że będziemy mogli przechowywać tylko jedną kopię w jednym pliku :
Tworzymy plik na dysku c:, np c:\pojedynczy.sql który będzie miał w środku :

BACKUP DATABASE [NaszaBaza] TO DISK = 'C:\BazySQL\kopia.bak' WITH INIT, STATS = 10
GO

4. Backup bez żadnych zewnętrznych plików, który sprawi że będziemy mogli przechowywać tylko jedną kopię w jednym pliku ( z wykorzystaniem %date% ):
sqlcmd -S KOMPUTER\SERWERSQL -Q "BACKUP DATABASE [NaszaBaza] TO DISK = 'C:\BazySQL\kopia-%date%.bak' WITH INIT, STATS = 10"

5. Z Restore jest taki problem, że musimy wskazać numer kopii w pliku. Nie ma problemu jeżeli backup był robiony wg zasady jeden plik – jedna kopia wtedy wydajemy polecenie :
sqlcmd -S KOMPUTER\SERWERSQL -Q "RESTORE DATABASE [NowaBaza] FROM DISK = 'C:\BazySQL\kopia.bak' WITH FILE = 1, KEEP_REPLICATION, NOUNLOAD, REPLACE, STATS = 10"

W innym wypadku musimy znać numer ostatniej kopii lub użyć SQL SMS

Reklamy
 
Dodaj komentarz

Opublikował/a w dniu Kwiecień 27, 2011 w SQL, windows

 

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

 
%d blogerów lubi to: