Crear una vista con particiones en la base de datos de archivo
Al ejecutar el paquete de mantenimiento de datos de BAM (BAM_DM_<activity name>
) BAM copia cada partición de la base de datos de importación principal de BAM en una tabla independiente de la base de datos de archivo de BAM. Si desasocia la base de datos de archivo y vuelve a asociarla para las consultas, resultará difícil localizar los datos para la consulta.
Puede crear vistas con particiones en la base de datos de archivo BAM para facilitar la localización de los datos. BAM admite hasta 253 particiones. BAM genera, para cada actividad, un paquete DTS de mantenimiento de datos de BAM que se encarga de copiar los datos de actividad a la base de datos de archivo BAM y, después, los quita de la base de datos de importación principal de BAM. Si la base de datos de archivo se bloquea después de copiar los datos y antes de efectuar la siguiente copia de seguridad, los datos se perderán.
La solución para evitar la pérdida de datos consiste en disponer de un solo paquete de archivo, que primero copia los datos antiguos de todas las actividades, después realiza la copia de seguridad de la base de datos de archivo BAM y, finalmente, descarga las particiones copiadas desde la base de datos de importación principal de BAM.
Requisitos previos
Para llevar a cabo este procedimiento, debe haber iniciado la sesión como miembro del grupo de administradores de BizTalk Server.
Crear una vista con particiones en la base de datos de archivo de BAM (SQL Server 2008 SP1 o SQL Server 2008 R2)
Abra SQL Server Management Studio.
Seleccione la base de datos de archivo de BAM y, a continuación, haga clic en Nueva consulta.
En el menú Consulta , seleccione Resultados a y, a continuación, haga clic en Resultados en Texto.
Copie la siguiente secuencia de comandos SQL en el panel de consulta. Reemplace <el nombre> de la actividad por el nombre de la actividad y reemplace por
<view type>
Instancias para la vista de instancia o relaciones para la vista de relación.set nocount on declare @activityName as nvarchar(128) declare @viewType as nvarchar(50) set @activityName = N'<activity name>'-- Substitute your activity name here set @viewType = N'<view type>'-- Substitute the view type here, either "Instances" or "Relationships" declare @tableName nvarchar(128) declare @viewName nvarchar(128) declare @isFirstTable bit declare @scriptLine nvarchar(300) set @viewName = N'bam_' + @activityName + '_' + @viewType + 'View' select N'SELECT Name FROM sysobjects where name = N''' + @viewName + ''' and type = ''V''' + char(13) + char(10) + 'IF @@ROWCOUNT > 0 DROP VIEW ' + @viewName + char(13) + char(10) + 'GO' select 'CREATE VIEW ' + @viewName + ' AS ' + char(13) + char(10) declare instance_cursor cursor local for select name from sysobjects where name like N'bam_' + @activityName + '_' + @viewType + '_%' and type = 'U' SET @isFirstTable = 1 OPEN instance_cursor FETCH NEXT FROM instance_cursor INTO @tableName WHILE @@fetch_status = 0 BEGIN if @isFirstTable = 1 BEGIN SET @scriptLine = N'SELECT * FROM [' + @tableName + ']' SET @isFirstTable = 0 END ELSE SET @scriptLine = N'UNION ALL SELECT * FROM [' + @tableName + ']' SELECT @scriptLine FETCH NEXT FROM instance_cursor INTO @tableName END CLOSE instance_cursor DEALLOCATE instance_cursor select 'GO' set nocount off
Ejecutar la consulta.