Tools and Documents for fault analysis in SQL Server-based environments
Tools and Documents for fault analysis in SQL Server-based environments.
SQL Database の JSON データ型の格納効率について
SQL Database / SQL Server 2025 では、JSON データ型 をサポートしており、JSON フォーマットのデータを格納するための専用のデータ型を使用することができます。
JSON データ型は「Latin1_General_100_BIN2_UTF8」の照合順序により UTF-8 のエンコードが使用されるという特徴の他に「圧縮用に最適化された、より効率的なストレージ」もメリットとして挙げられています。
通常の文字列データ型と比較して、JSON データ型がどの程度ストレージの格納効率が変化するのかが気になったので、SQL Database で確認してみました。
SQL Server で統計情報の自動更新時の情報を取得するための方法
SQL Server ベースのデータベースエンジンで統計情報の自動更新が発生した際の情報を取得するための方法についてまとめておきたいと思います。
Azure Local 22H2 から 23H2 へのアップグレードの Tips – その 2 –
昨年、Azure Local 22H2 から 23H2 へのアップグレードの Tips ? その 1 ? という投稿を書きました。
その後、時間が取れずアップグレードの検証が継続できていなかったのですが、今日、時間をとることができアップグレードを最後まで実行することができました。
追加の Tips を残しておきたいと思います。
SQL Server でレプリケーションが有効な環境を異なるサーバーにリストアできるかを検証してみる
SQL Server のバックアップをシステムデータベースを含めて、バックアップの取得元と異なるサーバーにリストアする際には、次の情報を参考にする機会が多いのではないでしょうか。
- システム データベースのバックアップと復元 (SQL Server)
- 孤立したユーザーのトラブルシューティング (SQL Server)
- SQL Server のスタンドアロン インスタンスをホストするコンピューターの名前を変更する
異なるサーバーにバックアップをリストアする際にはこれらの情報を参考にしてデータベースのリストアとリストア後の設定変更を行っていきます。
バックアップの取得元でレプリケーションが有効となっていた場合も、この作業だけでリストアを完了することができるのかを調査してみました。
概念検証として実施したため、T-SQL ベースで設定を強制的に変更している箇所がいくつかありますが、実運用環境で実施する際にはレプリケーションの再設定で検討をしたほうが良いかと思います。
SQL Server で所有者が設定されていないデータベースの確認と再設定
SQL Server では、バックアップを取得したサーバー以降のバージョンの SQL Server であれば、異なるサーバー名の環境に対してもデータベースのバックアップをリストアすることができます。
バックアップを取得した環境にリストアする場合は問題ないのですが、他のサーバーにリストアをした際に、データベースの所有者が設定されていない状態になることがありますので、すべてのデータベースに所有者が設定されているかの確認と修正方法を本投稿で記載しておきたいと思います。
Database Watcher のデータストアに Free ADX を設定する (2025/01 版)
本投稿と同様の事象が発生した場合の 2025/01/27 時点の暫定対応方法です。SR で確認中のため今後、本投稿の対応は不要となる可能性があります。
Azure SQL のワークロード監視をする機能として、Database Watcher があります。
Database Watcher では、Azure Data Explorer (ADX) ベースの環境をデータストアとして使用し、Azure SQL の各種状態を保存します。
データベース ウォッチャーの価格 に記載されていますが、Database Watcher 自体は無償で利用でき、Free Azure Data Explorer (ADX) Cluster を使用した場合、ADX には 機能の比較 に記載されている制限がありますが、データストアについても無償で使用することが可能です。
以前は Azure Portal から Free ADX Cluster を使用する設定ができていたのですが、私の環境では設定することができず、他の方法で設定する必要があったのでその際の作業内容を残しておきます。
SQL Server 向けの Datadog エージェントの更新状況の確認
Datadog では SQL Server ベースの環境の情報を取得するための Integration が含まれており、データベースの各種情報を取得することができます。
- SQL Server
- Microsoft Azure SQL Database
- Microsoft Azure SQL Elastic Pool
- Microsoft Azure SQL Managed Instance
- Microsoft Azure Synapse
Microsoft 純正の機能としては、Azure Arc Enabled SQL Server / Database Watcher といった機能がありますが、現時点では Datadog で取得される情報のほうが網羅性 / 拡張性があると感じています。
Datadog で SQL Server ベースの環境の情報を取得する際には Dataodg エージェント経由で情報の取得を行うことになりますが、エージェントは OSS として開発が行われており、頻繁に更新が行われています。
エージェントの更新状況は、GitHub のリポジトリから確認をすることになると思います。
SQL Server の Integration の更新状況を含めて確認をする際には、いくつかの情報を確認するひつようがありますので、どの情報を確認すればよいかをまとめておこうかと。
Data Migration Assistant (DMA) の後継機能
今まで、SQL Server のバージョンアップ / SQL Server ベースの環境間の移行に使用することができるツールとして、Data Migration Assistant (DMA) というツールが提供されていました。
しかし、2024/06/29 にドキュメントの更新が行われ、DMA は非推奨の機能となりました。
データベースの移行については Azure Data Studio の SQL Migration 拡張機能 で代替することが可能なのですが、データベースの評価については Azure Data Studio (ADS) の機能は DMA よりリッチな機能となっておらず、この部分を代替する機能が提供されていない状態となっていました。
SQL Server / SQL Database で設定可能な権限を把握する
SQL Server /SQL Database のような SQL Server ベースのデータベースエンジンで、設定可能な権限を確認する際には、権限 (データベース エンジン) / 権限の階層 (データベース エンジン) に記載されている Database Engine Permissions Poster を確認するのが定番の方法となるかと思います。
しかし、この情報は SQL Server 2017 ベースの情報となっており、数世代前の SQL Server の情報となります。
現在の SQL Server ベースの環境でもこの情報は有益ではあるのですが、最新バージョンで増えた権限については確認することはできません。