Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 lo si ricollega per l'esecuzione di query, sarà difficile individuare i dati per la query.
È possibile creare viste partizionate nel database di archivio BAM per facilitare l'individuazione dei dati. BAM supporta fino a 253 partizioni. Per ogni attività, BAM genera un pacchetto DTS di manutenzione dati BAM, che copia i dati dell'attività nel database di archiviazione BAM e quindi li rimuove dal database di importazione primaria BAM. Se il database di archiviazione non riesce dopo la copia dei dati, ma prima del backup successivo, i dati andranno persi.
La soluzione per evitare la perdita di dati consiste nell'avere un singolo pacchetto di archiviazione, che copia prima i dati precedenti da tutte le attività, quindi esegue il backup del database di archiviazione BAM e infine elimina le partizioni copiate dal database di importazione primaria BAM.
Prerequisiti
Per eseguire questa procedura, è necessario essere connessi come membro del gruppo Amministratori di BizTalk Server.
Creare una vista partizionata nel database di archivio BAM (SQL Server 2008 SP1 o SQL Server 2008 R2)
Aprire SQL Server Management Studio.
Selezionare il database di archiviazione BAM e quindi fare clic su Nuova query.
Sul menu Query, puntare a Risultati e quindi fare clic su Risultati su Testo.
Copiare lo script SQL seguente nel riquadro query. Sostituire <il nome> dell'attività con il nome dell'attività e sostituire
<view type>con Istanze per la visualizzazione dell'istanza o Relazioni per la visualizzazione delle relazioni.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 offEsecuzione della query.