SQL Server データベースを表示する -Azure Arc
適用対象: SQL Server
Azure でSQL Serverのデータベースのインベントリ作成や表示を行うことができます。
前提条件
開始する前に、データベースをホストするSQL Serverインスタンスを確認します。
- Windows オペレーティング システムが実行されている物理マシンまたは仮想マシンでホストされています。
- SQL Server 2014 (12.x) 以降です。
- Azure Arcに接続されています。「SQL ServerをAzure Arcに接続する」を参照してください。
- インターネットに直接接続されているか、プロキシ サーバー経由で接続されています。
- データベース名が名前付け規則に従っており、予約語が含まれていないことを確認します。 予約語のリストについては、「予約されたリソース名のエラーを解決する」を参照してください。
- 使用可能なデータベースのサイズと空き容量を表示するには、次のアクセス許可を指定します。
- 組み込みの SQL Serverログイン NT AUTHORITY\SYSTEM は、そのマシンで実行されているすべての SQL Serverインスタンスに対するSQL Serversysadmin サーバー ロールのメンバーである必要があります。
インベントリ データベース
- Azure portal でAzure Arcインスタンスによって有効化されたSQL Serverを見つけます。
- SQL Server リソースを選択します。
- [データ管理]で[データベース]を選択します。
Azure portal では、SQL Server データベース -Azure Arcが表示されます。この領域を使用して、インスタンスに属しているデータベースを表示します。
データベースのプロパティの表示
特定のデータベースのデータベース プロパティを表示するには、ポータルでデータベースを選択します。
データベースを作成、変更、または削除すると、変更は 1 時間以内にAzure portal に表示されます。
[データベース] ページには、次の情報が表示されます。
- データ コレクションとアップロードに関する情報:
- 最後に収集された時刻
- アップロード ステータス
- 各データベースに関する情報:
- 名前
- 状態
- 作成時間
- 最初の復元ポイント
特定のデータベースを選択すると、そのデータベースのすべてのプロパティが表示され、SQL Server Management Studio (SSMS) にも表示されます。
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
グラフを作成してダッシュボードにピン留めすることもできます。
既知の問題
オンプレミスで削除されたデータベースは、Azureではすぐに削除されない場合があります。 データベースCRUD操作がオンプレミスでど行われる方法には影響しません。