概要
- Azure リソースのメンテナンス等で使えそうなコマンドのスニペット(PowerShell ベース)をまとめました
- PowerShell コンソールに貼って使えます
- 今回は SQL に関するスニペットをまとめます
前提
- Azure CLI がインストールされている前提です
- 実行するには、事前に
az login
コマンドで 認証する必要があります(参考:Azure CLI の概要 - サインイン) - 環境情報:
- Azure CLI(v.2.0.57)
- PowerShell(v.5.1.17134.407)
- 安全に試せるよう 情報取得系 中心にまとめます(一部注意事項あります)
- 一部のスニペットは実行時にパラメータが必要となります
SQLサーバ の一覧を取得したい
az sql server list
SQLサーバ の名称、所属リソースグループ を一覧取得したい
(az sql server list | ConvertFrom-Json) | % {$_.name + " (" + $_.resourceGroup + ")"}
SQLサーバ の サーバ管理者名 を一覧取得したい
(az sql server list | ConvertFrom-Json) | % {$_.name + " (" + $_.resourceGroup + ")" + "`n 管理者:" + $_.administratorLogin + "`n"}
- 単に見たいだけであれば、以下が 視野性○
az sql server list --output table
特定サーバの DB情報 を取得したい
Param(
[Parameter(Mandatory=$true)] $resourceGroup,
[Parameter(Mandatory=$true)] $serverName
); `
az sql db list -g $resourceGroup --server $serverName
全サーバの DB情報を JSONファイルとして保存したい
- 【注意】全サーバ分の情報を取得するため処理に時間がかかります
Param(
[Parameter(Mandatory=$true)] $outputDirName
); `
New-Item $outputDirName -ItemType Directory -Force; `
(az sql server list | ConvertFrom-Json) | `
% {
$outer = $_; `
(az sql db list --server $_.name -g $_.resourceGroup | ConvertFrom-Json) `
} | `
% {
New-Item ($outputDirName + "/" + $outer.name) -ItemType Directory -Force; `
$_ | ConvertTo-Json -Depth 100 > ("./$outputDirName/" + $outer.name + "/" + $_.name + ".json") `
};
全データベースの スペック を一覧取得する
- 【注意】全サーバ分の情報を取得するため処理に時間がかかります
- DTUモデル と vCoreモデル 別に表示内容を切り替え
(az sql server list | ConvertFrom-Json) | `
% {
$outer = $_; `
(az sql db list --server $_.name -g $_.resourceGroup | ConvertFrom-Json) `
} | `
% {
if ($_.sku.family -eq $null) {
# DTUモデル
$outer.name + " - " + $_.name + "`n " + `
"モデル:DTU`n " + `
"データの最大サイズ:" + ($_.maxSizeBytes / 1024 / 1024 / 1024 ) + " GB`n " + `
"ログの最大サイズ:" + ($_.maxLogSizeBytes / 1024 / 1024 / 1024 ) + " GB`n " + `
"価格帯:" + $_.sku.tier + "`n " + `
"DTU数:" + $_.sku.capacity + "`n";
} else {
# vCoreモデル
$outer.name + " - " + $_.name + "`n " + `
"モデル:vCore`n " + `
"データの最大サイズ:" + ($_.maxSizeBytes / 1024 / 1024 / 1024 ) + " GB`n " + `
"ログの最大サイズ:" + ($_.maxLogSizeBytes / 1024 / 1024 / 1024 ) + " GB`n " + `
"価格帯:" + $_.sku.tier + ", " + $_.sku.family + "`n " + `
"vCore数:" + $_.sku.capacity + "`n";
}
};