Azure Arc を使用して SQL Server リソースのインベントリを管理する
適用対象:SQL Server
SQL Server エンジン インスタンスまたは関連サービスが Azure Arc によって有効になっている場合は、Azure を使用してインベントリを管理できます。
前提条件
SQL Server サービスが稼働していることを確認する
- バージョン SQL Server 2014 (12.x) 以降。
- Windows オペレーティング システムを実行している物理マシンまたは仮想マシン。
- Azure Arc に接続されています。「SQL Server を Azure Arcに接続する」を参照してください。
- インターネットに直接接続されているか、プロキシ サーバー経由で接続されています。
インベントリ データベース
SQL Server データベースのインベントリを作成するには、データベース名が名前付け規則に従っており、予約語が含まれていないことを確認します。 予約語のリストについては、「予約されたリソース名のエラーを解決する」を参照してください。
データベースのインベントリを作成するには:
- Azure portal で Azure Arc 対応の SQL Server のインスタンスを見つけます。
- SQL Server リソースを選択します。
- [データ管理]で[データベース]を選択します。
- SQL Server データベース -Azure Arc 領域を使用して、インスタンスに属しているデータベースを表示します。
データベースのサイズと空き容量を表示するには、組み込みの SQL Server ログイン NT AUTHORITY\SYSTEM が、必ずそのマシンで実行されているすべての SQL Server インスタンスに対する SQL Server sysadmin サーバー ロールのメンバーであるようにします。
データベースのプロパティの表示
特定のデータベースのデータベースのプロパティを表示するには、ポータルでデータベースを選択します。
データベースを作成、変更、または削除すると、変更は 1 時間以内にAzure portal に表示されます。
[データベース] ウィンドウには、次の情報も表示されます:
- データ コレクションとアップロードに関する情報:
- 最後に収集された時刻
- アップロード ステータス
- 各データベースに関する情報:
- 名前
- ステータス
- 作成時間
- 最初の復元ポイント
特定のデータベースを選択すると、そのデータベースのすべてのプロパティが表示されます。 これらのプロパティは、SQL Server Management Studio 内でも表示されます。
Azure Resource Graph をデータのクエリに使用する
以下は、Azure Resource Graph を使用して、Azure Arc 対応 SQL Server データベースを表示するときに利用可能なデータをクエリする方法を示すシナリオの例です。
シナリオ 1: 10 個のデータベースを取得する
10 個のデータベースを取得し、クエリに使用できるプロパティを返します。
resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| limit 10
クエリを実行する最も興味深いプロパティの多くは、properties
プロパティ内にあります。 使用可能なプロパティを調べるには、次のクエリを実行して、行の [詳細の表示] を選択します。 このアクションにより、右側の JSON ビューアーでプロパティが返されます。
resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| project properties
JSON の各レベル間の期間を使用して、プロパティの JSON の階層を移動できます。
シナリオ 2: データベース オプション AUTO_CLOSE がONに設定されているすべてのデータベースを取得する
| where (type == 'microsoft.azurearcdata/sqlserverinstances/databases' and properties.databaseOptions.isAutoCloseOn == true)
| extend isAutoCloseOn = properties.databaseOptions.isAutoCloseOn
| project name, isAutoCloseOn
シナリオ 3: 暗号化されているデータベースと暗号化されていないデータベースの数を取得する
resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| extend isEncrypted = properties.databaseOptions.isEncrypted
| summarize count() by tostring(isEncrypted)
| order by ['isEncrypted'] asc
シナリオ 4: 暗号化されていないすべてのデータベースを表示する
resources
| where (type == 'microsoft.azurearcdata/sqlserverinstances/databases' and properties.databaseOptions.isEncrypted == false)
| extend isEncrypted = properties.databaseOptions.isEncrypted
| project name, isEncrypted
シナリオ 5: リージョンと互換性レベル別にすべてのデータベースを取得する
次の例では、westus3
の場所にある、互換性レベルが 160 のすべてのデータベースが返されます。
resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| where location == "westus3"
| where properties.compatibilityLevel == "160"
シナリオ 6:SQL Serverバージョンの分布を表示する
resources
| where type == 'microsoft.azurearcdata/sqlserverinstances'
| extend SQLversion = properties.version
| summarize count() by tostring(SQLversion)
シナリオ 7: 互換性別にデータベースの数を表示する
次の例では、互換性レベルで並べ替えられたデータベースの数が返されます。
resources
| where type == 'microsoft.azurearcdata/sqlserverinstances/databases'
| summarize count() by tostring(properties.compatibilityLevel)
| order by properties_compatibilityLevel asc
関連するサービスのインベントリ
SQL Server に関連付けられているサービスは次のとおりです。
- SQL Server データベース エンジン
- SQL Server Analysis Services (SSAS)
- SQL Server Integration Services (SSIS)
- SQL Server Reporting Services (SSRS)
- Power BI Report Server (PBIRS)
関連付けられたサービスの各インストールは、Azure Resource Manager (ARM) で SQL Server インスタンスとして表され、serviceType
プロパティには特定のサービスが表示されます。 プロパティは次のように定義されます。
"serviceType": {
"type": "string",
"enum": [ "Engine", "SSAS", "SSIS", "SSRS", “PBIRS” ],
"default": "Engine"
}
インベントリ ダッシュボードを作成する
グラフを作成してダッシュボードにピン留めすることもできます。
既知の問題
オンプレミスで削除されたリソースは、Azure ですぐに削除されない場合があります。 たとえば、データベースを削除した場合、Azure 上のデータベースのイメージは、サーバー リソースが同期されるまで保持されます。