0% encontró este documento útil (0 votos)
526 vistas14 páginas

Mover Base de Datos SQL Server A Otro Disco

Este documento explica cómo mover una base de datos de SQL Server a otra ubicación y cambiar la ubicación predeterminada al crear nuevas bases de datos. Describe el proceso de mover una base de datos a otro disco usando el SQL Server Management Studio o Transact-SQL, y también cómo cambiar la ubicación predeterminada usando el GUI o T-SQL modificando las claves del registro.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
526 vistas14 páginas

Mover Base de Datos SQL Server A Otro Disco

Este documento explica cómo mover una base de datos de SQL Server a otra ubicación y cambiar la ubicación predeterminada al crear nuevas bases de datos. Describe el proceso de mover una base de datos a otro disco usando el SQL Server Management Studio o Transact-SQL, y también cómo cambiar la ubicación predeterminada usando el GUI o T-SQL modificando las claves del registro.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 14

Mover base de datos sql server a otro disco

Una de las buenas prácticas de cualquier sistema de


base de datos, por ejemplo SQL Server, es mantener
la ubicación de los ficheros de base de datos (ficheros
MDF y LDF) separados de la unidad donde tenemos
instalado el sistema operativo, por defecto, la unidad
C:
En bases de datos donde se efectúan muchos
cambios en el contenido de las bases de datos,
también se recomienda situar los logs de
transacciones (ficheros LDF) de una unidad distinta a
la ubicación de las bases de datos (ficheros MDF) y
también distinta a los binarios del sistema operativo.
En el caso de SQL Server, por defecto, la ubicación
de las bases de datos de sistema y bases de datos
que el administrador vaya creando será la unidad
donde se encuentran instalados los binarios de SQL
Server, de forma predeterminada, la unidad C:
Dependiendo de la versión de SQL Server, la
ruta cambia el directorio que indica la versión, por
ejemplo:
SQL Server 2008 R2 (Versión 10.5):
"C:\Program Files\Microsoft SQL
Server\MSSQL10_50.MSSQLSERVER\MSSQL\DAT
A"
SQL Server 2008 (Versión 10):
"C:\Program Files\Microsoft SQL
Server\MSSQL10.MSSQLSERVER\MSSQL\DATA"
Para saber la versión de SQL Server instalada,
podemos revisar el siguiente enlace:
MSSQL: Saber la versión de SQL Server instalada
(SYSADMIT.com)
En este post veremos como mover una base de datos
de SQL Server a otra ruta y también cambiar la
ubicación predeterminada al crear nuevas bases de
datos.
Veremos como efectuar ambas tareas administrativas
vía GUI (SQL Server Management Studio) o vía T-
SQL (Transact-SQL).
1) Mover base de datos SQL Server a otro disco
A modo de ejemplo, queremos mover la base de
datos de SQL Server: SYSADMIT-DBubicada en la
ruta: C:\test a la ruta: D:\MSSQLData
El nombre lógico y ruta origen de ficheros MDF y LDF
es la siguiente:
SYSADMIT-DB C:\test\SYSADMIT-
DB.mdf
SYSADMIT-DB_log C:\test\SYSADMIT-
DB_log.ldf
El nombre lógico y ruta destino de ficheros MDF y
LDF es la siguiente:
SYSADMIT-DB D:\MSSQLData\SYSADMIT-
DB_Data.mdf
SYSADMIT-DB_log D:\MSSQLData\SYSADMIT-
DB_Log.ldf
Mover base de datos vía GUI:
Desde "SQL Server Management Studio",
conectamos a nuestro SQL Server.
En primer lugar, anotamos el nombre lógico de la
base de datos y las rutas actuales donde se ubican
los ficheros MDF y LDF.
Para ello, nos situamos sobre la base de datos, botón
de derecho, propiedades.
Nos situamos sobre el apartado "Archivos".
Allí podremos ver el nombre lógico la ruta y nombres
de archivo para el fichero MDF y LDF de la base de
datos.

Una vez tenemos anotada la información anterior,


podemos proceder a situar la base de datos sin
conexión.
Nos situamos sobre la base de datos, botón derecho,
"Separar".
No confundir "Separar" con la opción "Poner sin
conexión". Si ponemos sin conexión la base de datos,
no podremos modificar su ubicación.
A continuación, desde CMD o vía explorador de
ficheros, podemos mover los ficheros de ubicación.
Para ello, podemos abrir una ventana de CMD y
ejecutar:

