Czym jest prosty program wiersza poleceń lub skrypt do tworzenia kopii zapasowych baz danych SQL server?

Byłem zbyt luźny z wykonywaniem kopii zapasowych DB na naszych wewnętrznych serwerach.

Czy istnieje prosty program wiersza poleceń, którego mogę użyć do tworzenia kopii zapasowych niektórych baz danych w SQL Server 2005? A może istnieje prosty VBScript?

Author: Frank Krueger, 2008-09-23

10 answers

Aby utworzyć kopię zapasową pojedynczej bazy danych z linii poleceń, użyj osql lub sqlcmd.

"C:\Program Files\Microsoft SQL Server\90\Tools\Binn\osql.exe" 
    -E -Q "BACKUP DATABASE mydatabase TO DISK='C:\tmp\db.bak' WITH FORMAT"

Należy również zapoznać się z dokumentacją BACKUPi RESTOREoraz ogólne procedury.

 99
Author: Craig Trader,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-30 23:24:53

Zaplanuj następujące tworzenie kopii zapasowych wszystkich baz danych:

Use Master

Declare @ToExecute VarChar(8000)

Select @ToExecute = Coalesce(@ToExecute + 'Backup Database ' + [Name] + ' To Disk =     ''D:\Backups\Databases\' + [Name]   + '.bak'' With Format;' + char(13),'')
From
Master..Sysdatabases
Where
[Name] Not In ('tempdb')
and databasepropertyex ([Name],'Status') = 'online'

Execute(@ToExecute)

Na moim blogu jest też więcej szczegółów: jak zautomatyzować kopie zapasowe SQL Server Express.

 9
Author: GateKiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 18:09:48

Używam ExpressMaint .

Aby wykonać kopię zapasową wszystkich baz danych użytkownika wykonuję na przykład:

C: > ExpressMaint.exe-S (local)\SQLEXPRESS-D ALL_USER-T DB-BU HOURS-BV 1-B c:\backupdir\ - DS

 9
Author: Martin Meixger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-10 01:49:57

Znalazłem to na stronie pomocy technicznej Microsoft http://support.microsoft.com/kb/2019698 .

To działa świetnie! A ponieważ pochodzi od Microsoftu, czuję, że jest całkiem legalny.

Zasadniczo są dwa kroki.

  1. Utwórz procedurę składowaną w master db. Zobacz link msft lub jeśli jest uszkodzony spróbuj tutaj: http://pastebin.com/svRLkqnq
  2. Zaplanuj tworzenie kopii zapasowej z Harmonogramu zadań. Może chcesz umieścić w .bat lub .plik cmd najpierw zaplanuj ten plik.

    sqlcmd -S YOUR_SERVER_NAME\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='C:\SQL_Backup\', @backupType='F'"  1>c:\SQL_Backup\backup.log            
    

Oczywiście zastąp YOUR_SERVER_NAME nazwą twojego komputera lub opcjonalnie spróbuj .\SQLEXPRESS i upewnij się, że folder kopii zapasowej istnieje. W tym przypadku stara się umieścić go w c:\SQL_Backup

 5
Author: John W.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-25 22:18:52

Możesz użyć aplikacji backup ApexSQL. Chociaż jest to aplikacja GUI, ma wszystkie jego funkcje obsługiwane w CLI. Możliwe jest wykonywanie jednorazowych operacji tworzenia kopii zapasowych lub tworzenie zadania, które regularnie tworzy kopie zapasowe określonych baz danych. Możesz sprawdzić zasady przełączania i przykład w artykułach:

 5
Author: P.Thompson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-30 15:04:43

Używam tsql na infrastrukturze Linux / UNIX, aby uzyskać dostęp do baz danych MSSQL. Oto prosty skrypt powłoki do zrzutu tabeli do pliku:

#!/usr/bin/ksh
#
#.....
(
tsql -S {database} -U {user} -P {password} <<EOF
select * from {table}
go
quit
EOF
) >{output_file.dump}
 4
Author: Ira C,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-20 00:22:17

Ewentualnie, jeśli nie masz zaufanego połączenia, jak deklaruje przełącznik –E

Użyj następującego wiersza poleceń

"[program dir]\[sql server version]\Tools\Binn\osql.exe" -Q "BACKUP DATABASE mydatabase TO DISK='C:\tmp\db.bak'" -S [server] –U [login id] -P [password]

Gdzie

[program dir] jest katalogiem, w którym znajduje się osql.exe exists

On 32bit OS c:\Program Files\Microsoft SQL Server\
On 64bit OS c:\Program Files (x86)\Microsoft SQL Server\

[wersja sql server] Twoja wersja sql server 110 lub 100 lub 90 lub 80 zaczyna się od największej liczby

[Serwer] Twoja nazwa serwera lub ip serwera

[login id] nazwa użytkownika ms-SQL server

[hasło] wymagany login hasło

 2
Author: George Vrynios,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-25 12:49:44

Poniżej prosty skrypt do tworzenia kopii zapasowej bazy danych.

DECLARE @name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  
DECLARE @fileDate VARCHAR(20) -- used for file name


-- specify database backup directory
SET @path = 'C:\Backup\'  


-- specify filename format
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 


DECLARE db_cursor CURSOR FOR  
SELECT name 
FROM master.dbo.sysdatabases 
WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases


OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   


WHILE @@FETCH_STATUS = 0   
BEGIN   
       SET @fileName = @path + @name + '_' + @fileDate + '.BAK'  
       BACKUP DATABASE @name TO DISK = @fileName  


       FETCH NEXT FROM db_cursor INTO @name   
END   


CLOSE db_cursor   
DEALLOCATE db_cursor
 2
Author: Jitendra Pancholi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-19 08:13:08

Przydałby się skrypt VB, który napisałem dokładnie do tego celu: https://github.com/ezrarieben/mssql-backup-vbs/

Zaplanuj zadanie w" Harmonogramie zadań", aby wykonać skrypt, jak chcesz, a to zrobi kopię zapasową całego DB do pliku BAK i zapisać go gdziekolwiek określisz.

 0
Author: ezrarieben,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-11 20:10:41

Jeśli znajdziesz pliki DB... "CP DBFiles backup /"

prawie na pewno niewskazane w większości przypadków , ale to proste, jak wszystkie getup.

 -10
Author: BCS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-14 16:36:46