Cómo mover bases de datos de SQL Server mediante las funciones Separar y Adjuntar de SQL Server

Seleccione idioma Seleccione idioma
Id. de artículo: 224071 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo cambiar la ubicación de los archivos de datos y de registro para una base de datos de Microsoft SQL Server 2005, SQL Server 2000 o SQL Server 7.0.

Para obtener más información acerca de cómo mover bases de datos en SQL Server 2008, consulte el tema "Mover bases de datos del sistema" de Libros en pantalla de SQL Server. Para ver este tema, visite el siguiente el sitio web Mover bases de datos del sistema de Microsoft Developer Network (MSDN).

Más información

Los pasos que debe seguir para cambiar la ubicación de algunas bases de datos del sistema de SQL Server no son los mismos que los empleados para cambiar la ubicación de las bases de datos de usuario. Estos casos especiales se describen independientemente.

Nota: las bases de datos del sistema de SQL Server 7.0 no son compatibles con SQL Server 2000. No asocie a SQL Server 2000 las bases de datos master, model, msdb o de distribución de SQL Server 7.0. Si está utilizando SQL Server 2005, solo puede adjuntar bases de datos de SQL Server 2005 a una instancia. En todos los ejemplos de este artículo se supone que SQL Server está instalado en la carpeta D:\Mssql7. Además, se supone que todos los archivos de datos y de registro se encuentran en la carpeta D:\Mssql7\Data predeterminada. En los ejemplos se mueven los archivos de datos y de registro de todas las bases de datos a la carpeta E:\Sqldata.

Las ubicaciones predeterminadas de los datos en las ediciones SQL Server 2005 y SQL Server 2000 son las siguientes:

Requisitos previos

  • Realice una copia de seguridad de todas las bases de datos, especialmente de la base de datos master, desde su ubicación actual.
  • Asegúrese de que dispone de permisos de administrador del sistema.
  • Debe saber el nombre y la ubicación actual de todos los datos y archivos de registro de la base de datos.

    Nota Puede determinar el nombre y la ubicación actual de todos los archivos que usa una base de datos con el procedimiento almacenado sp_helpfile:
    use <database_name>
    go
    sp_helpfile
    go
  • Debe tener acceso exclusivo a la base de datos que va a mover. Si experimenta problemas durante el proceso y no tiene acceso a una base de datos que ha movido, o no puede iniciar SQL Server, busque en el registro de errores de SQL Server y en los Libros en pantalla de SQL Server los detalles relativos a los errores que experimenta.

Mover las bases de datos de usuario

En el ejemplo siguiente se mueve una base de datos que se denomina mydb. Esta base de datos contiene un archivo de datos, Mydb.mdf, y un archivo de registro, Mydblog.ldf. Si la base de datos que va a mover tiene más archivos de datos o de registro, especifíquelos en una lista delimitada por comas en el procedimiento almacenado sp_attach_db. El procedimiento sp_detach_db no cambia, con independencia del número de archivos que contenga la base de datos, porque dicho procedimiento no los enumera.
  1. Inicie SQL Server 2005 Management Studio. Para esto, haga clic sucesivamente en Inicio, Todos los programas, Microsoft SQL Server 2005 y, a continuación, SQL Server Management Studio.
  2. Haga clic en Nueva consulta y, a continuación, separe la base de datos del modo siguiente:
    use master
       go
       sp_detach_db 'mydb'
       go
  3. Copie los archivos de datos y de registro desde la ubicación actual (D:\Mssql7\Data) a la nueva ubicación (E:\Sqldata).
  4. Vuelva a adjuntar la base de datos. Señale a los archivos de la nueva ubicación del modo siguiente:
    use master
      go
      sp_attach_db 'mydb','E:\Sqldata\mydbdata.mdf','E:\Sqldata\mydblog.ldf'
      go
    Compruebe el cambio en las ubicaciones de archivos con el procedimiento almacenado sp_helpfile:
    use mydb
       go
       sp_helpfile
       go
    Los valores de la columna nombreDeArchivo deberían reflejar las nuevas ubicaciones.
