Lo que vamos a realizar es mover las bases de datos de una instancia a otra ubicación diferente.
Sacamos las rutas de todas las bases de datos, con la consulta en la bd master:
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
Para mover las bases de datos master, Resource y ficheros de ERRORLOG siga los pasos que se indican a continuación.
En el menú Inicio, seleccione Todos los programas, Microsoft SQL Server 2005, Herramientas de configuración y, finalmente, haga clic en Administrador de configuración de SQL Server.
En el nodo Servicios de SQL Server 2005, haga clic con el botón secundario en la instancia de SQL Server (por ejemplo, SQL Server (MSSQLSERVER)) y seleccione Propiedades.
En el cuadro de diálogo Propiedades de SQL Server (nombreDeInstancia), haga clic en la ficha Avanzadas.
Modifique los valores de Parámetros de inicio para que apunten a la ubicación planeada de los archivos de registro y datos de la base de datos maestra y haga clic en Aceptar. Mover el archivo del registro de errores es opcional.
El valor de parámetro del archivo de datos debe ir a continuación del parámetro -d y el valor del archivo de registro debe ir a continuación del parámetro -l. En el siguiente ejemplo se muestran los valores de los parámetros de la ubicación predeterminada de los archivos de registro y datos de master.
-dC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOGERRORLOG;-lC:\Program Files\Microsoft SQL Serve\rMSSQL.1\MSSQL\DATA\mastlog.ldf
Si la reubicación planeada de los archivos de registro y datos de la base de datos maestra es
E:SQLData, los valores de los parámetros cambiarían de la manera siguiente:
-dE:\SQL\Data\master.mdf;-eC:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOGERRORLOG;-lE:\SQL\Data\mastlog.ldf
Para detener la instancia de SQL Server, haga clic con el botón secundario en el nombre de la instancia y seleccione Detener.
Mueva los archivos master.mdf y mastlog.ldf a la nueva ubicación.
Inicie la instancia de SQL Server en modo de recuperación sólo de master especificando uno de los siguientes comandos en el símbolo del sistema. Los parámetros especificados en estos comandos distinguen entre mayúsculas y minúsculas. Los comandos generan un error cuando los parámetros no se especifican como se indica.
Para la instancia (MSSQLSERVER) predeterminada, ejecute el siguiente comando:
NET START MSSQLSERVER /f /T3608
Para una instancia con nombre, ejecute el siguiente comando:
NET START MSSQL$instancename /f /T3608
Para obtener más información, vea Cómo iniciar una instancia de SQL Server (Comandos net).
Mediante comandos de sqlcmd o SQL Server Management Studio, ejecute las siguientes instrucciones. Cambie la ruta de acceso a FILENAME para que coincida con la nueva ubicación del archivo de datos de la base de datos maestra. No cambie el nombre de la base de datos ni los nombres de archivo.
ALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=data, FILENAME= 'new_path_of_mastermssqlsystemresource.mdf');
GO
ALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=log, FILENAME= 'new_path_of_mastermssqlsystemresource.ldf');
GO
Mueva los archivos mssqlsystemresource.mdf y mssqlsystemresource.ldf a la nueva ubicación.
Establezca la base de datos Resource en modo de sólo lectura ejecutando la siguiente instrucción.
ALTER DATABASE mssqlsystemresource SET READ_ONLY;
Salga de la utilidad sqlcmd o de SQL Server Management Studio.
Detenga la instancia de SQL Server.
Reinicie la instancia de SQL Server.
Compruebe el cambio de archivo de la base de datos master ejecutando la siguiente consulta. Los metadatos de la base de datos Resource no se pueden ver mediante vistas de catálogo del sistema ni tablas del sistema.
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database
Para mover los ficheros de log que quenera sql agent, a una nuev ruta: (por ejemplo a: D:Microsoft SQL ServerMSSQL.1MSSQLLOG)
USE [msdb]
GO
EXEC msdb.dbo.sp_set_sqlagent_properties @errorlog_file=N'D:\Microsoft SQL Serve\rMSSQL.1\MSSQL\LOGSQLAGENT.OUT'
GO
La base de datos model:
ALTER DATABASE model
MODIFY FILE (NAME= modeldev, FILENAME= 'new_path_of_mastermodel.mdf');
GO
ALTER DATABASE model
MODIFY FILE (NAME= modellog, FILENAME= 'new_path_of_mastermodellog.ldf ');
GO
-> Paramos el servicio de sql server, copiamos los ficheros anteriores al nuevo path y arancamos nuevamente el servicio de sql server.
La base de datos msdb:
ALTER DATABASE msdb
MODIFY FILE (NAME= MSDBData, FILENAME= 'new_path_of_masterMSDBData.mdf ');
GO
ALTER DATABASE msdb
MODIFY FILE (NAME= MSDBLog , FILENAME= 'new_path_of_masterMSDBLog.ldf');
GO
-> Paramos el servicio de sql server, copiamos los ficheros anteriores al nuevo path y arancamos nuevamente el servicio de sql server.
La base de datos tempdb:
ALTER DATABASE tempdb
MODIFY FILE (NAME= tempdev, FILENAME= 'new_path_of_master empdb.mdf ');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME= templog, FILENAME= 'new_path_of_master emplog.ldf');
GO
Eliminamos (movemos a otra ruta) los ficheros de la base de datos tempdb.
Es la única base que se genera nueva al modificar la de ruta.
Modificamos las rutas de instalación en el registro (sacar un backup del registro).
Buscamos la ruta desde el raíz y las sustituimos.
Os voy a dejar una consulta, que facilita la formación de script, para modificar las bbdd de usuarios en masa de una instancia:
select 'ALTER DATABASE [', d.name, '] MODIFY FILE (NAME = [',
f.name, '], FILENAME=''', f.physical_name, ''');'
FROM sys.master_files f inner join sys.databases d
on f.database_id = d.database_id
Aconsejo revisar la Configuración de la estructura de directorios para la nueva ubicación.
• Siga el artículo KB224071 para mover todas las bases de datos del sistema y las bases de datos de usuario.
• Detenga el servicio de fulltext.
modificar las rutas para NoiseFile y TsaurusFIle de la nueva ubicación
• IR a HKEY_LOCAL_MACHINE SOFTWARE MICROSOFT MICROSOFT SQL Server MSSQL.1 MSSQLServer y cambiar el valor de "FullTextDefaultPath" a la nueva ubicación.
• Mueva los contenidos del directorio FTDATA a su nueva ubicación
• Con el SQL Server Configuration Manager actualizar la ruta para el directorio de descarga y el registro de errores
• En HKLM SOFTWARE MICROSOFT MICROSOFT SQL Server MSSQL.1 MSSQLServer cambiar el valor de BackupDirectory y defaultlog a la nueva ubicación
• En HKLM SOFTWARE MICROSOFT MICROSOFT SQL Server MSSQL.1 Setup cambiar el valor de SQLDataRoot a la nueva ruta. (Esto actualiza el valor de ruta de datos que se muestran en gris en el SQL Server Configuration Manager).
• En HKLM SOFTWARE MICROSOFT MICROSOFT SQL Server MSSQL.1 Replication cambiar el valor de WorkingDirectory a la nueva ruta.
• En HKLM SOFTWARE MICROSOFT MICROSOFT SQL Server MSSQL.1 SQLServerAgent cambiar el valor de ErrorLogFile y WorkingDirectory a la nueva ruta.
• Por último se mueven los datos restantes de la ubicación original a la nueva ubicación.
Apunte y recopilación por Norman M. Pardell
Puedes consultarme, si deseas cualquier aclaración, pregunta o sugerencia en: Contacto, contestaré tan pronto como me sea posible.