Geoレプリケーションリンクの一覧を出力するSQL Server動的管理ビューレファレンス(106)

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

» 2022年05月02日 05時00分 公開
[伊東敏章@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

SQL Server動的管理ビュー一覧

 本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.geo_replication_links」における、Geoレプリケーションリンクの一覧を出力する方法について解説します。対応バージョンは、「Azure SQL Database」です。

概要

 Azure SQL Databaseでは、Geoレプリケーションの機能を使用できます。Geoレプリケーションを構成すると、同じリージョンまたは異なるリージョンに、データベースの読み取り可能な複製(セカンダリデータベース)を作成できます。

 「sys.geo_replication_links」動的管理ビューを使用することで、SQL Databaseサーバ上のGeoレプリケーションが構成されたSQL Databaseの一覧と、Geoレプリケーション上でのロールや状態に関する情報を出力できます。

出力内容

列名 データ型 説明
database_id int データベースのID
start_date datetimeoffset Geoレプリケーションが開始されたときのデータセンターでのUTC時刻
modify_date datetimeoffset Geoレプリケーションが完了したときのUTC時刻
この時点で、新しいデータベースがプライマリデータベースと同期される
link_guid uniqueidentifier Geoレプリケーションリンクの一意のID
partner_server sysname Geoレプリケート先のSQL Databaseサーバ名
partner_database sysname Geoレプリケート先のSQL Database名
replication_state tinyint このデータベースのGeoレプリケーションの状態
 「0」=保留中
アクティブなセカンダリデータベースの作成がスケジュールされるが、必要な準備手順がまだ完了していない
 「1」=シード処理
Geoレプリケーションターゲットはシードされているが、2つのデータベースがまだ同期されていない。シード処理が完了するまで、セカンダリデータベースに接続することはできない。プライマリからセカンダリデータベースを削除すると、シード処理操作が取り消される
 「2」=キャッチアップ
セカンダリデータベースはトランザクション一貫性のある状態であり、常にプライマリデータベースと同期されている
replication_state_desc nvarchar(256) replication_stateの説明
 PENDING
 SEEDING
 CATCH_UP
role tinyint Geoレプリケーションロール
 「0」=プライマリ
 「1」=セカンダリー
role_desc nvarchar(256) roleの説明
 PRIMARY
 SECONDARY
secondary_allow_connections tinyint セカンダリーの種類
 「0」=セカンダリデータベースには、フェイルオーバーまでアクセスできない
 「1」=読み取り専用
セカンダリデータベースは、「ApplicationIntent=ReadOnly」のクライアント接続のみアクセスできる
 「2」=全て
セカンダリデータベースには、任意のクライアント接続からアクセスできる
secondary_allow_connections_desc nvarchar(256) secondary_allow_connectionsの説明

動作例

 Azure SQL Databaseを作成し、Geoレプリケーションを構築します(図1、図2)。

図1 図1 作成したSQL Databaseのバージョンを確認(12.0.2000.8)
図2 図2 Geoレプリケーションにより、セカンダリデータベースを1つ作成したところ

 SQL Server Management Studio(SSMS)で作成したデータベースサーバのmasterデータベースに接続し、sys.geo_replication_links動的管理ビューを出力します(図3)。

図3 図3 「sys.geo_replication_links」動的管理ビューを出力したところ

 接続先データベースサーバ上でGeoレプリケーションが構成されたデータベースの、ロールやパートナーサーバ名などの情報が出力されました。「replication_state」列の値からは同期状態も確認できるようです。

 次に、セカンダリデータベースサーバのmasterデータベースに接続し、「sys.geo_replication_links」動的管理ビューを出力します(図4)。

図4 図4 セカンダリデータベースサーバで出力したところ

 セカンダリデータベースサーバ上のGeoレプリケーションが構成されたデータベースに関する情報が出力されました。

 なお、「sys.geo_replication_links」動的管理ビューはmasterデータベースで実行する必要がありますので、ユーザーデータベースへ接続して出力するとエラーが出力されるようです(図5)。

図5 図5 masterデータベース以外で出力すると、エラー「208」が出力される

※本Tipsは、Azure SQL Database(Single Database)での実行を想定して解説しています。

筆者紹介

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

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

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

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


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。