Published on

October 16, 2004

Cómo mover las bases de datos del sistema en SQL Server

Mover una base de datos en SQL Server es un proceso relativamente sencillo para las bases de datos de usuario. Sin embargo, cuando se trata de mover las bases de datos del sistema, requiere un poco más de trabajo y precaución. En este artículo, discutiremos los pasos involucrados en mover las bases de datos del sistema y proporcionaremos una lista de verificación para garantizar una migración fluida y exitosa.

Paso 1: Copia de seguridad

Antes de comenzar el proceso de migración, es crucial tener copias de seguridad de todas las bases de datos de usuario, así como de las bases de datos master, model y msdb. Esto asegura que tenga un punto de restauración en caso de que algo salga mal durante la migración.

Paso 2: Mover msdb y model

En Enterprise Manager, haga clic derecho en el servidor y elija Propiedades. Haga clic en Parámetros de inicio y agregue un nuevo parámetro “-T3608” (sin las comillas). Detenga SQL Server y vuelva a iniciarlo, asegurándose de que SQL Agent NO esté iniciado. Ejecute los siguientes comandos en Query Analyzer para desacoplar las bases de datos msdb y model:

use master
go
exec sp_detach_db 'msdb'
go
exec sp_detach_db 'model'
go

Mueva los archivos de datos y registro tanto para msdb como para model a sus nuevas ubicaciones. Luego, ejecute los siguientes comandos en Query Analyzer para adjuntar las bases de datos model y msdb:

use master
go
exec sp_attach_db 'model', 'RUTA_AL_ARCHIVO_DE_DATOS_DE_MODEL\model.mdf', 'RUTA_AL_ARCHIVO_DE_REGISTRO_DE_MODEL\modellog.ldf'
go

Elimine la bandera -T3608 en Enterprise Manager/Server/Properties/Startup Parameters. Detenga SQL Server y vuelva a iniciarlo. Finalmente, ejecute los siguientes comandos en Query Analyzer para verificar las rutas de los archivos:

use model
go
exec sp_helpfile
go
use master
go
exec sp_attach_db 'msdb', 'RUTA_AL_ARCHIVO_DE_DATOS_DE_MSDB\msdbdata.mdf', 'RUTA_AL_ARCHIVO_DE_REGISTRO_DE_MSDB\msdblog.ldf'
go
use msdb
go
exec sp_helpfile
go

Paso 3: Mover tempdb

Ejecute los siguientes comandos en Query Analyzer para modificar las rutas de los archivos de tempdb:

use master
go
alter database tempdb modify file (name = tempdev, filename = 'RUTA_A_LA_NUEVA_UBICACION_DEL_ARCHIVO_DE_DATOS_DE_TEMPDB\tempdb.mdf')
go
alter database tempdb modify file (name = templog, filename = 'RUTA_A_LA_NUEVA_UBICACION_DEL_ARCHIVO_DE_REGISTRO_DE_TEMPDB\templog.ldf')
go

Detenga SQL Server y vuelva a iniciarlo. Ejecute el siguiente comando en Query Analyzer para verificar las rutas de los archivos:

use tempdb
go
exec sp_helpfile
go

Detenga SQL Server. Mueva los archivos de datos y registro originales de tempdb a una nueva ubicación o cambie su nombre para asegurarse de que SQL Server no los esté utilizando. Inicie SQL Server y ejecute los siguientes comandos en Query Analyzer para verificar si hay errores:

use tempdb
go
create table test (a int)
insert into test (a) values (1)
select * from test
drop table test
go

Elimine los archivos de datos y registro originales de tempdb. Este paso es opcional pero se recomienda para una verificación exhaustiva.

Paso 4: Mover master

Nota: Este paso solo es necesario si está moviendo la base de datos master y todos los archivos que SQL Server utiliza en su ‘ubicación de datos’.

En Enterprise Manager, haga clic derecho en el servidor y elija Propiedades. Haga clic en Parámetros de inicio y elimine cualquier parámetro existente. Agregue los siguientes tres parámetros:

-dRUTA_A_LA_NUEVA_UBICACION_DEL_ARCHIVO_MDF_DE_MASTER\master.mdf
-eRUTA_A_LA_NUEVA_UBICACION_DEL_LOG_DE_ERRORES_DE_SQLAGENT\ERRORLOG
-lRUTA_A_LA_NUEVA_UBICACION_DEL_ARCHIVO_DE_REGISTRO_DE_MASTER\mastlog.ldf

Detenga SQL Server. Mueva los archivos según se especifica a continuación:

RUTA_ANTIGUA_DEL_ARCHIVO_MDF_DE_MASTER\master.mdf --> RUTA_NUEVA_DEL_ARCHIVO_MDF_DE_MASTER\master.mdf
RUTA_ANTIGUA_DEL_ARCHIVO_DE_REGISTRO_DE_MASTER\Data\mastlog.ldf --> RUTA_NUEVA_DEL_ARCHIVO_DE_REGISTRO_DE_MASTER\mastlog.ldf
RUTA_ANTIGUA_DE_LA_UBICACION_DE_DATOS_DE_SQL\BACKUP --> RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL (la carpeta completa con todo lo que contiene)
RUTA_ANTIGUA_DE_LA_UBICACION_DE_DATOS_DE_SQL\JOBS --> RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL (la carpeta completa con todo lo que contiene)
RUTA_ANTIGUA_DE_LA_UBICACION_DE_DATOS_DE_SQL\LOG --> RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL (la carpeta completa con todo lo que contiene)
RUTA_ANTIGUA_DE_LA_UBICACION_DE_DATOS_DE_SQL\REPLDATA --> RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL (la carpeta completa con todo lo que contiene)

Haga los cambios necesarios en el registro utilizando regedit:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
    BackupDirectory = RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL\BACKUP
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Replication
    WorkingDirectory = RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL\REPLDATA
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Setup
    SQLDataRoot = RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL\
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent
    ErrorLogFile = RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL\LOG\SQLAGENT.OUT
    WorkingDirectory = RUTA_NUEVA_DE_LA_UBICACION_DE_DATOS_DE_SQL\JOBS

Inicie SQL Server y verifique que la migración haya sido exitosa.

Conclusión

Mover las bases de datos del sistema en SQL Server requiere una planificación y ejecución cuidadosas. Siguiendo los pasos descritos en este artículo, puede garantizar una migración fluida y exitosa. Sin embargo, es importante tener en cuenta que esta lista de verificación es solo una guía y puede necesitar ajustarse según la configuración específica de su sistema. Siempre haga copias de seguridad y proceda con precaución al realizar cambios en las bases de datos del sistema.

¡Gracias por leer!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.