SQLServerはcdcトレースをオンにしてDML操作監視を実現

4242 ワード

SQLServerはcdcトレースをオンにしてDML操作監視を実現
  • 1、クエリーのデータベースはcdc
  • を有効にしました.
  • 2、データベースに対してcdc
  • を起動する
  • 3、クエリー有効cdcのテーブル
  • 4、テーブルに対してcdcを有効にするには、SQL Server Agentサービスが
  • を有効にしていることを確認する必要があります.
  • 5、表に対してcdc
  • を無効にする
  • 6、データベースに対してcdc
  • を無効にする
  • 7、トレースジョブ情報の表示
  • 1、それらのデータベースをクエリーしてcdcを有効にした
    USE master 
    GO 
    SELECT [name], database_id, is_cdc_enabled 
    FROM sys.databases 
    GO
    

    2、データベースに対してcdcを起動する
    use test
    go
    EXEC sys.sp_cdc_enable_db 
    go
    

    3、クエリーがcdcを有効にする表
    use test
    go
    --    cdc  
    SELECT [name], is_tracked_by_cdc 
    FROM sys.tables 
    GO
    

    4、表に対してcdcを有効にする.SQL Server Agentサービスが有効になっていることを確認しなければならない.
    EXEC sys.sp_cdc_enable_table  @source_schema = N'dbo', @source_name = N'userInfo', @role_name = NULL 
    GO
    

    userInfoはcdcを有効にするテーブル名であり、テーブルに対してcdcを有効にするとデータベースのシステムテーブル部分にcdcで1つ多くなる.先頭のテーブルで、このテーブルのデータは元のテーブルuserInfoで削除されたデータログを反映しています.
    5、表に対してcdcを無効にする
    Exec sys.sp_cdc_disable_table @source_schema = N'dbo', @source_name = N'userInfo', @capture_instance = N'all'
    

    6、データベースに対してcdcを無効にする
    exec sys.sp_cdc_disable_db
    

    7.トレースジョブ情報の表示
    cdcを有効にすると、SQL Server Agentのジョブ・プランにcdcに対応するジョブ・プランが表示されます.
    exec sys.sp_cdc_help_jobs
    --           
    EXECUTE sys.sp_cdc_change_job
        @job_type = N'cleanup',
        @retention=4320
    GO
    --    
    EXEC sys.sp_cdc_stop_job N'cleanup'
    GO
    --    
    EXEC sys.sp_cdc_start_job N'cleanup'
    GO
    --    
    EXEC sys.sp_cdc_help_jobs
    GO