Nota: el artículo 922804 de Microsoft Knowledge Base describe un problema de las bases de datos de SQL Server 2005 en un almacenamiento conectado a una red. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
922804 REVISIÓN: Después de separar una base de datos de Microsoft SQL Server 2005 que reside en un almacenamiento conectado a una red, no puede volver a adjuntar esa base de datos de SQL Server
Considere este problema. Además, considere los permisos que se aplican a una base de datos cuando se separa en SQL Server 2005. Para obtener más información, vea la sección sobre cómo separar y adjuntar una base de datos (?Detaching and Attaching a Database?) del tema que trata la protección de los archivos de datos y de registro (?Securing Data and Log Files?) de los Libros en pantalla de SQL Server. Para ver este tema, vaya al sitio web de MSDN Proteger archivos de datos y de registro.

Mover bases de datos de ejemplo

Para mover las bases de datos de ejemplo pubs y Neptuno en SQL Server 2000 o en SQL Server 7.0, o para mover las bases de datos de ejemplo AdventureWorks y AdventureWorksDW en SQL Server 2005, siga el mismo procedimiento que con las bases de datos de usuario.

Mover la base de datos model

SQL Server 2005 y SQL Server 2000

SQL Server 7.0

Mover la base de datos MSDB

SQL Server 2005 y SQL Server 2000

SQL Server 7.0

Mover la base de datos master

SQL Server 2005

SQL Server 2000 y SQL Server 7.0

Mover la base de datos tempdb

Los archivos de tempdb se pueden mover mediante la instrucción ALTER DATABASE.
  1. Determine los nombres de archivo lógicos para la base de datos tempdb utilizando sp_helpfile como sigue:
    use tempdb
    go
    sp_helpfile
    go
    El nombre lógico para cada archivo está contenido en la columna name. Este ejemplo utiliza los nombres de archivo predeterminados de tempdev y templog.
  2. Utilice la instrucción ALTER DATABASE, especificando el nombre de archivo lógico del siguiente modo:
    use master
    go
    Alter database tempdb modify file (name = tempdev, filename = 'E:\Sqldata\tempdb.mdf')
    go
    Alter database tempdb modify file (name = templog, filename = 'E:\Sqldata\templog.ldf')
    go
    Debe recibir los mensajes siguientes para confirmar el cambio:
    Mensaje 1
    Archivo 'tempdev' modificado en sysaltfiles. Elimine el archivo antiguo después de reiniciar SQL Server.
    Mensaje 2
    Archivo 'templog' modificado en sysaltfiles. Elimine el archivo antiguo después de reiniciar SQL Server.
  3. El uso de sp_helpfile en tempdb no confirmará estos cambios hasta que reinicie SQL Server.
  4. Detenga y reinicie SQL Server.

Referencias

Para obtener más información al respecto, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
912397 El servicio SQL Server no se puede iniciar cuando cambia un parámetro de inicio de una instancia de clúster de SQL Server 2000 o de SQL Server 2005 a un valor que no es válido
274188 El tema "Solucionar problemas de usuarios huérfanos" de los Libros en pantalla está incompleto
246133 Cómo transferir inicios de sesión y contraseñas entre servidores SQL Server
168001 Los permisos e inicios de sesión de usuario en una base de datos pueden ser incorrectos cuando la base de datos se ha restaurado

Para obtener más información al respecto, consulte los libros siguientes:
Microsoft Corporation
Microsoft SQL Server 7.0 System Administration Training Kit
Microsoft Press, 2001
Microsoft Corporation
MCSE Training Kit: Microsoft SQL Server 2000 System Administration
Microsoft Press, 2001
Microsoft Corporation
Kit de recursos de Microsoft SQL Server 2000
Microsoft Press, 2001

Propiedades

Id. de artículo: 224071 - Última revisión: miércoles, 21 de agosto de 2013 - Versión: 17.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Palabras clave: 
kbsqlsetup kbinfo KB224071

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com