sql >> Base de Datos >  >> RDS >> Sqlserver

Uso de DBCC CLONEDATABASE para generar una copia de esquema y estadísticas de una base de datos de usuario en SQL Server 2014 SP2

DBCC CLONEDATABASE es un nuevo comando DBCC introducido en SQL Server 2014 SP 2 que se usa para crear el clon de una base de datos de usuario específica que ayuda a solucionar los problemas de rendimiento relacionados con el optimizador de consultas.

Cuando un clon de la base de datos se crea utilizando DBCC CLONEDATABASE, creará una copia de esquema y estadísticas solo de la base de datos especificada y no contiene ninguna copia de los datos.

Crear el clon es tan simple como pasar la fuente nombre de la base de datos y clonar el nombre de la base de datos al comando DBCC.
DBCC CLONEDATABASE ('SansSQL', 'SansSQL_Clone') 

Salida del comando DBCC

Una vez completada la clonación, la base de datos clonada estará en modo de solo lectura.

SELECCIONE nombre, id_de_base_de_datos, es_de_solo_lectura DESDE sys.databases DONDE nombre en ('SansSQL ', 'SansSQL_Clone') 

Entonces, ¿qué sucede realmente cuando ejecutamos el comando DBCC CLONEDATABASE en una base de datos?
Comenzará con algunas validaciones antes de que se cree el clon, DBCC CLONEDATABASE realiza las siguientes validaciones. El comando falla si alguna de las validaciones falla.
  • La base de datos de origen debe ser una base de datos de usuario. No se permite la clonación de bases de datos del sistema (maestra, modelo, msdb, tempdb, base de datos de distribución, etc.).
  • La base de datos de origen debe estar en línea o ser legible.
  • No debe existir una base de datos que use el mismo nombre que la base de datos clonada.
  • El comando no está en una transacción de usuario.
Si todas las validaciones tienen éxito, DBCC CLONEDATABASE realizará las siguientes operaciones:
  • Creación de un archivo de datos principal y un archivo de registro
  • Agregar espacios de datos secundarios
  • Agregar archivos secundarios
Los archivos de la base de datos de destino heredarán la configuración de tamaño y crecimiento de la base de datos modelo y los nombres de archivo de la base de datos de destino seguirán la convención source_file_name _underscore_random_number.

Luego, DBCC CLONEDATABASE realizará una instantánea de la base de datos interna con los siguientes pasos
  • Validar la base de datos de origen
  • Obtenga S lock para la base de datos de origen
  • Crear una instantánea de la base de datos de origen
  • Cree una base de datos clonada (esta es una base de datos vacía que hereda del modelo)
  • Obtener bloqueo X para la base de datos clonada
  • Copie los metadatos a la base de datos clonada
  • Liberar todos los bloqueos de base de datos
Usando el siguiente comando, podemos verificar si una base de datos es un clon o una base de datos normal. pre>

Referencia:https://support.microsoft.com/en-in/kb/3177838