md "D:\MSSQLData"
Move "C:\test\SYSADMIT-DB.mdf" "D:\MSSQLData\SYSADMIT-DB_Data.mdf"
Move "C:\test\SYSADMIT-DB_log.ldf" "D:\MSSQLData\SYSADMIT-DB_log.ldf"

Vista ejecución:

Una vez tenemos los ficheros en la nueva ubicación,


nos situamos sobre "Bases de datos", botón derecho,
"Adjuntar".
y a continuación, seleccionamos la nueva ubicación y
corregimos las rutas del fichero MDF y LDF:

Finalmente ya tendremos la base de datos movida de


ubicación.
Mover base de datos vía T-SQL:
A continuación, podemos ver el código T-SQL para
realizar el procedimiento de mover la base de datos
de SQL Server a otro disco, indicando una ruta para
el fichero MDF y otra para el fichero LDF.
En el código T-SQL encontraremos comentarios que
explican cada linea de ejecución.
El código T-SQL ha sido verificado sobre SQL Server
2008 R2.
Tengamos en cuenta que hay un paso en el que
debemos mover los ficheros de lugar de forma
manual, en el código he situado tres lineas de
comandos de CMD que deberemos ejecutar desde
una ventana de CMD fuera de SQL Server.
También podemos realizar el movimiento de ficheros
y renombrado de los mismos utilizando otros métodos
como el explorador de Windows.

-- Mostramos las rutas actuales de la base de datos.

USE master SELECT name, physical_name FROM sys.master_files

-- Tomamos nota de los datos de la BD que queremos mover, por ejemplo:


--
-- SYSADMIT-DB C:\test\SYSADMIT-DB.mdf
-- SYSADMIT-DB_log C:\test\SYSADMIT-DB_log.ldf
--
-- Siendo la primera columna el nombre lógico de la base de datos y
-- la segunda columna la ruta física
--

GO

-- Situamos la base de datos a offline, haciendo el rollback inmediato


de
-- todas las transacciones abiertas.

ALTER DATABASE "SYSADMIT-DB" SET offline WITH ROLLBACK IMMEDIATE;

GO

-- Procedemos a mover los ficheros, por ejemplo desde CMD con el


comando move.
-- Abrimos una ventana de CMD y ejecutamos:
--

md "D:\MSSQLData"
Move "C:\test\SYSADMIT-DB.mdf" "D:\MSSQLData\SYSADMIT-DB_Data.mdf"
Move "C:\test\SYSADMIT-DB_log.ldf" "D:\MSSQLData\SYSADMIT-DB_log.ldf"

-- Modificamos la ruta del MDF de la base de datos.


-- El nombre lógico de la base de datos está obtenido después de la
ejecución
-- del primer comando.

ALTER DATABASE "SYSADMIT-DB" MODIFY FILE ( NAME = "SYSADMIT-DB",


FILENAME = "D:\MSSQLData\SYSADMIT-DB_Data.mdf")
GO

-- Modificamos la ruta del LDF de la base de datos.


-- El nombre de la base de datos está obtenido después de la ejecución
del primer comando.

ALTER DATABASE "SYSADMIT-DB" MODIFY FILE ( NAME = "SYSADMIT-DB_Log",


FILENAME = "D:\MSSQLData\SYSADMIT-DB_Log.ldf")

GO

-- Situamos la base de datos online.

ALTER DATABASE "SYSADMIT-DB" SET online

GO

-- Mostramos las rutas actuales de las base de datos

USE master SELECT name, physical_name FROM sys.master_files

2) Cambiar la ubicación predeterminada de las


bases de datos:
Este cambio en la configuración solo afectará a las
nuevas bases de datos que creemos.
En el siguiente ejemplo, cambiaremos la ubicación
predeterminada de las bases de datos
a: D:\MSSQLData
Cambio ruta predeterminada BD vía GUI:
Por ejemplo, desde SQL Server 2008 R2:
Conectamos con "SQL Server Management Studio" a
nuestro SQL Server y a continuación, botón derecho
sobre el servidor, propiedades.
A continuación veremos la opción "Configuración de
base de datos", junto a "Ubicaciones
predeterminadas de la base de datos".
Cambio ruta predeterminada BD vía T-SQL:

