Restaurar la copia de seguridad de la base de datos a través de la red


¿Cómo restaurar una copia de seguridad de base de datos usando SQL Server 2005 a través de la red? Recuerdo haber hecho esto antes, pero había algo extraño en la forma en que tenías que hacerlo.

Author: Matt, 2008-08-19

9 answers

La base de datos a menudo se ejecuta como un servicio bajo una cuenta sin acceso a la red. Si este es el caso, entonces no sería capaz de restaurar directamente a través de la red. La copia de seguridad debe copiarse en la máquina local o el servicio de base de datos debe ejecutarse como usuario con el acceso de red adecuado.

 17
Author: Curt Hagenlocher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-19 16:20:53

Tiene pocas opciones para usar un archivo de red como fuente de copia de seguridad

  1. Mapear la unidad de red/ruta, archivo de alojamiento, bajo el MISMO usuario que MS-SQL Server.
  2. Utilice el procedimiento almacenado extendido xp_cmdshell para asignar la unidad de red desde el interior de MS SQL (de esta manera, el shell de comandos tendrá los mismos privilegios que la cuenta de usuario que ejecuta SSMS)
-- allow changes to advanced options 
EXEC sp_configure 'show advanced options', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
-- To enable xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
-- Update currently configured values for advanced options.
RECONFIGURE
GO
EXEC xp_cmdshell 'NET USE Z: \\Srv\Path password1 /USER:Domain\UserName'

Después de la unidad Z: será visible en Server Managment studio, o simplemente

RESTORE DATABASE DataBaseNameHere FROM DISK = 'Z:\BackNameHere.BAK'
GO
 69
Author: TPAKTOPA,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-26 12:45:12

No puede hacer esto a través de la GUI de SSMS, pero puede hacerlo usando un script. RESTORE DATABASE from DISK= '\unc \ path \ filename ' Si necesita automatizar este proceso, la mejor manera es configurar un trabajo de SQL Server y ejecutarlo como usuario con acceso a la ubicación del archivo.

 8
Author: baldy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-02 13:12:21

Asegúrese de que el usuario que ejecuta su SQL services en "Services.msc" es un active directory "Domain User" esto solucionará el problema.

 5
Author: RSOLY777,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-26 13:05:06

Puede usar el SP xp_cmdshell para asignar el networkdrive para sql server, después de eso se mostrará en la ventana de exploración de archivos.

EXEC xp_cmdshell 'NET USE Z: SERVERLOCATION PASSWORD /USER:DOMAIN\USERNAME'

Más información aquí: DB Restore from Network Drive

Funcionó para mí!

 4
Author: coussej,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-21 18:55:04

He tenido que hacer esto un par de veces, y solo hay dos opciones que conozco. Copie el archivo localmente en SQL Server o, en SQL Server, cree una unidad de red asignada al recurso compartido que contiene el archivo de copia de seguridad.

 0
Author: Brian G Swanson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-19 18:18:46

Además, debe asegurarse de que el servicio SQL Server se ejecuta como un usuario que tiene acceso a la red y permisos para el recurso compartido donde reside el archivo de copia de seguridad. 'Sistema local' no tendrá permisos para acceder a la red.

 0
Author: Daniel O,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-08 23:59:55

Como nota al margen, si está ejecutando SQL en una máquina virtual, a menudo es menos complicado configurar temporalmente una nueva unidad en la máquina virtual con espacio suficiente para copiar los archivos de copia de seguridad, realizar la restauración desde esa nueva copia local y, a continuación, eliminar la unidad temporal.

Esto puede ser útil si detener/iniciar el servicio SQL para cambiar su cuenta es un problema.

 0
Author: Brian Miller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-17 21:05:49

Cree una unidad compartida en una máquina que tenga las copias de seguridad, por ejemplo, server1 tiene las copias de seguridad en la carpeta "Copias de seguridad". Conceda el control total a la cuenta que ejecuta SQL Server. En el servidor que desea restaurar para iniciar SSMS, vaya a restaurar la base de datos y seleccione "Desde el dispositivo". En el cuadro de diálogo"Localizar archivo de copia de seguridad-" Servidor "" y eliminar cualquier cosa en el campo "Ruta seleccionada" y en el campo "Nombre de archivo" proporcionar ruta completa para " \servidor\copias de seguridad\db.bak". Al menos funcionó para mí al migrar de 05 a 08. No es el método preferido porque cualquier problema de red puede causar un problema con la restauración.

 0
Author: Kelly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-24 18:20:20