SQL Server Always On のサポート
ALM は、SQL Server Always On 可用性グループ(AG)ソリューションをサポートしています。スキーマを作成すると、ALM はデータベースのバックアップを作成し、可用性グループに追加します。このソリューションでは、データベースに障害が発生した場合でも、ALM が自動的かつシームレスにバックアップに切り替わるため、ALM を引き続き使用することができます。
SQL Server AG サポートの概要
SQL Server AG 機能は、可用性を高める災害復旧ソリューションです。このソリューションにより、複数のデータベースで構成されるグループのフェイルオーバー環境が保証されます。ALM はこのソリューションをサポートして、データベース・グループの可用性をエンタープライズ・レベルで最大限に高めます。
ALM は高可用性グループのみをサポートします。読み取りスケール可用性グループは、ALM ではサポートされていません。
この可用性機能の詳細については、Microsoft のドキュメントを参照してください。
このソリューションを使用する前に
プロジェクトを運用環境の可用性グループに移行する前に、テスト環境で試し、パフォーマンス・テストを実行し、SQL Server Always On グループ・クラスタが作業負荷に対応できることを確認してください。
| 移行するプロジェクトの優先順位付け |
4 コアの SQL Server Always On 可用性グループ・インスタンスの場合、ワーカ・スレッドの枯渇を避けるために、アクティブなプロジェクトの最大数を 70 にすることをお勧めします。そのために、移行するプロジェクトに優先順位を付けます。ダウンタイムが許されない重要なプロジェクトに重点を置きます。 プロジェクト数の制限は、Always On 可用性グループで使用されるワーカ・スレッドの最大数によって決まります。ワーカ・スレッドの最大数の詳細については、Microsoft のドキュメント「Always On 可用性グループの前提条件、制限事項、推奨事項」および「max worker threads サーバー構成オプションの構成」を参照してください。 |
| ディスクおよびネットワーク I/O のパフォーマンス・バッファの追加 | SQL Server 可用性グループ・クラスタでは、ディスクおよびネットワーク I/O のパフォーマンス・バッファを追加する必要があります。プロジェクトをテスト環境に移行した後、パフォーマンス・テストを実行して、SQL Server Always On グループ・クラスタが作業負荷を処理できることを確認します。 |
前提条件
SQL Server AG のサポートを有効にする前に、以下を準備します。
-
SQL Server Always On 可用性グループ・リスナと可用性グループ・クラスタを設定します。
-
ALM は JDBC を使用してグループ・リスナに接続します。インストール・ガイドの「Microsoft SQL データベース・サーバに ALM を接続するためのユーザ権限」セクションに記載されているすべての権限がデータベース・ユーザにあることを確認してください。「インストールとアップグレード」を参照してください。
-
SQL 認証を使用している場合は、Always On 可用性グループでプロジェクトを作成またはインポートする前に、SQL Server のログイン・ユーザ「td」を ALM からすべてのレプリカに同期します。
SQL Server AG のサポートの有効化
SQL Server AG のサポートを有効にするには、SQL Server の接続 URL に次の接続プロパティを追加します。
| プロパティ | 説明 |
|---|---|
| multiSubnetFailover | グループ・リスナに接続するときは、このプロパティを true に設定します。この設定は、SQL Server JDBC に必要です。 |
| alwaysOnGroup | このプロパティを実際の可用性グループの名前に設定します。このプロパティ値は、現在のデータベース・サーバに接続されている ALM プロジェクトが Always On モードであるかどうかを ALM に通知します。 |
| backupFolder |
このプロパティを SQL Server インスタンスのバックアップ・フォルダのパスに設定します。すべての SQL Server インスタンスは、同じパスを使用する必要があります。 注:Windows では、バック・スラッシュ(\)でパスを終了します。Linux では、スラッシュ(/)で終了します。 |
SQL Server の接続 URL の例:
jdbc:sqlserver://192.168.0.10;multiSubnetFailover=true;
alwaysOnGroup=alm_ag;backupFolder=\\storage01\SQLServerSync\
プロジェクトの AG への移行
以下の手順に従って、プロジェクトを可用性グループに移行します。
-
プロジェクトをエクスポートします。詳細については、「プロジェクトのエクスポート」を参照してください。
-
プロジェクトを可用性グループにインポートします。詳細については、「プロジェクト・ファイルからのインポートによるプロジェクトの作成」を参照してください。
-
プロジェクトを復元します。詳細については、「プロジェクトの復元」を参照してください。
-
プロジェクト・データベースを Always On プライマリ・インスタンスにコピーします。
-
プロジェクト・データベースの完全なバックアップを作成し(完全復旧モデルを使用)、次の SQL コマンドを実行してデータベース・ユーザ情報を更新します。
ユーザ「td」は SQL 認証モード用で、ユーザ「dbo」は Windows 認証モード用です。
Copy codeuse yourdb;
exec sp_change_users_login 'yourdb','td','td';
exec sp_change_users_login ''yourdb','dbo','dbo'; - データベースを Always On 可用性グループに追加し、すべてのレプリカで「synchronized」と表示されるまで待ちます。その後で、プロジェクトの使用またはアップグレードが可能になります。
トラブルシューティング
ALM を SQL Server Always On 可用性グループで使用すると、次の問題が発生する場合があります。
| 問題 | 原因と解決策 |
|---|---|
| Always On 可用性グループのフェイルオーバーの後で、プロジェクトへの接続または ALM の再起動ができない。 |
これは通常、SQL Server のログイン・ユーザ「td」をグループのすべてのレプリカに同期していない場合に発生します。 SQL Server の SQL パスワード認証を使用している場合は、ユーザ「td」の SID がすべてのレプリカで同じであることを確認してください。 |
| プロジェクトを Unicode に変換できない。 |
プロジェクトを可用性グループに移行する前に、Unicode に変換する必要があります。 または、プロジェクトの作成時に Unicode プロジェクト・オプションを選択する必要があります。作成後のプロジェクトを可用性グループ内で Unicode に変換することはできません。 |
|
サイト管理でプロジェクトを削除すると、セカンダリ・レプリカでプロジェクトのステータスが「restoring」と表示される。 |
プロジェクトを削除した後、データベース管理者がセカンダリ・レプリカでプロジェクト・データベースを手動で削除する必要があります。 |
参照情報:

