Sie sind auf Seite 1von 11

Adjuntar y separar bases de datos

(SQL Server)
Los archivos de registro de datos y transacciones de una base de datos se
pueden desasociar y volverse a adjuntar posteriormente a la misma instancia u
otra instancia de SQL Server. Separar y adjuntar una base de datos es til si
desea cambiar la base de datos a otra instancia de SQL Server en el mismo
equipo o si desea mover la base de datos.
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.

Importante

Se recomienda no adjuntar ni restaurar bases de datos de orgenes


desconocidos o que no sean de confianza. Es posible que dichas bases de
datos contengan cdigo malintencionado que podra ejecutar cdigo
Transact-SQL no deseado o provocar errores al modificar el esquema o la
estructura de la base de datos fsica. 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 produccin y examine tambin
el cdigo, como procedimientos almacenados u otro cdigo definido por el
usuario, en la base de datos.

Separar una base de datos


Al separar una base de datos, la est quitando de la instancia de SQL Server ,
pero la deja intacta en sus archivos de datos y en los archivos de registro de
transacciones. Estos archivos pueden utilizarse despus para adjuntar la base
de datos a cualquier instancia de SQL Server, incluido el servidor del que se
separ.
No podr separar una base de datos si se cumple cualquiera de las
condiciones siguientes:
La base de datos est replicada y publicada. Si est replicada, la base
de datos no debe estar publicada. Antes de separarla, debe deshabilitar
la publicacin ejecutando sp_replicationdboption.

Nota

Si no puede usar sp_replicationdboption, puede quitar la replicacin


ejecutando sp_removedbreplication.
Existe una instantnea de base de datos en la base de datos.
Para poder separar la base de datos, debe quitar todas sus
instantneas. Para obtener ms informacin, vea Eliminar una
instantnea de base de datos (Transact-SQL).

Nota

No puede separar ni adjuntar una instantnea de base de datos.


Se va a reflejar la base de datos en una sesin de creacin de reflejo de
la base de datos.
No se puede separar la base de datos a menos que se termine la
sesin. Para obtener ms informacin, vea Quitar la creacin de reflejo
de la base de datos (SQL Server).
La base de datos es sospechosa. Una base de datos sospechosa no
puede ser separada. Antes de poder separarla, debe ponerla en modo
de emergencia. Para obtener ms informacin sobre cmo poner una
base de datos en modo de emergencia, vea ALTER DATABASE
(Transact-SQL).
La base de datos es una base de datos del sistema.
Hacer copias de seguridad y restauracin, y separar.

Al separar una base de datos de solo lectura se pierde informacin acerca de


las bases diferenciales de las copias de seguridad diferenciales. Para obtener
ms informacin, vea Copias de seguridad diferenciales (SQL Server).

Responder a errores de separacin


Los errores generados durante la separacin de una base de datos pueden
impedir que la base de datos se cierre sin problemas y que se vuelva a generar
el registro de transacciones. Si recibe un mensaje de error, realice las
siguientes acciones correctoras:
1. Vuelva a adjuntar todos los archivos asociados a la base de datos, no
solo el archivo principal.
2. Resuelva el problema que caus el mensaje de error.
3. Vuelva a separar la base de datos.

Adjuntar una base de datos


Puede adjuntar una base de datos de SQL Server copiada o separada. Al
adjuntar una base de datos de Resultado de que contiene los archivos de
catlogo de texto completo a una instancia del servidor de SQL Server 2016,
los archivos de catlogo se adjuntan de su ubicacin anterior junto con los
dems archivos de base de datos, igual que en Resultado de. Para obtener
ms informacin, vea Actualizar la bsqueda de texto completo.
Al adjuntar una base de datos, todos los archivos de datos deben estar
disponibles (archivos MDF y NDF). Si algn archivo de datos tiene una ruta de
acceso diferente a la que tena cuando se cre la base de datos o cuando sta
se adjunt por ltima vez, debe especificar la ruta actual.

Nota

Si el archivo de datos principal que se va a adjuntar es de solo lectura, Motor


de base de datos considera que la base de datos es de solo lectura.
Cuando se adjunta una base de datos cifrada a una instancia de SQL Server
por primera vez, el propietario debe abrir la clave maestra de esa base de
datos ejecutando la siguiente instruccin: OPEN MASTER KEY DECRYPTION
BY PASSWORD = 'contrasea'. Se recomienda habilitar el descifrado
automtico de la clave maestra mediante la ejecucin de la siguiente
instruccin: ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER
KEY. Para obtener ms informacin, vea CREATE MASTER KEY (Transact-
SQL) y ALTER MASTER KEY (Transact-SQL).
Las condiciones para adjuntar archivos de registro dependen, en parte, de si la
base de datos es de lectura y escritura o de solo lectura. Vea a continuacin:
Para una base de datos de lectura y escritura, normalmente, podr
adjuntar un archivo de registro a una ubicacin nueva. Sin embargo, en
algunos casos, para volver a adjuntar una base de datos son necesarios
sus archivos de registro. Por tanto, es importante mantener siempre
todos los archivos de registro separados hasta que la base de datos se
haya adjuntado correctamente sin ellos.
Si una base de datos de lectura y escritura contiene solo un archivo de
registro y no se especifica una ubicacin nueva para el mismo, al
adjuntar la base de datos se buscar el archivo en la ubicacin antigua.
Si se encuentra, se usar el archivo de registro antiguo, sin tener en
cuenta si la base de datos se cerr correctamente. No obstante, si el
archivo de registro antiguo no se encuentra, la base de datos se cerr
correctamente y no hay ninguna cadena de registros activa, al adjuntar
se intentar crear un archivo de registro nuevo para la base de datos.
Si el archivo de datos principal que se va a adjuntar es de solo lectura,
Motor de base de datos considera que la base de datos es de solo
lectura. Para una base de datos de solo lectura, los archivos de registro
deben estar disponibles en la ubicacin especificada en el archivo
principal de la base de datos. No se puede compilar un archivo de
registro nuevo porque SQL Server no puede actualizar la ubicacin del
registro almacenada en el archivo principal.

Cambios en los metadatos al adjuntar una base de datos.


Cuando se separa y se vuelve a adjuntar una base de datos de solo lectura, se
pierde la informacin de copia de seguridad acerca de la base diferencial.
La base diferencial es la copia de seguridad ms reciente de todos los datos de
una base de datos o de un subconjunto de archivos o grupos de archivos de la
misma. Sin la informacin de la copia de seguridad bsica, la base de
datos maestra deja de estar sincronizada con la base de datos de solo lectura,
de modo que las copias de seguridad diferenciales tomadas despus pueden
proporcionar resultados inesperados. Por lo tanto, si utiliza copias de seguridad
diferenciales con una base de datos de solo lectura, deber establecer una
nueva base diferencial actual realizando una copia de seguridad completa
despus de volver a adjuntar la base de datos. Para obtener ms informacin
sobre las copias de seguridad diferenciales, vea Copias de seguridad
diferenciales (SQL Server).
Al adjuntar, la base de datos se inicia. Normalmente, al adjuntar una base de
datos, esta vuelve al mismo estado en el que estaba cuando fue separada o
copiada. Sin embargo, las operaciones de adjuntar y separar deshabilitan el
encadenamiento de propiedades entre bases de datos para la base de datos.
Para obtener ms informacin sobre cmo habilitar el encadenamiento,
vea cross db ownership chaining (opcin de configuracin del servidor).
Asimismo, TRUSTWORTHY se establece en OFF siempre que la base de
datos se adjunta. Para obtener ms informacin sobre cmo establecer
TRUSTWORTHY en ON, vea ALTER DATABASE (Transact-SQL).

Hacer copias de seguridad y restauracin, y adjuntar


Al igual que cualquier base de datos que est total o parcialmente sin conexin,
no es posible adjuntar una base de datos con archivos que se estn
restaurando. Puede adjuntar la base de datos si detiene la secuencia de
restauracin. Posteriormente, puede reiniciar la secuencia de restauracin.

Adjuntar una base de datos a otra instancia de servidor

Importante

Una base de datos creada por una versin ms reciente de SQL Server no
puede adjuntarse en versiones anteriores.
Al adjuntar una base de datos a otra instancia de servidor, es posible que tenga
que volver a crear una parte o la totalidad de los metadatos de la base de
datos, por ejemplo los inicios de sesin y los trabajos, en la otra instancia de
servidor; de este modo se proporciona una experiencia coherente a usuarios y
aplicaciones. Para obtener ms informacin, vea Administrar los metadatos
cuando una base de datos pasa a estar disponible en otra instancia del servidor
(SQL Server).
Archivos y grupos de archivos de
base de datos
Como mnimo, todas las bases de datos de SQL Server tienen dos archivos del
sistema operativo: un archivo de datos y un archivo de registro. Los archivos de
datos contienen datos y otros objetos, como tablas, ndices, procedimientos
almacenados y vistas. Los archivos de registro contienen la informacin
necesaria para recuperar todas las transacciones de la base de datos. Los
archivos de datos se pueden agrupar en grupos de archivos para su asignacin
y administracin.

Archivos de la base de datos


SQL Server tienen tres tipos de archivos, tal como se muestra en la tabla
siguiente.

Archivo Descripcin

Principal El archivo de datos principal incluye la informacin de inicio


de la base de datos y apunta a los dems archivos de la
misma. Los datos y objetos del usuario se pueden
almacenar en este archivo o en archivos de datos
secundarios. Cada base de datos tiene un archivo de datos
principal. La extensin recomendada para los nombres de
archivos de datos principales es .mdf.

Secundario Los archivos de datos secundarios son opcionales, estn


definidos por el usuario y almacenan los datos del usuario.
Se pueden utilizar para distribuir datos en varios discos
colocando cada archivo en una unidad de disco distinta.
Adems, si una base de datos supera el tamao mximo
establecido para un archivo de Windows, puede utilizar los
archivos de datos secundarios para permitir el crecimiento
de la base de datos.

La extensin de nombre de archivo recomendada para los


archivos de datos secundarios es .ndf.

Registro de Los archivos del registro de transacciones contienen la


transacciones informacin de registro que se utiliza para recuperar la
base de datos. Cada base de datos debe tener al menos
Archivo Descripcin

un archivo de registro. La extensin recomendada para los


nombres de archivos de registro es .ldf.

Por ejemplo, puede crearse una base de datos sencilla


denominada Ventas con un archivo principal que contenga todos los datos y
objetos y un archivo de registro con la informacin del registro de
transacciones. Por otra parte, puede crearse una base de datos ms
compleja, Pedidos , compuesta por un archivo principal y cinco archivos
secundarios. Los datos y objetos de la base de datos se reparten entre los seis
archivos, y cuatro archivos de registro adicionales contienen la informacin del
registro de transacciones.
De forma predeterminada, los datos y los registros de transacciones se colocan
en la misma unidad y ruta de acceso para administrar los sistemas de un solo
disco, pero puede que esto no resulte ptimo para los entornos de produccin.
Se recomienda colocar los archivos de datos y de registro en distintos discos.

Nombres de archivo lgico y fsico


Los archivos de SQL Server tienen dos nombres:
logical_file_name: logical_file_name es el nombre que se usa para hacer
referencia al archivo fsico en todas las instrucciones Transact-SQL. El nombre
de archivo lgico tiene que cumplir las reglas de los identificadores de SQL
Server y tiene que ser nico entre los nombres de archivos lgicos de la base
de datos.
os_file_name: os_file_name es el nombre del archivo fsico que incluye la ruta
de acceso al directorio. Debe seguir las reglas para nombres de archivos del
sistema operativo.
Los archivos de datos y de registro de SQL Server se pueden colocar en
sistemas de archivos FAT o NTFS. Se recomienda utilizar el sistema de
archivos NTFS por las caractersticas de seguridad que ofrece. No se pueden
colocar grupos de archivos de datos de lectura/escritura, y archivos de registro,
en un sistema de archivos NTFS comprimido. Solo las bases de datos de solo
lectura y los grupos de archivos secundarios de solo lectura se pueden colocar
en un sistema de archivos NTFS comprimido.
Cuando se ejecutan varias instancias de SQL Server en un nico equipo, cada
instancia recibe un directorio predeterminado diferente para albergar los
archivos de las bases de datos creadas en la instancia. Para obtener ms
informacin, vea Ubicaciones de archivos para las instancias predeterminadas
y con nombre de SQL Server.

Pginas de archivo de datos


