可用性の高い Microsoft SQL Server データベースを ArcGIS サービスのデータに使用することで、Web サービスのダウンタイムを防ぐことができます。
SQL Server は、複数の高可用性ソリューションを提供しています。ArcGIS は、AlwaysOn 可用性グループおよびフェイルオーバー クラスター インスタンスへの接続に対応しています。
ただし、Microsoft では、データベース ミラーリングを非推奨にしています。ミラーリングの代わりに AlwaysOn を使用することを検討してください。
以下では、ArcGIS から高可用性 SQL Server データベースに接続する際に指定する必要のある情報について説明します。
AlwaysOn 可用性グループおよびフェイルオーバー クラスター インスタンス
フェイルオーバー クラスター インスタンスは、1 つのインスタンスで障害が発生した場合にクライアントが接続できる冗長な SQL Server インスタンスを提供します。高可用性グループを使用して、一連のプライマリ データベースおよび最大 4 セットの読み取り専用セカンダリ データベースを、フェイルオーバー クラスター インスタンスに分散して指定できます。このソリューションを実装する前に、必ず Microsoft ドキュメントにある SQL Server AlwaysOn に関するドキュメントをご参照ください。
AlwaysOn ソリューションが実装されている場合、SQL Server インスタンス名の代わりに、可用性グループ リスナー名を指定して ArcGIS から AlwaysOn ソリューションに接続できます。セミコロン (;) を使用してグループ リスナー名と各パラメーターを区切り、さらに条件をグループ リスナーに追加できます。以下の条件を追加することができます。
- APPLICATIONINTENT=READONLY または APPLICATIONINTENT=READWRITE
- MULTISUBNETFAILOVER=YES または MULTISUBNETFAILOVER=NO
APPLICATIONINTENT と MULTISUBNETFAILOVER の値を指定しなかった場合のデフォルト値は、それぞれ READWRITE および NO です。
以下の例では、org_agl グループ リスナーを経由して読み取り専用セカンダリ データベースに接続しています。
データベース ミラーリング
上記のとおり、Microsoft は SQL Server のデータベース ミラーリングを非推奨にしていますが、データベース ミラーリングを使用する場合は、サービスに使用されるソース データに対してプリンシパル サーバー接続とミラー サーバー接続の両方の接続情報を指定できます。この情報は、<プリンシパル>;MIRROR=<ミラー> という形式で入力します。
プリンシパル サーバーが利用できなくなると、ArcGIS Server は自動的に接続を再試行します。その時点で、ミラー サーバーが利用可能な場合は、サービスの接続がミラー サーバー上のデータを使用するように切り替わります。
データ ミラーの指定に関するその他のシナリオについては、次のセクションで説明します。
公開者とサーバー コンピューターが同じデータベースを使用している場合
サービスとして共有する GIS リソースが公開されているサービスと同じデータベースを使用している場合で、そのデータベースがミラーリングされている場合、プリンシパルとミラー サーバーの両方のインスタンス情報を共有データベース接続の [インスタンス] フィールドに指定します。
たとえば、ArcMap の [データベース コネクション] ダイアログ ボックスから接続を作成し、プリンシパル サーバーが oak\prod、ミラーが oak2\echo、データベースが datasquared の場合、接続は次のようになります。
公開者とサーバー コンピューターが異なるデータベースを使用している場合
GIS リソースと公開されているサービスがソース データとしてそれぞれ異なるデータベースを使用する場合 (複製されたジオデータベースまたは管理データベース)、2 つのデータベース接続を別々に定義します。サービスの高可用性を確保するために、公開者用に定義される接続ファイルには、前述したミラーリングの構文を使用してください。
たとえば、フィーチャ サービスが管理データベース gisdata にコピーされたデータを指定し、これがサーバー willow 上にあり、サーバー cottonwood 上にミラーリングされている場合、登録されるジオデータベース接続は次のようになります。
この例では、デフォルトの SQL Server インスタンスを使用しているため、SQL Server のインスタンス名の代わりに、各サーバーの IP アドレスを指定できます。たとえば、willow の IP アドレスが 10.10.100.10 で、cottonwood の IP アドレスが 11.11.111.11 の場合、[インスタンス] テキスト ボックスに「10.10.100.10;MIRROR=11.11.111.11」と入力します。どちらかの SQL Server インスタンスがデータベース エンジンのデフォルト ポートである 1433 以外のポートで待機している場合は、接続情報にポート番号を含めます。たとえば、willow のインスタンスがポート 50000 で待機している場合、[インスタンス] テキスト ボックスに「10.10.100.10:50000;MIRROR=11.11.111.11」と入力します。