2008-09-23 11 views

Antwort

94

Um eine einzelne Datenbank über die Befehlszeile zu sichern, verwenden Sie osql oder 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" 

Sie wollen auch die Dokumentation auf BACKUP und RESTORE und general procedures zu lesen.

+3

Es gibt ein gutes Skript, um alle Benutzer zu sichern Datenbanken auf einen Streich: http://www.mssqltips.com/tip.asp?tip = 1070 –

+0

Verwenden Sie SQLBackupAndFTP. Aktivieren Sie "Alle Datenbanken sichern". Auch später erstellte Datenbanken werden gesichert. –

+6

Die Dokumentation besagt, dass 'WITH FORMAT' das Speichermedium formatiert:" _Die Option FORMAT macht den gesamten Medieninhalt ungültig und ignoriert vorhandene Inhalte._ "Stellen Sie sicher, dass Sie dies wünschen. – alexg

8

Planen Sie die folgenden Backup aller Datenbanken:

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) 

Darüber hinaus gibt es weitere Informationen auf meinem Blog: Wie Automate SQL Server Express Backups.

+0

Können Sie genauer planen? –

+0

Bitte lesen Sie meinen Blogbeitrag. Es enthält alles, was Sie wissen müssen. – GateKiller

+0

Ich denke, die Frage fragt nach etwas, das * außerhalb * von SQL Server ausgeführt wird. – bzlm

-10

Wenn Sie die DB-Dateien finden können ... "cp DBFiles Backup /"

Fast sicher nicht ratsam in den meisten Fällen, aber es ist einfach, wie alle getup.

+1

Tun Sie dies nicht, wenn SQL Server läuft, auch wenn nichts verwendet wird. –

+0

Funktioniert das überhaupt? – bzlm

+5

Die Wahrscheinlichkeit, diese Methode zum erfolgreichen Sichern und Wiederherstellen einer Datenbank zu verwenden, ist sehr gering. Es funktioniert nur, wenn während der Sicherung und Wiederherstellung: keine SQL Server-Prozesse laufen, Sie identifizieren und kopieren alle beteiligten Binärdateien, Sie laufen EXAKT die gleiche Version und Patch-Level von SQL Server (und/oder Windows). Das Backup-Dateiformat ist für die Cross-Version portierbar. Die binären Datenbankdateien sind NICHT. Dies gilt für ALLE Datenbanken, nicht nur für SQL Server. Tu es einfach nicht. JA WIRKLICH. MACH DAS NICHT. –

8

Ich verwende ExpressMaint.

Zur Sicherung alle Benutzerdatenbanken I beispielsweise tun:

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

+0

Meixger, ich finde keinen einzigen Grund, ExpressMaint zu verwenden, wenn SQLBackupAndFTP es in jedem erdenklichen Szenario schlägt –

4

Ich benutze Tsql auf einer Linux/UNIX-Infrastruktur für den Zugriff auf MSSQL-Datenbanken. Hier ist ein einfacher Shell-Skript eine Tabelle in eine Datei zu speichern:

#!/usr/bin/ksh 
# 
#..... 
(
tsql -S {database} -U {user} -P {password} <<EOF 
select * from {table} 
go 
quit 
EOF 
) >{output_file.dump} 
5

Ich fand dies auf einer Microsoft-Support-Seite http://support.microsoft.com/kb/2019698.

Es funktioniert super! Und da es von Microsoft stammt, habe ich das Gefühl, dass es ziemlich echt ist.

Grundsätzlich gibt es zwei Schritte.

  1. Erstellen Sie eine gespeicherte Prozedur in Ihrem Master-DB. Siehe msft Link oder wenn es defekt ist, versuchen Sie es hier: http://pastebin.com/svRLkqnq
  2. Planen Sie die Sicherung von Ihrem Taskplaner. Sie möchten möglicherweise zuerst eine .bat- oder .cmd-Datei speichern und dann diese Datei planen.

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

Offensichtlich ersetzen Your_Server_Name mit Ihrem Computernamen oder optional versuchen. \ SQLEXPRESS und stellen Sie sicher, dass die Backup-Ordner vorhanden ist.In diesem Fall wird es versucht, es in c zu setzen: \ SQL_Backup

+1

Für was es wert ist, endete ich oben die Methode oben in Verbindung mit den Sachen von https: //ola.hallengren. com/wer ich denke, ist sehr gut in der dba-Community respektiert. Es funktioniert wie ein Zauber. –

2

Eventual, wenn Sie nicht über eine gesicherte Verbindung haben als der -E-Schalter

Verwenden folgende Befehlszeile

"[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]

erklärt wo

[Programm dir] ist das Verzeichnis, in dem die osql.exe

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

[SQL Server-Version] SQL Server-Version 110 oder 100 oder 90 oder 80 mit der größten Anzahl

[Server], um Ihre Server oder Server ip

[login id] Ihre MS- beginnen sQL Server-Benutzer-Anmeldenamen

[Passwort] das erforderliche Login-Passwort

+1

'C: \ tmp' ist Pfad in *** Server *** oder *** local ***? – Kiquenet

2

Unten ist die einfache Skript-Datenbank-Backup zu machen.

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 
3

Sie können die Sicherungsanwendung von ApexSQL verwenden. Obwohl es sich um eine GUI-Anwendung handelt, werden alle Funktionen in CLI unterstützt. Es ist möglich, entweder einmalige Backup-Vorgänge durchzuführen oder einen Job zu erstellen, der bestimmte Datenbanken regelmäßig sichert. Sie können die Schaltregeln überprüfen und exampled in den Artikeln: weit mehr Glück mit, um Zitrone Anwendungen und Anleitung Orange Dienstprogramme