¿Qué es un progtwig de línea de comandos simple o script para hacer una copia de seguridad de las bases de datos del servidor SQL?

He sido muy flojo con la realización de copias de seguridad de bases de datos en nuestros servidores internos.

¿Existe un progtwig de línea de comando simple que pueda usar para hacer copias de seguridad de ciertas bases de datos en SQL Server 2005? ¿O hay un simple VBScript?

Para realizar una copia de seguridad de una única base de datos desde la línea de comandos, use osql o 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" 

También querrá leer la documentación sobre BACKUP y RESTORE y los procedimientos generales .

Programe lo siguiente para hacer una copia de seguridad de todas las Bases de datos:

 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) 

También hay más detalles en mi blog: cómo automatizar las copias de seguridad de SQL Server Express .

Yo uso ExpressMaint .

Para hacer una copia de seguridad de todas las bases de datos de usuario que hago, por ejemplo:

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

Encontré esto en una página de Soporte de Microsoft http://support.microsoft.com/kb/2019698 .

¡Funciona genial! Y como vino de Microsoft, siento que es bastante legítimo.

Básicamente hay dos pasos.

  1. Crea un procedimiento almacenado en tu db maestro. Vea el enlace msft o si está roto, intente aquí: http://pastebin.com/svRLkqnq
  2. Programe la copia de seguridad desde su planificador de tareas. Es posible que desee colocar primero en un archivo .bat o .cmd y luego progtwigr ese archivo.

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

Obviamente, reemplace YOUR_SERVER_NAME con el nombre de su computadora o, opcionalmente, pruebe. \ SQLEXPRESS y asegúrese de que la carpeta de copia de seguridad exista. En este caso, trata de ponerlo en c: \ SQL_Backup

Puede usar la aplicación de copia de seguridad por ApexSQL. Aunque es una aplicación GUI, tiene todas sus características compatibles con CLI. Es posible realizar operaciones de copia de seguridad por única vez o crear un trabajo que haga copias de seguridad de bases de datos especificadas de forma regular. Puede consultar las reglas de cambio y ejemplos en los artículos:

  • Compatibilidad con ApexSQL Backup CLI
  • Ejemplos de CLI de copia de seguridad ApexSQL

Estoy usando tsql en una infraestructura Linux / UNIX para acceder a bases de datos MSSQL. Aquí hay un script de shell simple para volcar una tabla en un archivo:

 #!/usr/bin/ksh # #..... ( tsql -S {database} -U {user} -P {password} <{output_file.dump} 

Eventual si no tienes una conexión de confianza como el interruptor -E declara

Use la siguiente línea de comando

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

Dónde

[directorio de progtwig] es el directorio donde existe el osql.exe

  En 32 bits OS c: \ Archivos de progtwig \ Microsoft SQL Server \ 
  En 64 bits OS c: \ Archivos de progtwig (x86) \ Microsoft SQL Server \ 

[versión de servidor sql] su versión de servidor sql 110 o 100 o 90 u 80 comienza con el número más grande

[servidor] tu nombre de servidor o servidor ip

[login id] su nombre de usuario del servidor ms-sql

[contraseña] la contraseña de inicio de sesión requerida

A continuación se muestra el script simple para hacer una copia de seguridad de la base de datos.

 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 

Si puede encontrar los archivos de base de datos … “cp DBFiles backup /”

Casi con seguridad no es aconsejable en la mayoría de los casos , pero es simple como todo.