Azure SQL Database と Azure SQL Managed Instance を構成する

完了

デプロイが正常に完了したことを確認し、使用できるリソースがわかっています。 次に、SQL マネージド インスタンス、SQL データベース、またはマネージド インスタンス内のデータベースを構成します。 これらのデータベースは、"マネージド データベース" と呼ばれます。

Azure SQL Managed Instance を構成する

Azure SQL Managed Instance は、基本的にはマネージド SQL Server インスタンスです。 SQL Server で使用可能な多くの構成がここに該当します。 たとえば、sp_configure と特定のグローバル トレース フラグを使用して構成できます。 また、tempdbmodelmaster に関するオプションも使用できます。 ネットワークの接続と構成を制御できます。

データベース構成

Azure SQL Managed Instance と Azure SQL Database のマネージド データベースの場合は、ALTER DATABASE コマンドで使用できるオプションがあります。 SET オプションがあり、必要な dbcompat 値を選択できます この値は、移行時に役立ちます。 また、ALTER DATABASE コマンドを使用して、エディションまたはサービス レベルを変更することもできます。

Azure SQL Database では、基になるファイルの構成にアクセスすることはできません。 Azure SQL Managed Instance では、ファイルのメンテナンスを実行できます。 SQL Managed Instance と同様に、ネットワーク接続、ネットワーク構成、および領域管理に使用できるオプションがあります。

具体的には、Azure SQL Database では、"古いページの検出" が有効になっており、既定のサーバーの照合順序 SQL_Latin1_General_CP1_CI_AS が常に使われます。 さらに、以下のオプションは既定で ON に設定されます。

  • SNAPSHOT_ISOLATION_STATE
  • READ_COMMITTED_SNAPSHOT
  • FULL RECOVERY
  • CHECKSUM
  • QUERY_STORE
  • TDE
  • ACCELERATED_DATABASE_RECOVERY

ジョブ管理

SQL Server エージェントでは、SQL Server ユーザーのためにシステムの構成とスケジュール設定が行われます。 Azure SQL においては、次のオプションを使用して同等の機能を実現できます。

SQL Managed Instance 内の SQL Agent

SQL Agent は、Azure SQL Managed Instance で完全にサポートされているサービスです。 SQL Agent のジョブは、T-SQL および SQL Server Integration Services のジョブ ステップに対してのみサポートされています。 コマンド シェルのステップはサポートされていません。 アラートはサポートされていませんが、メール通知はデータベース メールを通じてサポートされています。

SQL Database 用のエラスティック ジョブ

Azure SQL Database は、SQL Server エージェントをサポートしていません。 ただし、Azure のエラスティック ジョブ エージェント サービスを使用して、ジョブの作成とスケジュール設定を行うことができます。 ジョブは、並列実行などを多くのデータベースに対して実行できる T-SQL スクリプトです。

Azure Automation

Azure Automation サービスを使い、Runbook と呼ばれる概念を通じて、プロセスを調整できます。 Runbook は、PowerShell や Python などのコードで構成され、任意の Azure リソースに転送できます。

制限された構成の選択

Azure SQL Managed Instance および Azure SQL Database サービスでは、次の構成が制限されています。 これらの制限は、いくつかのタスクの実行方法に影響を与える可能性があります。

  • サーバーを停止または再起動することはできません。
  • 次のものは使用できません。
    • ファイルの瞬時初期化。
    • メモリ内のロックされたページ。
    • FILESTREAM および可用性グループ
    • サーバーの照合順序 SQL Managed Instance では、デプロイ時にサーバーの照合順序を選択できますが、変更はできません。
    • スタートアップ パラメーター。
    • エラー報告とカスタマー フィードバック。
    • ALTER SERVER CONFIGURATION
    • ERRORLOG 構成。
  • "混合モード" のセキュリティが強制されます。
  • ログオンの監査は SQL 監査によって行われます。
  • サーバー プロキシ アカウントは適用できません。

Azure SQL Managed Instance と SQL Database は、サービスとしてのプラットフォーム (PaaS) オファリングです。 これらの選択肢を制限しても、SQL Server マネージド インスタンスの全面的な使用が妨げられることはないはずです。