Las pginas de un archivo de datos de SQL Server estn numeradas
secuencialmente, comenzando por cero (0) para la primera pgina del archivo.
Cada archivo de una base de datos tiene un nmero de identificador nico.
Para identificar de forma nica una pgina de una base de datos, se requiere el
identificador del archivo y el nmero de la pgina. El siguiente ejemplo muestra
los nmeros de pgina de una base de datos que tiene un archivo de datos
principal de 4 MB y un archivo de datos secundario de 1 MB.
La primera pgina de cada archivo es una pgina de encabezado de archivo
que contiene informacin acerca de los atributos del archivo. Algunas de las
otras pginas del comienzo del archivo tambin contienen informacin de
sistema, como mapas de asignacin. Una de las pginas de sistema
almacenadas en el archivo de datos principal y en el archivo de registro
principal es una pgina de arranque de la base de datos que contiene
informacin acerca de los atributos de la base de datos. Para obtener ms
informacin sobre las pginas y los tipos de pginas, vea Descripcin de
pginas y extensiones.

Tamao de archivo
Los archivos de SQL Server pueden crecer de forma automtica a partir del
tamao especificado inicialmente. Cuando se define un archivo, se puede
especificar un incremento de crecimiento. Cada vez que se llena el archivo, el
tamao aumenta en la cantidad especificada. Si hay varios archivos en un
grupo de archivos, no crecern automticamente hasta que todos los archivos
estn llenos. A continuacin, el crecimiento tiene lugar por turnos.
Cada archivo tambin puede tener un tamao mximo especificado. Si no se
especifica un tamao mximo, el archivo puede crecer hasta utilizar todo el
espacio disponible en el disco. Esta caracterstica es especialmente til cuando
SQL Server se usa como una base de datos incrustada en una aplicacin para
la que el usuario no dispone fcilmente de acceso a un administrador del
sistema. El usuario puede dejar que los archivos crezcan automticamente
cuando sea necesario y evitar as las tareas administrativas de supervisar la
cantidad de espacio disponible en la base de datos y asignar ms espacio
manualmente.

Archivos de instantneas de bases de datos


La forma de archivo que utiliza una instantnea de base de datos para
almacenar sus datos de copia por escritura depende de si la instantnea la ha
creado un usuario o se utiliza internamente:

Una instantnea de base de datos que crea un usuario almacena sus


datos en uno o ms archivos dispersos. La tecnologa de archivos
dispersos es una caracterstica del sistema de archivos NTFS. Al
principio, un archivo disperso no incluye datos de usuario y no se le
asigna espacio en disco. Para obtener informacin general sobre el uso
de los archivos dispersos en instantneas de bases de datos y el
crecimiento de estas, vea Ver el tamao del archivo disperso de una
instantnea de base de datos (Transact-SQL).

Las instantneas de bases de datos las utilizan internamente algunos


comandos DBCC. Entre estos comandos se incluyen: DBCC CHECKDB,
DBCC CHECKTABLE, DBCC CHECKALLOC y DBCC
CHECKFILEGROUP. Una instantnea de base de datos interna utiliza
flujos de datos alternativos dispersos de los archivos de base de datos
originales. Como los archivos dispersos, los flujos de datos alternativos
son una caracterstica del sistema de archivos NTFS. El uso de los flujos
de datos alternativos dispersos permite que varias asignaciones de
datos se asocien a un nico archivo o carpeta sin afectar a las
estadsticas de tamao o volumen.

Grupos de archivos
Cada base de datos tiene un grupo de archivos principal. Este grupo de
archivos contiene el archivo de datos principal y cualquier otro archivo
secundario que no se encuentre en otro grupo de archivos. Se pueden crear
grupos de archivos definidos por el usuario para agrupar archivos con fines
administrativos y de asignacin y ubicacin de datos.
Por ejemplo, pueden crearse tres archivos, Datos1.ndf, Datos2.ndf y
Datos3.ndf, en tres unidades de disco respectivamente para asignarlos
posteriormente al grupo de archivos grArchivos1. A continuacin, se puede
crear una tabla especficamente para el grupo de archivos grArchivos1. Las
consultas de datos de la tabla se distribuirn por los tres discos, con lo que
mejorar el rendimiento. Puede obtenerse la misma mejora del rendimiento con
un solo archivo creado en un conjunto de bandas RAID (matriz redundante de
discos independientes). No obstante, los archivos y grupos de archivos
permiten agregar fcilmente nuevos archivos a discos nuevos.
Todos los archivos de datos se almacenan en los grupos de archivos que se
indican en la tabla siguiente.

Grupo de
Descripcin
archivos

