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

MS SQL 2005 i automatyczny backup

887 views
Skip to first unread message

Jarosław Kozik

unread,
Mar 23, 2008, 12:10:01 PM3/23/08
to
Witam wszystkich

Chciałbym zapytać jak w serverze SQL 2005 ( Management Studio ) dodać własny
JOB do tworzenie automatu do BackUp


PZD IJKK


Trimar

unread,
Mar 24, 2008, 10:00:08 AM3/24/08
to
Jarosław Kozik pisze:
W części drzewka po lewej stronie (Managment studio) masz takie coś jak
Managment -> maintanace plan, tam sie robi (wizualnie :) schedulowane
backupy bazy danych.

Jarosław Kozik

unread,
Mar 24, 2008, 5:48:37 PM3/24/08
to
wszystko jest jasne, ale czy w wersji Managment studio express występuje w
drzewie Managment -> opcja maintanace plan - pytam, ponieważ ja jej tam nie
mam

PZD IJKK


Użytkownik "Trimar" <bul...@wp.pl> napisał w wiadomości
news:fs8c6c$kju$1...@news.onet.pl...

keczerad

unread,
Mar 25, 2008, 2:47:52 PM3/25/08
to
Jarosław Kozik pisze:

> wszystko jest jasne, ale czy w wersji Managment studio express występuje w
> drzewie Managment -> opcja maintanace plan - pytam, ponieważ ja jej tam nie
> mam

w expresie nie ma tej opcji. Pozostaje linia polecen i osql.exe


--

keczerad

http://www.e-mo.com.pl
sklep w (X)HTML wraz z modulem do Subiekta GT
cennik Action do osCommerce

Jarosław Kozik

unread,
Mar 25, 2008, 7:22:26 PM3/25/08
to
i tak robiłem tyle że to rozwiązanie nie jest idealne ponieważ nie daje
możliwości dopisania daty i godziny do nazwy pliku - chyba że ktoś ma jakiś
pomysł ;)

"c:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" -U sa -S
SERVERNAME -d DBName -P -Q"backup database DBName to
DISK='c:\archiwum\baza.bak' with Stats=10, INIT"

PZD IJKK

Użytkownik "keczerad" <kecz...@poczta.fm> napisał w wiadomości
news:fsbhg9$krg$1...@mx1.internetia.pl...

Bigim

unread,
Mar 26, 2008, 3:29:58 AM3/26/08
to
Jarosław Kozik pisze:

> i tak robiłem tyle że to rozwiązanie nie jest idealne ponieważ nie daje
> możliwości dopisania daty i godziny do nazwy pliku - chyba że ktoś ma jakiś
> pomysł ;)
>
> "c:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" -U sa -S
> SERVERNAME -d DBName -P -Q"backup database DBName to
> DISK='c:\archiwum\baza.bak' with Stats=10, INIT"

Też używam sql2005E.Pracuje jeszcze nad pakowaniem danych.
Podaje skrypt którego używam lecz zaznaczam
że jest jeszcze w fazie poprawek,ale obsługuje date i możesz dołożyć
czas może ci się przyda:

set baza=tu nazwa bazy do backupu

net use x: "\\ścieżka dla kopi na dysk sieciowy"

if %DZIEN% == Monday goto full
if %DZIEN% == Tuesday goto differential
if %DZIEN% == Wednesday goto differential
if %DZIEN% == Thursday goto differential
if %DZIEN% == Friday goto differential
goto full

:full
sqlcmd -E -Q "BACKUP DATABASE [%baza%] TO DISK
='C:\!BAZY\BAZY\%baza%full%DATE%.DAT'"
copy "C:\!BAZY\BAZY\%baza%full%DATE%.DAT" "x:\" /y
goto end

:differential
sqlcmd -E -Q "BACKUP DATABASE [%baza%] TO DISK
='C:\!BAZY\BAZY\%baza%diff%DATE%.DAT' WITH DIFFERENTIAL"
copy "C:\!BAZY\BAZY\%baza%diff%DATE%.DAT" "x:\" /y
if %DZIEN% == Friday goto shrink
goto end

:log
sqlcmd -E -Q "BACKUP LOG [%baza%] TO DISK
='C:\!BAZY\BAZY\%baza%log%DATE%.DAT'"
copy "C:\!BAZY\BAZY\%baza%log%DATE%.DAT" "x:\" /y
goto end

:shrink
sqlcmd -E -Q "alter database [%baza%] set recovery simple with no_wait"

sqlcmd -E -Q "use %baza% dbcc shrinkfile ('%baza%_log',emptyfile)"

sqlcmd -E -Q "alter database [%baza%] set recovery full with no_wait"

:end
i tu jakieś pakowanie danych ??
ECHO. Jest %time% koniec kopi >> "c:\!BAZY\bazy\log.txt"
net use x: /delete /yes

Groosheck

unread,
Mar 26, 2008, 3:29:18 AM3/26/08
to

Użytkownik "Jarosław Kozik" <jko...@op.pl> napisał w wiadomości
news:fsc1f8$ui2$1...@news.onet.pl...

>i tak robiłem tyle że to rozwiązanie nie jest idealne ponieważ nie daje
>możliwości dopisania daty i godziny do nazwy pliku - chyba że ktoś ma jakiś
>pomysł ;)
>
> "c:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" -U sa -S
> SERVERNAME -d DBName -P -Q"backup database DBName to
> DISK='c:\archiwum\baza.bak' with Stats=10, INIT"
>
> PZD IJKK

Witam.
Da się.
Chyba najprościej będzie tak:
1 plik - backup.bat z zawartością:
OSQL -S (local)\sqlexpress -U sa -P instancja /i backup.sql
2 plik - backup.sql, a w nim:

USE master
DECLARE @backup_file varchar(200)
SET @backup_file = 'c:\back\BACKUP_' +
CONVERT(varchar, getdate(),112) + '_' +
REPLACE(CONVERT(varchar, getdate(),108),':','')
+ '.bak'
IF EXISTS (SELECT 1 FROM master.dbo.sysdevices WHERE name='BACKUP_DEVICE')
EXEC sp_dropdevice 'BACKUP_DEVICE'
EXEC sp_addumpdevice 'disk', 'BACKUP_DEVICE', @backup_file
BACKUP DATABASE nazwa_bazy TO BACKUP_DEVICE
GO

Pzdr.
Groosheck


Jarosław Kozik

unread,
Mar 26, 2008, 6:47:06 PM3/26/08
to
Bardzo dziękuję za okazaną pomoc i zaineresowanie

Pozdrawiam IJKK


0 new messages