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 の例:

Copy code
jdbc:sqlserver://192.168.0.10;multiSubnetFailover=true;
alwaysOnGroup=alm_ag;backupFolder=\\storage01\SQLServerSync\

先頭に戻る

プロジェクトの AG への移行

以下の手順に従って、プロジェクトを可用性グループに移行します。

  1. プロジェクトをエクスポートします。詳細については、「プロジェクトのエクスポート」を参照してください。

  2. プロジェクトを可用性グループにインポートします。詳細については、「プロジェクト・ファイルからのインポートによるプロジェクトの作成」を参照してください。

  3. プロジェクトを復元します。詳細については、「プロジェクトの復元」を参照してください。

  4. プロジェクト・データベースを Always On プライマリ・インスタンスにコピーします。

  5. プロジェクト・データベースの完全なバックアップを作成し(完全復旧モデルを使用)、次の SQL コマンドを実行してデータベース・ユーザ情報を更新します。

    ユーザ「td」は SQL 認証モード用で、ユーザ「dbo」は Windows 認証モード用です。

    Copy code
    use yourdb;
    exec sp_change_users_login 'yourdb','td','td';
    exec sp_change_users_login ''yourdb','dbo','dbo';
  6. データベースを Always On 可用性グループに追加し、すべてのレプリカで「synchronized」と表示されるまで待ちます。その後で、プロジェクトの使用またはアップグレードが可能になります。

先頭に戻る

トラブルシューティング

ALM を SQL Server Always On 可用性グループで使用すると、次の問題が発生する場合があります。

問題 原因と解決策
Always On 可用性グループのフェイルオーバーの後で、プロジェクトへの接続または ALM の再起動ができない。

これは通常、SQL Server のログイン・ユーザ「td」をグループのすべてのレプリカに同期していない場合に発生します。

SQL Server の SQL パスワード認証を使用している場合は、ユーザ「td」の SID がすべてのレプリカで同じであることを確認してください。

プロジェクトを Unicode に変換できない。

プロジェクトを可用性グループに移行する前に、Unicode に変換する必要があります。

または、プロジェクトの作成時に Unicode プロジェクト・オプションを選択する必要があります。作成後のプロジェクトを可用性グループ内で Unicode に変換することはできません。

サイト管理でプロジェクトを削除すると、セカンダリ・レプリカでプロジェクトのステータスが「restoring」と表示される。

プロジェクトを削除した後、データベース管理者がセカンダリ・レプリカでプロジェクト・データベースを手動で削除する必要があります。

先頭に戻る

参照情報: