script restaurar procedimiento por para hacer datos como codigo almacenado sql-server command-line scripting backup

sql-server - restaurar - script para hacer backup sql server



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

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

¿Existe un programa 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?


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


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 programar 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


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} <<EOF select * from {table} go quit EOF ) >{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 programa] es el directorio donde existe el osql.exe

On 32bit OS c:/Program Files/Microsoft SQL Server/

On 64bit OS c:/Program Files (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


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


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:


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.


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