2013-11-22 4 views
10

バックアップが失敗しました:エラー2601のためにdbid 12のディスクにコミットテーブルをフラッシュできませんでした。詳細については、エラーログを確認してください。変更トラッキングを使用しているテーブル

私のデータベースの変更履歴が有効になっています。どのテーブルを有効にするかはどのように判断できますか?私は50 +を見て、それを持つものを見つけることができません。変更の追跡が有効になっているテーブルを見つけるために、SQL 2008 R2

おかげ

+1

これは、[サーバー障害](http://serverfault.com/)に適しているかもしれませんか? –

答えて

26

は、あなたが役に立つシステムの詳細を見つけることができます

SELECT s.name AS Schema_name, t.name AS Table_name 
FROM sys.change_tracking_tables ctt 
JOIN sys.tables t 
    ON t.object_id = ctt.object_id 
JOIN sys.schemas s 
    ON s.schema_id = t.schema_id 
ORDER BY s.name, t.name 

enter image description here

追跡データベースに対して次のスクリプトを実行します変更トラッキングの再生回数:

sys.change_tracking_tables (Transact-SQL)

sys.change_tracking_databases (Transact-SQL)

0

ここで、あなたにこれらの隠されたテーブルに取り、変更、CTに含まれるテーブルの行やスペースを保存するために変更の追跡によって維持隠されたテーブルのリストを与えるブレントOzarによってクエリがあります。

enter image description here

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 
GO 

SELECT 
    sct1.name AS CT_schema, 
    sot1.name AS CT_table, 
    ps1.row_count AS CT_rows, 
    ps1.reserved_page_count*8./1024. AS CT_reserved_MB, 
    sct2.name AS tracked_schema, 
    sot2.name AS tracked_name, 
    ps2.row_count AS tracked_rows, 
    ps2.reserved_page_count*8./1024. AS tracked_base_table_MB, 
    change_tracking_min_valid_version(sot2.object_id) AS min_valid_version 
FROM sys.internal_tables it 
JOIN sys.objects sot1 ON it.object_id=sot1.object_id 
JOIN sys.schemas AS sct1 ON sot1.schema_id=sct1.schema_id 
JOIN sys.dm_db_partition_stats ps1 ON it.object_id = ps1. object_id AND ps1.index_id in (0,1) 
LEFT JOIN sys.objects sot2 ON it.parent_object_id=sot2.object_id 
LEFT JOIN sys.schemas AS sct2 ON sot2.schema_id=sct2.schema_id 
LEFT JOIN sys.dm_db_partition_stats ps2 ON sot2.object_id = ps2. object_id AND ps2.index_id in (0,1) 
WHERE it.internal_type IN (209, 210); 
GO 
関連する問題