検索
連載

レプリケートされたアーティクルに関する情報を出力するSQL Server動的管理ビューレファレンス(145)

「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、レプリケートされたアーティクルに関する情報の出力について解説します。

Share
Tweet
LINE
Hatena

SQL Server動的管理ビュー一覧

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_repl_articles」における、レプリケートされたアーティクルに関する情報の出力について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。

概要

 SQL Serverでは、レプリケーション機能を使用することでデータベースから別のデータベースにデータやデータベースオブジェクトをコピーして配布し、データベースを同期させることが可能です。

 同期させるデータベースオブジェクトは、アーティクルと呼ばれます。「sys.dm_repl_articles」では、レプリケートされたアーティクルに関する情報を出力します。

出力内容

列名 データ型 説明
artcache_db_address varbinary(8) メモリ内のデータベース構造のアドレス
artcache_table_address varbinary(8) メモリ内のテーブル構造のアドレス
artcache_schema_address varbinary(8) メモリ内のスキーマ構造のアドレス
artcache_article_address varbinary(8) メモリ内のアーティクル構造のアドレス
artid bigint このテーブル内の各エントリを一意に識別
artfilter bigint アーティクルをフィルターする場合に使用されるストアドプロシージャのID
artobjid bigint パブリッシュされたオブジェクトID
artpubid bigint アーティクルが属しているパブリケーションのID
artstatus tinyint アーティクルのオプションと状態のビットマスク
 「1」=アーティクルはアクティブ
 「8」=挿入ステートメントに列名を含める
 「16」=パラメーター化されたステートメントを使用
 「24」=挿入ステートメントに列名を含め、パラメーター化されたステートメントを使用
arttype tinyint アーティクルの種類
 「1」=ログベースのアーティクル
 「3」=手動フィルターを使用したログベースのアーティクル
 「5」=手動ビューを使用したログベースのアーティクル
 「7」=手動フィルターと手動ビューを使用するログベースのアーティクル
 「8」=ストアドプロシージャの実行
 「24」=シリアル化可能なストアドプロシージャの実行
 「32」=スキーマのみのストアドプロシージャ
 「64」=スキーマのみのビュー
 「128」=スキーマのみの関数
wszArtdesttable nvarchar(514) パブリッシュされたオブジェクトの名前
wszArtdesttableowner nvarchar(514) パブリッシュされたオブジェクトの所有者
wszArtinscmd nvarchar(510) 挿入に使用されるコマンドまたはストアドプロシージャ
cmdTypeIns int 挿入ストアドプロシージャの呼び出し構文
 「1」=CALL
 「2」=SQL
 「3」=NONE
 「7」=UNKNOWN
wszArtdelcmd nvarchar(510) 削除に使用されるコマンドまたはストアドプロシージャ
cmdTypeDel int 削除ストアドプロシージャの呼び出し構文
 「0」=XCALL
 「1」=CALL
 「2」=SQL
 「3」=NONE
 「7」=UNKNOWN
wszArtupdcmd nvarchar(510) 更新に使用されるコマンドまたはストアドプロシージャ
cmdTypeUpd int 更新ストアドプロシージャの呼び出し構文
 「0」=XCALL
 「1」=CALL
 「2」=SQL
 「3」=NONE
 「4」=MCALL
 「5」=VCALL
 「6」=SCALL
 「7」=UNKNOWN
wszArtpartialupdcmd nvarchar(510) 部分更新に使用されるコマンドまたはストアドプロシージャ
cmdTypePartialUpd int 部分更新ストアドプロシージャの呼び出し構文
 「2」=SQL
numcol int 列方向にフィルター選択されたアーティクルのパーティション内の列数
artcmdtype tinyint 現在レプリケートされているコマンドの種類
 「1」=INSERT
 「2」=DELETE
 「3」=UPDATE
 「4」=UPDATETEXT
 「5」=NONE
 「6」=内部使用のみ
 「7」=内部使用のみ
 「8」=部分的なUPDATE
artgeninscmd nvarchar(510) 挿入コマンドテンプレート
artgendelcmd nvarchar(510) 削除コマンドテンプレート
artgenupdcmd nvarchar(510) 更新コマンドテンプレート
artpartialupdcmd nvarchar(510) 部分更新コマンドテンプレート
artupdtxtcmd nvarchar(510) UPDATETEXTコマンドテンプレート
artgenins2cmd nvarchar(510) 同時実行スナップショット処理中にアーティクルを調整するときに使用される挿入コマンドテンプレート
artgendel2cmd nvarchar(510) 同時実行スナップショット処理中にアーティクルを調整するときに使用される削除コマンドテンプレート
fInReconcile tinyint 同時実行スナップショット処理中にアーティクルが現在調整されているかどうかを示す
fPubAllowUpdate tinyint パブリケーションがサブスクリプションの更新を許可するかどうかを示す
intPublicationOptions bigint 追加のパブリッシングオプションを指定するビットマップ
 「0x1」=ピアツーピアレプリケーション
 「0x2」=ローカル変更
 「0x4」=SQL Server以外のサブスクライバー

動作例

 レプリケーションを構築し、データを配布した後に「sys.dm_repl_articles」を実行すると、レプリケートされたアーティクルに関する情報が出力されました(図1)。

図1
図1 レプリケートされたアーティクルに関する情報が出力された

 「wszArtdesttable」列からレプリケートされたオブジェクトの名前や、「artfilter」列からフィルターの有無などを確認できます。構築した直後など、データ配布前はレコードが何も出力されないため注意が必要です。

※本Tipsは、「Windows Server 2019」上に「SQL Server 2019」をインストールした環境を想定して解説しています。

筆者紹介

椎名 武史(しいな たけし)

BIPROGY株式会社(ビプロジー)所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。

伊東 敏章(いとう としあき)

BIPROGY株式会社(ビプロジー)所属。入社以来SQL Server一筋で評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。社内のプログラミングコンテストで4回の優勝経験も持つ。趣味は輪行で週末は自転車を持っての旅行。目標は色々な日本百選を制覇すること。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る