USE [master]

GO

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',


N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultData', REG_SZ,
N'D:\MSSQLData'

GO

EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE',


N'Software\Microsoft\MSSQLServer\MSSQLServer', N'DefaultLog', REG_SZ,
N'D:\MSSQLData'

GO
De hecho, si examinamos el código T-SQL, vemos
que la configuración se guarda en claves en el
registros de Windows, así que también podemos
hacer el cambio en la configuración
utilizando regedit.
Adjuntar una base de
datos
SQL Server 2014

Otras versiones

Publicado: noviembre de 2016


En este tema se describe cómo adjuntar una base de datos en SQL Server 2014 mediante SQL
Server Management Studio o Transact-SQL. Puede usar esta característica para copiar, mover o
actualizar una base de datos de SQL Server.
En este tema
 Antes de empezar:
Requisitos previos
Recomendaciones
Seguridad
 Para adjuntar una base de datos, use:
SQL Server Management Studio
Transact-SQL
 Seguimiento: Después de actualizar una base de datos

Antes de comenzar
Requisitos previos
 La base de datos se debe separar primero. Si intenta adjuntar una base de datos que no
se ha separado, se devolverá un error. Para obtener más información, vea Separar una
base de datos
 Al adjuntar una base de datos, todos los archivos de datos deben estar disponibles
(archivos MDF y LDF). Si algún archivo de datos tiene una ruta de acceso diferente a la
que tenía cuando se creó la base de datos o cuando ésta se adjuntó por última vez,
debe especificar la ruta actual.
 Cuando se adjunta una base de datos, si los archivos MDF y LDF se encuentran en
directorios diferentes y una de las rutas de acceso incluye \\?\GlobalRoot, se producirá
un error en la operación.
Recomendaciones
Se recomienda mover las bases de datos mediante el procedimiento de reubicación
programada ALTER DATABASE, en lugar del método separar y adjuntar. Para más información,
consulte Move User Databases.
Seguridad
Los permisos de acceso a archivos se establecen durante una serie de operaciones de base de
datos, incluidas las operaciones de desasociar o adjuntar una base de datos. Para obtener
información sobre los permisos de archivo que se establecen siempre que se separa y se adjunta
una base de datos, vea Proteger archivos de datos y de registro en los Libros en pantalla de SQL
Server 2008 R2 .
Se recomienda no adjuntar ni restaurar bases de datos de orígenes desconocidos o que no sean
de confianza. Es posible que dichas bases de datos contengan código malintencionado que
podría ejecutar código Transact-SQL no deseado o provocar errores al modificar el esquema o
la estructura de la base de datos física. Para usar una base de datos desde un origen
desconocido o que no sea de confianza, ejecute DBCC CHECKDB en la base de datos de un
servidor que no sea de producción y examine también el código, como procedimientos
almacenados u otro código definido por el usuario, en la base de datos. Para obtener más
información sobre cómo adjuntar bases de datos y sobre los cambios que se realizan en los
metadatos al adjuntar una base de datos, vea Adjuntar y separar bases de datos (SQL Server).
Permisos
Requiere el permiso CREATE DATABASE, CREATE ANY DATABASE o ALTER ANY DATABASE.

Usar SQL Server Management Studio


Para adjuntar una base de datos
1. En el Explorador de objetos de SQL Server Management Studio , conéctese a una
instancia del Motor de base de datos de SQL Servery, después, expándala.
2. Haga clic con el botón derecho en Bases de datos y haga clic en Adjuntar.
3. En el cuadro de diálogo Adjuntar bases de datos , haga clic en Agregarpara
especificar la base de datos que se va a adjuntar y en el cuadro de diálogo Buscar
archivos de base de datos , seleccione la unidad de disco en la que se halla la base de
datos y expanda el árbol de directorios para buscar y seleccionar el archivo .mdf de la
base de datos; por ejemplo:
C:\Program Files\Microsoft SQL
Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\AdventureWorks2012_Data.md
f

Importante

Si intenta seleccionar una base de datos que ya ha sido adjuntada se producirá


