Azure SQL Managed Instance 用のリンク機能に関するベスト プラクティス

適用対象: Azure SQL Managed Instance

この記事では、Azure SQL Managed Instance 用のリンク機能を使用する場合のベスト プラクティスの概要を説明します。 Azure SQL Managed Instance 用のリンク機能では、任意の場所にホストされている SQL サーバーを SQL Managed Instance に接続して、クラウドにほぼリアルタイムのデータ レプリケーションを提供します。

注意

リンクの一部の機能は一般提供されていますが、一部は現在プレビュー段階です。 詳細については、前提条件に関する記事を参照してください。

定期的にログのバックアップを作成する

リンク機能では、Always On 可用性グループに基づく分散型可用性グループのテクノロジを使用して、データをレプリケートします。 分散型可用性グループを使用するデータ レプリケーションは、トランザクション ログ レコードのレプリケートに基づいています。 プライマリ SQL Server インスタンス上のデータベースからトランザクション ログ レコードを切り詰めることは、それらがセカンダリ レプリカ上のデータベースにレプリケートされるまでできません。 トランザクション ログ レコードのレプリケーションが低速であるか、ネットワーク接続の問題のためにブロックされている場合、ログ ファイルはプライマリ インスタンス上で増加し続けます。 増加の速度は、ワークロードの負荷とネットワーク速度に左右されます。 プライマリ インスタンスでネットワーク接続が長時間停止したり、高い負荷があったりする場合、使用できるすべてのストレージ領域をログ ファイルが占める可能性があります。

ログ ファイルの増大によりプライマリ SQL Server インスタンス上の領域が不足するリスクを最小限に抑えるために、プライマリの場合、必ず SQL Server のデータベース ログを定期的にバックアップしてください。 ログ バックアップは既に自動的に実行されるため、SQL Managed Instance がプライマリである場合は、追加の操作は必要ありません。 ログ バックアップを SQL Server プライマリで定期的に作成することで、予期しないログ増加のイベントに対するデータベースの回復性が高まります。 最初のデータベース ログ バックアップは、SQL Managed Instance への最初のシード処理が完了した後 (つまり、SQL Managed Instance 上のデータベース レプリカが "復元中" 状態ではなくなった) 後にのみ実行する必要があります。 SQL Server エージェントのジョブを使用して、毎日のログ バックアップ タスクをスケジュールすることを検討してください。

このセクションで提供されているサンプルのように、Transact-SQL (T-SQL) スクリプトを使用してログ ファイルをバックアップできます。 サンプル スクリプト内のプレースホルダーは、お使いのデータベースの名前、バックアップ ファイルの名前とパス、説明に置き換えてください。

トランザクション ログをバックアップするには、SQL Server で次のサンプルの Transact-SQL (T-SQL) スクリプトを使用します。

-- Execute on SQL Server
-- Take log backup
BACKUP LOG [<DatabaseName>]
TO DISK = N'<DiskPathandFileName>'
WITH NOFORMAT, NOINIT,
NAME = N'<Description>', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 1

次の Transact-SQL (T-SQL) コマンドを使用して、SQL Server でデータベースによって使用されているログ領域を調べます。

-- Execute on SQL Server
DBCC SQLPERF(LOGSPACE); 

クエリ出力は、サンプル データベース tpcc の次の例のようになります。

コマンドの結果のスクリーンショット。ログ ファイル サイズと使用済み空間を確認できます。

この例では、データベースは使用可能なログのうち 76% を使用しており、ログ ファイルの絶対サイズは約 27 GB (27,971 MB) となっています。 アクションのしきい値は、ワークロードによって異なります。 前の例では、トランザクション ログのサイズとログの使用率は、通常、ログ ファイルを切り捨てて空き領域を増やすためにトランザクション ログ バックアップを実行する必要があることを示しています。または、より頻繁にログ バックアップを実行する必要があります。 また、トランザクション ログの切り捨てが、開いているトランザクションによってブロックされていることを示している可能性もあります。 SQL Server でのトランザクションログのトラブルシューティングの詳細については、「完全なトランザクション ログのトラブルシューティング (SQL Server エラー 9002)」を参照してください。 Azure SQL Managed Instance でのトランザクション ログのトラブルシューティングの詳細については、「Azure SQL Managed Instance を使用したトランザクション ログ エラーのトラブルシューティング」を参照してください。

起動時のトレース フラグを追加する

SQL Server には 2 種類のトレース フラグ (-T1800-T9567) があります。これらを起動時のパラメーターとして追加すると、リンク経由のデータ レプリケーションのパフォーマンスを最適化できます。 詳細については、「起動時のトレース フラグを有効にする」を参照してください。