SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Archive for the ‘SQL Server 2022’ Category

SQL Server 2022 の blocked_report の出力内容の強化

leave a comment

SQL Server ではブロッキング (ロック競合) 情報を取得する方法として Blocked Process Report イベント クラス の情報を拡張イベントで取得するという手法があります。

SQL Server 2022 では、この情報に出力される内容が強化されていることに先日気づきました。

Read the rest of this entry »

Written by Masayuki.Ozawa

11月 6th, 2023 at 9:41 am

DBCC SHRINKFILE の WAIT_AT_LOWPRIORITY について

leave a comment

SQL Server 2022 / SQL Database / Managed Instance では、データベースのファイルサイズを削減するためのコマンドである、DBCC SHRINKFILEWAIT_AT_LOWPRIORITY というオプションが追加されました。

このオプションを使用した場合のデータファイルのサイズ縮小について動作を把握しておきたかったので、調べてみました。

Read the rest of this entry »

Written by Masayuki.Ozawa

6月 21st, 2023 at 11:25 pm

SQL Server 2022 で追加された query_antipattern を使用したクエリ情報の取得

leave a comment

Bob Ward の SQL Server 2022 Hidden Gems で解説されているのですが、SQL Server 2022 ならびに Azure SQL Database では、query_antipattern という拡張イベントが追加されています。

MS のブログでも紹介されており、最近、新しい記事も公開されました。

この拡張イベントについて、本ブログでも触れておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

6月 18th, 2023 at 5:30 pm

Manaed Instance の TDE が有効な DB を SQL Server 2022 にリストアする

leave a comment

先日書いた Manaed Instance の TDE を無効化した DB を SQL Server 2022 にリストアする際の注意点 の続きになり、厳密にはデータベース暗号化キーが含まれているデータベースを SQL Server 2022 にリストアする際の作業となります。

基本的な考え方については、Restoring a SQL Managed Instance database backup to SQL Server 2022 now GA の記載となり、必要な作業については Azure Key Vault を使用した SQL Server TDE 拡張キー管理を設定する となります。

Key Vault へのアクセスに使用されている、拡張キー管理 (Extensible Key Management : EKM) については、Windows でのみサポートされているため、SQL Server on Linux では使用することはできず、現時点では、MI で TDE が有効な DB については、リストア可能な環境は Windows のみに限定されています。

Read the rest of this entry »

Written by Masayuki.Ozawa

6月 11th, 2023 at 9:30 pm

Manaed Instance の TDE を無効化した DB を SQL Server 2022 にリストアする際の注意点

leave a comment

※Azure SQL Managed Instance から SQL Server 2022 へのリストアだけでなく、異なる SQL Server インスタンス間のリストアでも該当します。

Azure SQL Managed Instance (MI) で取得したバックアップについては、SQL Server 2022 にリストアすることができます。

MI からリストア可能なバックアップについては、ユーザーが任意のタイミングで取得したバックアップとなるので「COPY_ONLY」オプションを使用して取得したバックアップの必要があります。

MI で COPY_ONLY バックアップを取得するには条件があり、次のいずれかの条件を満たしている必要があります。

  1. TDE で暗号化されていないデータベース
  2. ユーザーマネージドキーを使用して TDE を設定している

「サービスマネージドキー」による TDE については、TDE のキーをユーザーが制御できないものとなるため、サービスマネージドキーを使用し TDE を実行している DB については、COPY_ONLY バックアップを取得することができません。

今回は「1.」で記載した TDE を無効にした状態のバックアップを SQL Server 2022 にリストアする際の注意点となります。

「2.」についても、SQL Server 2022 にリストアすることができるのですが、SQL Server 2022 では、Azure Key Vault を使用した SQL Server TDE 拡張キー管理を設定する の設定で、ユーザーマネージドキーの Key Vault へのアクセスをする必要があり、こちらはこちらで面倒ではあるのですが、それについては別の投稿で書こうと思います。

本投稿で対象としている TDE の無効化ですが、「TDE を有効にしている DB で、TDE を無効に変更」した場合が該当します。
「最初から TDE を無効の状態にしている DB」については、本投稿の事象は発生しません。

Read the rest of this entry »

Written by Masayuki.Ozawa

6月 10th, 2023 at 3:15 pm