Mueva el archivo de registro sin desconectar la base de datos

Respuestas:

16

No hay forma de hacer esto con una base de datos en línea.

Cuando mueve un archivo de base de datos ( ALTER DATABASE ... MODIFY FILE), incluso recibe el siguiente mensaje:

El archivo "YourFile" se ha modificado en el catálogo del sistema. La nueva ruta se usará la próxima vez que se inicie la base de datos .


La forma normal de hacerlo sería separar la base de datos, mover el archivo de registro y luego volver a conectar la base de datos.

Esa no es la forma "normal" o aceptada en que lo haría. Para mover archivos de base de datos, hago lo siguiente:

  1. Ejecute un comando ALTER DATABASE para cambiar la ubicación de los archivos
  2. Poner la base de datos fuera de línea
  3. Mueva físicamente los archivos a la nueva ubicación especificada en el paso 1
  4. Poner la base de datos en línea

Consulte esta referencia en TechNet: Mover bases de datos de usuario

Thomas Stringer
fuente
3

Según la referencia en las bases de datos de usuarios de TechNet Move de la respuesta de Thomas Stringer , si desea mover los archivos sin detener toda la instancia de SQL Server (siguiendo el "Procedimiento de reubicación planificado"), el orden debe ser:

ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;

Tenga en cuenta el OFFLINE primero; luego mueva los archivos y dígale a SQL Server sobre las nuevas ubicaciones.

Si necesita eliminar toda la instancia de SQL Server (consulte el procedimiento para "Reubicación para el mantenimiento programado del disco"), es mejor modificar primero las ubicaciones de los archivos para que cuando se reinicie la instancia, no haya problemas para encontrar los archivos en las nuevas ubicaciones

DocOc
fuente
1

Sé que esta es una pregunta anterior, pero ¿no puede simplemente agregar un segundo archivo de registro (que luego es utilizado por el DB en lugar del original) en la nueva ubicación y luego reducir / eliminar el original?

ibmdba
fuente