Para hacer las copias de seguridad de SQL SERVER a traves de comandos, necesitamos Utilidades de línea de comandos 11 de Microsoft® para SQL Server, puede ser que la tengamos ya instalado.
Entramos a "Simbolo de Sistema" (cmd.exe)
Para saber cuantos servidores de bases de datos tenemos y cuales son sus instancias, escribimos esto:
SQLCMD ‑L
Cada servidor de bases de datos, tiene unas bases de datos de sistema, paraque nos muestre una lista de las bases de datos que hay disponibles en un servidor concreto, sin que aparezcan las de sistema, escribimos este comando:
SQLCMD ‑E ‑S SERVIDOR\INSTANCIA ‑Q "SELECT NAME FROM sys.sysdatabases WHERE NAME NOT IN ('MASTER', 'MSDB', 'MODEL', 'TEMPDB', 'DISTRIBUTION', 'MSSQLSYSTEMRESOURCE')"
Para hacer la copia de seguridad, escribimos el siguiente comando:
SQLCMD ‑E ‑S SERVIDOR\INSTANCIA ‑Q "BACKUP DATABASE [DATOS] TO DISK = 'C:\BACKUP.BAK' WITH NOUNLOAD, SKIP, STATS = 10, FORMAT, norewind"
Donde:
SERVIDOR\INSTANCIA –> será uno de los servidores de las base de datos que nos habrá mostrado en el primer coamando
DATOS –> es el nombre de la base de datos que nos habrá mostrado con el segundo comando
C:\BACKUP.BAK –> es la ruta y el nombre de archivo donde se guardará la copia de seguridad.
Buenas, he de crear un bat con este sistema que describes en tu block,
con solo crear el bat con lo siguiente ya funciona?:
(SQLCMD ‑E ‑S SERVIDOR\INSTANCIA ‑Q "BACKUP DATABASE [DATOS] TO DISK =
‘C:\BACKUP.BAK‘ WITH NOUNLOAD, SKIP, STATS = 10, FORMAT, norewind")
Seria suficiente? no hay que hacer nada más? no poner usuario del SQL ni
nada?? lo encuentro muy poco seguro no, cualquiera podreria hacer un
backup de mis datos si accede a mi servidor…
Si hago este backup, se puede hacer en cualquier momento o tiene que
estar todo el mundo sin trabajar para poderlo hacer? no se ha de parar
el servicio ni nada??
el argumento ‑E se autentica con el usuario de windows, si quieres autenticarte con usuario y contraseña, los argumentos serian ‑U username ‑P password