記憶域の管理

Azure SQL Managed Instance には、選択した SLO に基づいて、インスタンスに対して可能な最大ストレージ サイズを設定できます。 インスタンスの最大ストレージは、この可能な最大サイズまで選択します。 最大ストレージに達すると、マネージド データベースの場合はメッセージ 1105、インスタンスの場合はメッセージ 1133 が表示されることがあります。

SQL Server と同様に、新しいデータベースのサイズは、model データベースのサイズに基づきます。 model データベースは、100 MB のデータ ファイルと 8 MB のログ ファイルです。 また、SQL Server と同様に、モデルのサイズは構成できます。 ファイルのサイズと数は変更できますが、それらの物理的な場所を制御することはできません。 Microsoft は、お客様のデプロイの選択に基づいて、I/O パフォーマンスについてコミットメントを行っています。 また、General Purpose サービス レベルではリモート ストレージが使用されるため、データ ファイルとログ ファイルのサイズがパフォーマンスに影響を与える可能性があります。

Azure SQL Database には、選択した SLO に基づいて、データベース ファイルに最大サイズを設定できます。 データの最大サイズは、この可能な最大サイズまで選択します。 sys.database_files.max_size 列によって定義されている、データベース ファイルの Maxsize は、データの最大サイズまで大きくなる可能性があります。

データの最大サイズMaxsize のこのような関係を理解するため、たとえば 1 TB (データの最大サイズ) の General Purpose データベースをデプロイする場合を考えてみます。 このデプロイを行うとき、データベースに必要なのは 1 TB ではなく、約 500 GB だけです。 データベースが大きくなり、データの最大サイズに近づくにつれて、データベース ファイルの Maxsize も 1 TB レベルまで増加します。

トランザクション ログは、データ サイズに加えて、ストレージの料金に含まれます。 高速データベース復旧が既定でオンになっているため、これは自動バックアップによって定期的に切り詰められます。 ログの最大サイズは、常にデータの最大サイズの 30% です。 たとえば、データの最大サイズが 1 TB の場合、最大トランザクション ログ サイズは 0.3 TB で、データの最大サイズとログ サイズの合計は 1.3 TB です。

Azure SQL Database の Hyperscale レベルは、他のサービス レベルとは異なります。 それによって作成されるデータベースは、最初は 40 GB で、100 TB の上限サイズまで自動的に拡大されます。 トランザクション ログのサイズ制限は 1 TB に固定されています。

接続のアーキテクチャとポリシー

Azure SQL Database 論理サーバーの構成または Azure SQL Managed Instance の構成の一部には、データベースへの接続のルートの決定が含まれます。

Azure SQL Managed Instance では、デプロイの間に接続の種類またはポリシーを選択できます。 Azure SQL Database では、デプロイの後で接続の種類を選択できます。

"外部からの接続に対してはプロキシ、Azure 内の接続に対してはリダイレクト" の既定をそのまま使用することも、他の構成を使用することもできます。

Diagram of the connection policies in Azure SQL.

最高レベルのプロキシ モードでは、すべての接続がゲートウェイ経由でプロキシされます。 リダイレクト モードでは、接続が確立されてゲートウェイを使うようになった後は、その接続でデータベースまたはマネージド インスタンスに直接接続できます。 前の図では、ゲートウェイは redirect-find-db です。

直接接続 (リダイレクト) を使用すると、待機時間を短縮し、スループットを向上させることができます。 また、インバウンドとアウトバウンドの通信を可能にするために、11000 から 11999 の範囲のポートをさらに多く開く必要もあります。

次の演習では、Azure CLI で Azure SQL を構成するためのいくつかのコマンドについて説明します。 その後、プロキシとリダイレクトの接続ポリシーの評価について詳しく説明します。

知識チェック

1.

Azure SQL Database のデータの最大サイズが 10 GB の場合、トランザクション ログの最大サイズはどれくらいですか?

2.

Azure SQL Database と Azure SQL Managed Instance の既定の接続ポリシーはどのようなものですか?