O que é um programa simples de linha de comando ou programa para backup de bases de dados de servidor SQL?

Tenho sido demasiado negligente com a realização de backups de DB nos nossos servidores internos.

Existe um programa simples de linha de comando que eu possa usar para fazer backup de certas bases de dados no servidor sql 2005? Ou existe um simples VBScript?

Author: Frank Krueger, 2008-09-23

10 answers

Para salvaguardar uma única base de dados a partir da linha de comandos, utilize osql ou 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"

Você também vai querer ler a documentação em BACKUP e RESTAURAR e procedimentos gerais.

 99
Author: Craig Trader, 2017-01-30 23:24:53

Programe o seguinte para salvaguardar todas as bases de dados:

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)

Também existem mais detalhes no meu blog: Como automatizar as cópias de segurança SQL Server Express .

 9
Author: GateKiller, 2008-09-23 18:09:48

Eu uso ExpressMaint .

Para fazer cópias de segurança de todas as bases de dados de utilizadores, faço por exemplo:

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

 9
Author: Martin Meixger, 2015-02-10 01:49:57

Encontrei isto numa página de suporte da Microsoft http://support.microsoft.com/kb/2019698.

Funciona muito bem! E desde que veio da Microsoft, sinto que é bastante legítimo. Basicamente, há dois passos.
  1. crie um procedimento armazenado no seu db mestre. Veja msft link ou se estiver quebrado tente aqui: http://pastebin.com/svRLkqnq
  2. Agende a cópia de segurança do seu programador de Tarefas. É melhor pôr um .bat or .comando arquiva primeiro e depois Marca esse ficheiro.

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

Obviamente substitua o SEU_ SERVIDOR_ nome pelo nome do seu computador ou opcionalmente tente .\SQLEXPRESS e certifique-se que a pasta de backup existe. Neste caso, está a tentar colocá - lo c:\SQL_Backup

 5
Author: John W., 2013-05-25 22:18:52

Você pode usar a aplicação de backup pelo ApexSQL. Embora seja uma aplicação GUI, tem todas as suas funcionalidades suportadas no CLI. É possível realizar operações de backup de uma só vez, ou criar um trabalho que faria backup de bases de dados especificadas na base regular. Pode verificar as regras de comutação e examinar nos artigos:

 5
Author: P.Thompson, 2017-11-30 15:04:43

Estou a usar o tsql numa infra-estrutura Linux / UNIX para aceder às bases de dados MSSQL. Aqui está um script de shell simples para enviar uma tabela para um arquivo:

#!/usr/bin/ksh
#
#.....
(
tsql -S {database} -U {user} -P {password} <<EOF
select * from {table}
go
quit
EOF
) >{output_file.dump}
 4
Author: Ira C, 2012-10-20 00:22:17

Eventual se não tiver uma ligação de confiança como o interruptor declara

Utilizar a seguinte linha de comandos

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

Em que

[Programa dir] é a pasta onde o osql.o exe existe

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

[SQL server version] your SQL server version 110, 100, 90 ou 80 begin with the largest number

[servidor] o seu servidor ou Servidor ip

[id de autenticação] o seu nome de utilizador do servidor de ms-sql

[senha] a autenticação necessária senha

 2
Author: George Vrynios, 2014-06-25 12:49:44

Abaixo está o programa simples para fazer cópia de segurança da base de dados.

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, 2016-04-19 08:13:08

Você poderia usar um Script VB que eu escrevi exatamente para este propósito: https://github.com/ezrarieben/mssql-backup-vbs/

Agendar uma tarefa no "escalonamento de tarefas" para executar o programa como quiser e irá salvaguardar o DB inteiro para um ficheiro BAK e gravá-lo onde você indicar.

 0
Author: ezrarieben, 2018-09-11 20:10:41

Se conseguires encontrar os ficheiros DB... "CP DBFiles backup/"

Quase de certeza não é aconselhável na maioria dos casos, mas é simples como toda a roupa.

 -10
Author: BCS, 2009-04-14 16:36:46