2010-07-26 15 views

Respuesta

6

No puede - punto. Las copias de seguridad de SQL Server pueden solo guardarse en un disco local, local en el servidor SQL.

Usted no puede con ningún truco o herramientas de copia de seguridad de un servidor SQL remoto a su disco duro local. Simplemente no puedo hacerlo.

4

EDIT: volviendo a leer su pregunta y la respuesta de marc_s mi respuesta solo funcionará si el servidor remoto está hablando de un servidor en su red en alguna parte. Si está hablando de un servidor SQL alojado en otro dominio en algún lugar , marc_s tiene razón y mi respuesta es inútil. Lo dejaré aquí de todos modos en caso de que estés hablando de un servidor en tu dominio. Editar Termina

Después de configurar un recurso compartido en mi directorio local C: \ tmp que ejecuta este bit de Powershell realiza la copia de seguridad.


[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null 
# may need this instead [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SmoExtended') | out-null 

$datePart = Get-Date -Format "yyyyMMdd_hhmm" 
$targetDir = '\\LocalMachineName\tmp\' # change to fit your specs 
$dbname = "DatabaseNameToBackUp" 

$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') 'remoteSqlServer' 
$bckfile = $targetDir + $dbname + "_" + $datePart + ".bak" 
$dbbk = new-object ('Microsoft.SqlServer.Management.Smo.Backup') 
$bdi = new-object ('Microsoft.SqlServer.Management.Smo.BackupDeviceItem') ($bckfile, 'File') 
$dbbk.Action = 'Database' 
$dbbk.BackupSetDescription = "Full backup of " + $dbname 
$dbbk.BackupSetName = $dbname + " Backup" 
$dbbk.Database = $dbname 
$dbbk.MediaDescription = "Disk" 
$dbbk.Devices.Add($bdi) 
$dbbk.SqlBackup($s) 
$dbbk.Devices.Remove($bdi) |out-null 
$bckfile = $null 

Sé que no mencionó Powershell pero desde que vi la etiqueta .net pensé que aún podría ser de ayuda. No debería ser demasiado esfuerzo para volver a escribir en su .net sabor de elección.

Cuestiones relacionadas