un error.
Bases de datos que se van a adjuntar
Muestra información sobre las bases de datos seleccionadas.
<no column header>
Muestra un icono que indica el estado de la operación de adjuntar. Los iconos posibles
se indican en la descripción de Estado , que encontrará más adelante.
Ubicación del archivo MDF
Muestra la ruta de acceso y el nombre del archivo MDF seleccionado.
Nombre de la base de datos
Muestra el nombre de la base de datos.
Adjuntar como
Opcionalmente, especifica un nombre distinto con el que se debe adjuntar la base de
datos.
Propietario
Ofrece una lista desplegable de los posibles propietarios de base de datos desde los
que opcionalmente puede seleccionarse otro propietario.
Estado
Muestra el estado de la base de datos de acuerdo con la tabla siguiente.

Texto de
Icono Descripción
estado

(Sin icono) (Sin texto) La operación de adjuntar no se ha


iniciado o puede estar pendiente
para este objeto. Es la opción
predeterminada al abrir el diálogo.

Triángulo verde hacia la En curso La operación de adjuntar se ha


derecha iniciado, pero no ha finalizado.

Marca de verificación verde Success El objeto se ha adjuntado


correctamente.

Círculo rojo con una cruz Error La operación de adjuntar ha


blanca detectado un error y no ha finalizado
correctamente.

Círculo con dos cuadrantes Detenido La operación de adjuntar no ha


negros (a la izquierda y la finalizado correctamente porque el
derecha) y dos cuadrantes usuario la ha detenido.
blancos (en la parte superior e
inferior)

Círculo con una flecha curvada Revertido La operación de adjuntar se ha


que apunta hacia la izquierda ejecutado correctamente, pero se ha
revertido debido a un error al
adjuntar otro objeto.

de mensaje
Muestra un mensaje en blanco o un hipervínculo que indica "Archivo no encontrado".
Agregar
Busca los archivos de base de datos principales necesarios. Si el usuario selecciona un
archivo .mdf, la información pertinente se llena automáticamente en los respectivos
campos de la cuadrícula Bases de datos que se van a adjuntar .
Quitar
Quita el archivo seleccionado de la cuadrícula Bases de datos que se van a adjuntar .
" <database_name> " detalles de la base de datos
Muestra los nombres de los archivos que se van a adjuntar. Para comprobar o cambiar
el nombre de la ruta de acceso de un archivo, haga clic en el botón Examinar (…).

Nota

Si un archivo no existe, la columna Mensaje muestra "No se encontró". Si un


archivo de registro no se encuentra, indica que se halla en otro directorio o
que se ha eliminado. En tal caso, debe actualizar la ruta de acceso del archivo
en la cuadrícula Detalles de la base de datos para que señale la ubicación
correcta o eliminar el archivo de registro de la cuadrícula. Si un archivo de
datos .ndf no se encuentra, debe actualizar su ruta de acceso en la cuadrícula
para que señale la ubicación correcta.
Nombre del archivo original
Muestra el nombre del archivo adjunto que pertenece a la base de datos.
Tipo de archivo
Indica el tipo de archivo, que puede ser de datos o de registro.
Ruta de acceso del archivo actual
Muestra la ruta de acceso del archivo de base de datos seleccionado. La ruta de acceso
puede modificarse manualmente.
de mensaje
Muestra un mensaje en blanco o un hipervínculo que indica "Archivo no encontrado".

Usar Transact-SQL
Para adjuntar una base de datos
1. Conéctese al Motor de base de datos.
2. Desde la barra Estándar, haga clic en Nueva consulta.
3. Use la instrucción CREATE DATABASE con la cláusula FOR ATTACH.
Copie y pegue el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar. En
este ejemplo se adjuntan los archivos de la base de datos AdventureWorks2012 y se
cambia el nombre de la base de datos a MyAdventureWorks.
CREATE DATABASE MyAdventureWorks
ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'),
(FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf')
FOR ATTACH;

Nota
También puede usar los procedimientos
almacenados sp_attach_db o sp_attach_single_file_db . Sin embargo, estos
procedimientos almacenados se quitarán en una versión futura de Microsoft
SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo
y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su
lugar, se recomienda usar CREATE DATABASE … FOR ATTACH en
lugar.

También podría gustarte