Principal Grupo de archivos que contiene el archivo principal. Todas


las tablas del sistema se asignan al grupo de archivos
principal.

Definidos por Cualquier grupo de archivos creado especficamente por el


el usuario usuario al crear la base de datos o al modificarla.

Grupo de archivos predeterminado


Cuando se crean objetos en la base de datos sin especificar a qu grupo de
archivos pertenecen, se asignan al grupo de archivos predeterminado. Siempre
existe un grupo de archivos designado como predeterminado. Los archivos del
grupo de archivos predeterminado deben ser lo suficientemente grandes como
para dar cabida a todos los objetos nuevos no asignados a otros grupos de
archivos.
El grupo de archivos PRINCIPAL es el predeterminado, a menos que se cambie
mediante la instruccin ALTER DATABASE. Los objetos y las tablas del sistema
no se asignan al nuevo grupo de archivos predeterminado, sino que siguen
asignados al grupo de archivos PRIMARY.
Integridad de los datos
La exigencia de integridad de los datos garantiza la calidad de los datos de la
base de datos. Por ejemplo, si se especifica para un empleado el valor de
identificador de 123, la base de datos no debe permitir que ningn otro
empleado tenga el mismo valor de identificador. Si tiene una
columna employee_rating para la que se prevean valores entre 1 y 5, la base
de datos no debe aceptar valores fuera de ese intervalo. Si en la tabla hay una
columna dept_id en la que se almacena el nmero de departamento del
empleado, la base de datos slo debe permitir valores que correspondan a los
nmeros de departamento de la empresa.
Dos pasos importantes en el diseo de las tablas son la identificacin de
valores vlidos para una columna y la determinacin de cmo forzar la
integridad de los datos en la columna. La integridad de datos pertenece a una
de las siguientes categoras:
Integridad de entidad
Integridad de dominio
Integridad referencial
Integridad definida por el usuario

Integridad de entidad
La integridad de entidad define una fila como entidad nica para una tabla
determinada. La integridad de entidad exige la integridad de las columnas de
los identificadores o la clave principal de una tabla, mediante ndices y
restricciones UNIQUE, o restricciones PRIMARY KEY.

Integridad de dominio
La integridad de dominio viene dada por la validez de las entradas para una
columna determinada. Puede exigir la integridad de dominio para restringir el
tipo mediante tipos de datos, el formato mediante reglas y restricciones
CHECK, o el intervalo de valores posibles mediante restricciones FOREIGN
KEY, restricciones CHECK, definiciones DEFAULT, definiciones NOT NULL y
reglas.

Integridad referencial
La integridad referencial protege las relaciones definidas entre las tablas
cuando se crean o se eliminan filas. En SQL Server la integridad referencial se
basa en las relaciones entre claves externas y claves principales o entre claves
externas y claves exclusivas, mediante restricciones FOREIGN KEY y CHECK.
La integridad referencial garantiza que los valores de clave sean coherentes en
las distintas tablas. Para conseguir esa coherencia, es preciso que no haya
referencias a valores inexistentes y que, si cambia el valor de una clave, todas
las referencias a ella se cambien en consecuencia en toda la base de datos.
Cuando se exige la integridad referencial, SQL Server impide a los usuarios:
Agregar o cambiar filas en una tabla relacionada si no hay ninguna fila
asociada en la tabla principal.
Cambiar valores en una tabla principal que crea filas hurfanas en una
tabla relacionada.
Eliminar filas de una tabla principal cuando hay filas relacionadas
coincidentes.
Por ejemplo, en las tablas Sales.SalesOrderDetail y Production.Product de
la base de datos AdventureWorks2008R2, la integridad referencial se basa en
la relacin entre la clave externa (ProductID) de la
tabla Sales.SalesOrderDetail y la clave principal (ProductID) de la
tabla Production.Product. Esta relacin garantiza que un pedido de ventas no
pueda nunca hacer referencia a un producto que no existe en la
tabla Production.Product.

Integridad definida por el usuario


La integridad definida por el usuario permite definir reglas de empresa
especficas que no pertenecen a ninguna otra categora de integridad. Todas
las categoras de integridad admiten la integridad definida por el usuario. Esto
incluye todas las restricciones de nivel de columna y nivel de tabla en CREATE
TABLE, procedimientos almacenados y desencadenadores.

Das könnte Ihnen auch gefallen