Hay veces por el crecimiento de una BD que puede ser necesario mover un datafile, de una Base de datos que esta siendo replicada a otro disco.
El procedimiento normal seria hacer un detach de la BD y mover los datafiles al nuevo drive, sin embargo esto no es posible cuando una BD esta replicada. Para estos casos se tendria que deshacer la replica, hacer detach de la BD, mover los datafiles hacer attach de las BD y volver a crear la replica.
En SQL 7 y SQL 2000 hay un camino mas facil. Cabe mencionar que como involucra actualizar manualmente las tablas de sistema esto NO esta soportado por Microsoft. Aunque yo lo he hecho muchas veces y nunca he tenido problemas.
Primero hay que activar el setting "Allow Modifications to be made directly to the system catalogs" que esta en Server Settings en las opciones del Servidor en el enterprise manager. Recuerden sacar un respaldo de Master por cualquier problema que podamos llegar a tener.
Una vez hecho esto matamos o desconectamos todas las sesiones a la BD que vamos a mover, por ejemplo pubs, y ya que no tengamos conexiones ponemos la BD en status offline. En offline SQL Server Libera los datafiles y los podemos mover.
Ya que la BD este en offline procedemos a mover los datafiles a su nueva ruta. Ya que esten copiados los archivos en la BD de master tenemos que modficar las tablas sysaltfiles y sysdatabases ambas en su campo filename, ahi tenemos que poner la nueva ruta de los archivos. (Sysaltfiles son mdf, ndf y logs. En sysdatabases solo es el archivo MDF el que hay que especificar)
Cuando este lista la modificacion, ponemos la BD en online y listo. La replicacion debe de seguir funcionando en donde se quedo y los usuarios pueden volver a conectarse.
Hay veces que al modificar sysaltfiles o sysdatabases marca error, esto es por que SQL Server Agrega muchos espacios vacios al final, solo hay que eliminarlos y ya no debe de marcar errores.
Nota: La ejecución de este procedimiento es responsabilidad de quien lo ejecuta.
El procedimiento normal seria hacer un detach de la BD y mover los datafiles al nuevo drive, sin embargo esto no es posible cuando una BD esta replicada. Para estos casos se tendria que deshacer la replica, hacer detach de la BD, mover los datafiles hacer attach de las BD y volver a crear la replica.
En SQL 7 y SQL 2000 hay un camino mas facil. Cabe mencionar que como involucra actualizar manualmente las tablas de sistema esto NO esta soportado por Microsoft. Aunque yo lo he hecho muchas veces y nunca he tenido problemas.
Primero hay que activar el setting "Allow Modifications to be made directly to the system catalogs" que esta en Server Settings en las opciones del Servidor en el enterprise manager. Recuerden sacar un respaldo de Master por cualquier problema que podamos llegar a tener.
Una vez hecho esto matamos o desconectamos todas las sesiones a la BD que vamos a mover, por ejemplo pubs, y ya que no tengamos conexiones ponemos la BD en status offline. En offline SQL Server Libera los datafiles y los podemos mover.
Ya que la BD este en offline procedemos a mover los datafiles a su nueva ruta. Ya que esten copiados los archivos en la BD de master tenemos que modficar las tablas sysaltfiles y sysdatabases ambas en su campo filename, ahi tenemos que poner la nueva ruta de los archivos. (Sysaltfiles son mdf, ndf y logs. En sysdatabases solo es el archivo MDF el que hay que especificar)
Cuando este lista la modificacion, ponemos la BD en online y listo. La replicacion debe de seguir funcionando en donde se quedo y los usuarios pueden volver a conectarse.
Hay veces que al modificar sysaltfiles o sysdatabases marca error, esto es por que SQL Server Agrega muchos espacios vacios al final, solo hay que eliminarlos y ya no debe de marcar errores.
Nota: La ejecución de este procedimiento es responsabilidad de quien lo ejecuta.
Comentarios
Publicar un comentario