Creazione di una visualizzazione partizionata nel database di archiviazione
Quando si esegue il pacchetto di manutenzione dati BAM (BAM_DM_<activity name>
) BAM copia ogni partizione nel database Di importazione primaria BAM in una tabella separata nel database di archiviazione BAM. Se si scollega il database di archiviazione e quindi lo si ricollega per l'esecuzione di una query, sarà difficile individuare i dati per la query.
Per facilitare l'individuazione dei dati, è possibile creare visualizzazioni partizionate nel database di archiviazione BAM. BAM supporta un massimo di 253 partizioni. Per ogni attività, BAM genera un pacchetto DTS di manutenzione dei dati BAM che copia i dati delle attività nel database di archiviazione BAM e quindi li rimuove dal database di importazione primaria BAM. Se si verifica un errore del database di archiviazione dopo la copia dei dati ma prima del backup successivo, i dati andranno perduti.
Per evitare di perdere i dati, è opportuno disporre di un unico pacchetto di archiviazione che prima copia i dati precedenti relativi a tutte le attività, quindi esegue il backup del database di archiviazione BAM e infine elimina tutte le partizioni copiate dal database di importazione primaria BAM.
Prerequisiti
Per eseguire questa procedura è necessario accedere come membro del gruppo Amministratori BizTalk Server.
Creare una visualizzazione partizionata nel database di archivio BAM (SQL Server 2008 SP1 o SQL Server 2008 R2)
Aprire SQL Server Management Studio.
Selezionare il database di archivio BAM e quindi fare clic su Nuova query.
Scegliere Risultati dal menu Query e quindi fare clic su Risultati su Testo.
Copiare nel riquadro della query lo script SQL riportato di seguito. Sostituire <il nome dell'attività con il nome> dell'attività e sostituire
<view type>
con istanze per la visualizzazione istanza o Relazioni per la visualizzazione relazione .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
Esecuzione della query.