共用方式為


在封存資料庫中建立分割檢視

當您執行 BAM 資料維護套件 (BAM_DM_) <activity name> BAM 會將 BAM 主要匯入資料庫中的每個分割區複製到 BAM 封存資料庫中的個別資料表。 如果您中斷封存資料庫的連線,然後重新連線以便進行查詢,將會發現很難找到您查詢的資料。

您可以在 BAM 封存資料庫中建立資料分割檢視,以便尋找資料。 BAM 支援最多 253 個資料分割。 BAM 會為每個活動各產生一個 BAM 資料維護 DTS 封裝,此封裝會將活動資料複製到 BAM 封存資料庫,再從 BAM 主要匯入資料庫移除該資料。 如果封存資料庫在複製資料後失敗,但是還沒到下一次備份,資料就會遺失。

預防資料遺失的解決方法是使用單一封存封裝,此封裝會先從所有活動中複製舊資料,再備份 BAM 封存資料庫,最後從主要匯入資料庫刪除先前複製的資料分割。

必要條件

您必須以 BizTalk Server 系統管理員群組的成員身分登入,才能執行這個程序。

在 BAM 封存資料庫中建立分割檢視, (SQL Server 2008 SP1 或 SQL Server 2008 R2)

  1. 開啟 [SQL Server Management Studio]。

  2. 選取 BAM 封存資料庫,然後按一下 [ 新增查詢]。

  3. 在 [ 查詢] 功能表上,指向 [ 結果至 ],然後按一下 [ 結果至文字]。

  4. 將下列 SQL 指令碼複製到查詢窗格中。 以您的活動名稱取代 < 活動名稱 > ,並將 取代 <view type> 為實例檢視的 實例 或關聯性檢視的 關聯 性。

    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
    
  5. 執行查詢。

另請參閱