INFORMATICS

The Best

Przełącznik języka

Zaproś mnie na KAWE

Jeżeli podoba Ci się strona i chcesz wspomóc projekt!

Postaw mi kawę na buycoffee.to

This Site

Płatnik

CMS

Hardware

Uncategorised

Emulators

Powershell

Storage Array

DNS

Antivirus program

Licznik

3.png0.png5.png4.png3.png5.png7.png
Today695
Yesterday1026
This week5962
This month4870
Total3054357

Visitor Info

  • IP: 18.97.14.91
  • Browser: Unknown
  • Browser Version:
  • Operating System: Unknown

Who Is Online

1
Online

piątek, 06 grudzień 2024 20:41

Backup MSSQL

Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Jak uruchomić automatyczny backup baz w Microsoft SQL 2005/2008/R2 Express

stworzony przez SzymonN dnia mar.27, 2011, w kategorii: MSSQL

Darmowy serwer bazodanowy jakim jest Microsoft SQL Express oprócz limitu wykorzystania jednego fizycznego procesora, 1 GB pamięci RAM i 12 GB limitu wielkości bazy (R2)  , został pozbawiony Agenta SQL odpowiedzialnego między innymi za uruchamianie procesów na bazach w ustalonym harmonogramie, skutecznie ogranicza to również stworzenie zadania kopii znanego z pełnego rozwiązania Microsoft SQL Server.

Oczywiście samo wykonanie kopii cały czas jest możliwe np z wykorzystaniem harmonogramu zadań w samym systemie Windows . Poniżej przedstawiam skrypt który wykonuje automatyczny backup wszystkich baz danych w danej ( domyślnej ) instancji serwera SQL Express , tworząc codzienną 7-dniową pełną kopie, gdzie ostatnia kopia jest nadpisywana z każdym pierwszym dniem nowego tygodnia . W skrypcie kopia baz danych umieszczana jest w katalogu D:\Backup

 

sql_backup.sql

DECLARE @DBName varchar(255)

DECLARE @DATABASES_Fetch int

DECLARE DATABASES_CURSOR CURSOR FOR

select

DATABASE_NAME   = db_name(s_mf.database_id)

from

sys.master_files s_mf

where

– ONLINE

s_mf.state = 0

– Only look at databases to which we have access

and has_dbaccess(db_name(s_mf.database_id)) = 1

– Not master, tempdb or model

and db_name(s_mf.database_id) not in (‘Master’,'tempdb’,'model’)

group by s_mf.database_id

order by 1

OPEN DATABASES_CURSOR

FETCH NEXT FROM DATABASES_CURSOR INTO @DBName

WHILE @@FETCH_STATUS = 0

BEGIN

declare @DBFileName varchar(256)

set @DBFileName = datename(dw, getdate()) + ‘_’ +

replace(replace(@DBName,’:',’_'),’\',’_')

exec (‘BACKUP DATABASE [' + @DBName + '] TO  DISK = N”D:\Backup\’ +

@DBFileName + ‘.bak’ + ”’ WITH NOFORMAT, INIT,  NAME = N”’ +

@DBName + ‘-Full Database Backup”, SKIP, NOREWIND, NOUNLOAD,  STATS = 100′)

FETCH NEXT FROM DATABASES_CURSOR INTO @DBName

END

CLOSE DATABASES_CURSOR

DEALLOCATE DATABASES_CURSOR

sqlbackup.cmd

SQLCMD.EXE -i sql_backup.sql
exit

lub

SQLCMD.EXE sqlcmd -S Nazwaserwera\instancja -i sql_backup.sql

 

Search