SE の雑記

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

SQL Server でレプリケーションが有効な環境を異なるサーバーにリストアできるかを検証してみる

leave a comment

SQL Server のバックアップをシステムデータベースを含めて、バックアップの取得元と異なるサーバーにリストアする際には、次の情報を参考にする機会が多いのではないでしょうか。

異なるサーバーにバックアップをリストアする際にはこれらの情報を参考にしてデータベースのリストアとリストア後の設定変更を行っていきます。

バックアップの取得元でレプリケーションが有効となっていた場合も、この作業だけでリストアを完了することができるのかを調査してみました。

概念検証として実施したため、T-SQL ベースで設定を強制的に変更している箇所がいくつかありますが、実運用環境で実施する際にはレプリケーションの再設定で検討をしたほうが良いかと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 4th, 2025 at 9:59 pm

Posted in SQL Server

Tagged with

SQL Server で所有者が設定されていないデータベースの確認と再設定

leave a comment

SQL Server では、バックアップを取得したサーバー以降のバージョンの SQL Server であれば、異なるサーバー名の環境に対してもデータベースのバックアップをリストアすることができます。

バックアップを取得した環境にリストアする場合は問題ないのですが、他のサーバーにリストアをした際に、データベースの所有者が設定されていない状態になることがありますので、すべてのデータベースに所有者が設定されているかの確認と修正方法を本投稿で記載しておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

2月 3rd, 2025 at 10:38 pm

Posted in SQL Server

Tagged with

Database Watcher のデータストアに Free ADX を設定する (2025/01 版)

leave a comment

本投稿と同様の事象が発生した場合の 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 を使用する設定ができていたのですが、私の環境では設定することができず、他の方法で設定する必要があったのでその際の作業内容を残しておきます。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 27th, 2025 at 11:38 pm

SQL Server 向けの Datadog エージェントの更新状況の確認

leave a comment

Datadog では SQL Server ベースの環境の情報を取得するための Integration が含まれており、データベースの各種情報を取得することができます。

Microsoft 純正の機能としては、Azure Arc Enabled SQL Server / Database Watcher といった機能がありますが、現時点では Datadog で取得される情報のほうが網羅性 / 拡張性があると感じています。

Datadog で SQL Server ベースの環境の情報を取得する際には Dataodg エージェント経由で情報の取得を行うことになりますが、エージェントは OSS として開発が行われており、頻繁に更新が行われています。

エージェントの更新状況は、GitHub のリポジトリから確認をすることになると思います。

SQL Server の Integration の更新状況を含めて確認をする際には、いくつかの情報を確認するひつようがありますので、どの情報を確認すればよいかをまとめておこうかと。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 23rd, 2025 at 10:45 pm

Posted in Datadog

Tagged with

Data Migration Assistant (DMA) の後継機能

leave a comment

今まで、SQL Server のバージョンアップ / SQL Server ベースの環境間の移行に使用することができるツールとして、Data Migration Assistant (DMA) というツールが提供されていました。

しかし、2024/06/29 にドキュメントの更新が行われ、DMA は非推奨の機能となりました。

データベースの移行については Azure Data Studio の SQL Migration 拡張機能 で代替することが可能なのですが、データベースの評価については Azure Data Studio (ADS) の機能は DMA よりリッチな機能となっておらず、この部分を代替する機能が提供されていない状態となっていました。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 23rd, 2025 at 9:09 pm

SQL Server / SQL Database で設定可能な権限を把握する

leave a comment

SQL Server /SQL Database のような SQL Server ベースのデータベースエンジンで、設定可能な権限を確認する際には、権限 (データベース エンジン) / 権限の階層 (データベース エンジン) に記載されている Database Engine Permissions Poster を確認するのが定番の方法となるかと思います。

しかし、この情報は SQL Server 2017 ベースの情報となっており、数世代前の SQL Server の情報となります。

現在の SQL Server ベースの環境でもこの情報は有益ではあるのですが、最新バージョンで増えた権限については確認することはできません。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 22nd, 2025 at 9:53 pm

各種ソフトのショートカット / 設定ファイル / チートシート

leave a comment

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 19th, 2025 at 8:00 pm

Posted in その他

Tagged with

Windows Dev Kit 2023 で Arm の Windows 11 の仮想マシンを作成する

leave a comment

Arm の Windows 11 の開発キットとして過去に提供されていた Windows Dev Kit 2023 (Project Volterra) の Hyper-V で ARM の Windows 11 の仮想マシンを作成する方法をまとめておきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 13th, 2025 at 5:52 pm

Posted in Windows on ARM

Tagged with

Azure Local 23H2 の SSH キーと kubeconfig の取得について (2025/01 版)

leave a comment

2025/01/12 時点の Azure Local 23H2 の SSH キーと kubeconfig の取得について情報をまとめておこうかと。

私の使用している環境 / 投稿時点の内容となるため、環境依存 / 今後変更される可能性があります。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 12th, 2025 at 11:07 pm

Posted in Azure Local

Tagged with

lock_aquired / lock_released の拡張イベントログで KEY ロックの対象を確認してみる

leave a comment

SQL Server で取得されたロックの情報を確認する方法として lock_aquired / lock_released イベントを拡張イベントで取得する方法があります。

取得されているロックを確認する方法としては sys.dm_tran_locks を参照する方法もあります。
この DMV から情報を取得した場合は、次の画像のように、resource_description から、どのロックリソース (%%lockres%%) のキーに対してロックが取得されているのかを確認することができます。

image

しかし、DMV の参照はトレースとして情報を時系列で取得することは難しく、ロックのような短時間で取得される内容が細かに変わっていくような特性のある情報については DMV を連続でダンプしても解析することは難しいです。

本投稿を各モチベーションとなったのは「キーに対してどのような順序でロックが取得されているか」を確認したかったのですが、このような情報については DMV で取得することは難しく、拡張イベントのようなイベント駆動のトレースの情報を取得する必要があります。

しかし拡張イベントで「取得されるロック」の情報を確認した場合 、上述の DMV のような resource_description のような可視性の高い情報が無く、次の画像のように、「resource_x」「associated_object_id」を使用して、情報を確認する必要があります。

image

これらの情報を使用して「どのキーに対してロックが取得されたのか?」を確認する方法を考えてみました。

Read the rest of this entry »

Written by Masayuki.Ozawa

1月 11th, 2025 at 7:57 pm