Adjuntar y separar una base de Datos


 Seguimos con el curso de SQL SERVER, y el día de hoy explicaremos la manera de adjuntar y separar bases de Datos.

Cuando se crea una base de datos como hemos visto anteriormente se crear los archivos .mdf y .ldf, y los archivos secundarios en caso de tener, pues esos archivos están protegidos y no se podrían borrar, copiar, mover o cambiar de nombre, pues estarían protegidos por el servicio. Sin embargo, existen sentencias de SQL y también en el método gráfico que nos permitirán manipular esos archivos. Imaginemos que queremos mover una base de datos desde su origen hasta otro disco con mayor espacio. Pues en este post lo vamos a descubrir.



Creando la base de datos de ejemplo


Vamos a crear una base de datos de ejemplo, misma que posteriormente vamos a separar para después adjuntar.

CREATE DATABASE CURSO_SQL

ON PRIMARY (

NAME = 'CURSO_SQL',

FILENAME  = 'D:\BD\DATAS\CURSO_SQL.mdf',

SIZE = 350MB,

MAXSIZE = 10GB,

FILEGROWTH = 200MB)


Método Transact


Separar la base de datos


Cuando separamos una base de datos, el gestor internamente realiza varias tareas.

  • El servidor envía una solicitud de bloqueo a la base de datos.
  • El servidor espera a que todas las transacciones en curso se confirmen o se reviertan
  • El servidor genera todos los metadatos que necesite para separar la base de datos
  • La base de datos es marcada como eliminada
  • El servidor confirma la transacción.
Si en este momento intentáramos manipular el archivo, por ejemplo cambiarle el nombre, nos aparecería un mensaje de error.


Así que para poder manipularlo existe el procedimiento de sistema llamado sp_detach_db, y lo utilizaremos de la siguiente manera:

use master

GO

EXEC sp_detach_db 'CURSO_SQL'

GO


En estos momentos ya podremos cambiar el nombre a los archivos, copiarlos o moverlos.


Adjuntar la base de Datos


Para adjuntar la base de Datos, no existe como tal un procedimiento como si lo existe para separar, sin embargo, para adjuntar utilizaremos el comando CREATE DATABASE y utilizaremos la opción FOR ATTACH de la siguiente manera:

USE [master]

GO

CREATE DATABASE [CURSO_SQL] ON

( FILENAME = N'D:\BD\DATAS\CURSO_SQL.mdf' ),

( FILENAME = N'D:\BD\DATAS\CURSO_SQL_log.ldf' )

 FOR ATTACH

GO


Como podemos observar, se crea la base de datos, y en la especificación de los archivos, se apunta hacia los archivos existentes, de manera que al crear, toma los archivos y se adjunta la base.

Método gráfico.


Para separar una base de datos en modo gráfico realizaremos lo siguiente:

Daremos clic con el botón derecho del mouse, pasaremos sobre la opción Tareas y daremos clic en la opción Separar.


Después presionamos el botón Aceptar para separar la base de datos



Para adjuntar una base de datos mediante el entorno gráfico realizaremos lo siguiente:

Daremos clic derecho sobre la carpeta Bases de Datos, y seleccionaremos la opción Adjuntar


Mediante el botón agregar buscaremos el archivo mdf que vamos a Adjuntar.



Ahora configuraremos la base de datos adjuntada, podremos cambiar el nombre físico de la base, así como el nombre lógico.




Con eso hemos visto como separar y adjuntar una base de datos.

Hasta aquí el post, espero compartan, comenten, pregunten o den clic en algún anuncio patrocinado que les interese, eso me ayudaría mucho.

Saludos

Referencias

Remón, M. A. (2012). Programación Transact SQL SERVER 2012. Lima: Macro.

 

No hay comentarios.:

Publicar un comentario

Crear tablas en SQL SERVER

 Seguimos con el curso de SQL SERVER y hoy veremos la creación de tablas, hemos visto ya los tipos de datos y el día de hoy comenzaremos a c...