Azure Database for PostgreSQL フレキシブルサーバーの開始、停止、情報取得時に使うコマンド一覧

2023-02-11Azure,Database for PostgreSQL,PowerShell/Azure CLI

Azure Database for PostgreSQL フレキシブルサーバーのリソース情報取得、開始停止に使う、Azure CLIコマンドやAzure PowerShellコマンドレットの一覧です。
操作内容に合わせたAzure CLIコマンドやAzure PowerShellコマンドレットを一覧形式でまとめています。
開始、停止、フェイルオーバー、情報取得時のコマンド実行例についても紹介しています。

スポンサーリンク

Azure Database for PostgreSQLフレキシブルサーバーの開始、停止、情報取得コマンド一覧

Azure Database for PostgreSQL フレキシブルサーバーは、Azureで提供されるマネージドデータベースサービスです。
フレキシブルサーバーの特徴の1つに、サーバー停止している間はコンピューティングの課金が発生しないという点があります。
使っていない間サーバーを停止させておくことで、コストを削減できます。

備忘を兼ねて、Azure Database for PostgreSQL フレキシブルサーバーのリソース情報取得、開始停止、フェールオーバーに関するAzure CLIコマンドやAzure PowerShellコマンドレットを一覧形式にまとめています。

確認に使用した環境(バージョン)

確認に使用したバージョンです。

    • PowerShell : 7.6.0
    • Azure CLI : 2.84.0
    • Az Module : 15.4.0
    • Az.PostgreSql : 1.4.0

Azure Database for PostgreSQL フレキシブルサーバーのリソース作成手順は、こちらで紹介しています。
高可用性モードは、ゾーン冗長としています。
また、サーバー名は"pgsql-01″としています。

Azureへのサインインやサブスクリプションで使用するコマンドについては、こちらで紹介しています。

Azure PowerShellの場合、Az.PostgreSqlモジュールが必要

Azure PowerShellを使って、PostgreSQLフレキシブルサーバーのリソースを操作する場合、Az.PostgreSqlモジュールが必要となります。
コマンドレットが見つからない場合は、"Install-Module -Name Az.PostgreSql"でモジュールをインストールします。
既にインストール済みの場合は、"Update-Module -Name Az.PostgreSql"で最新バージョンに更新できます。

Azure Database for PostgreSQL フレキシブルサーバーの一覧やインスタンス情報取得

Azure Database for PostgreSQL フレキシブルサーバーのリスト取得やリソース情報取得時に使うコマンド(コマンドレット)一覧です。

実施内容 Azure CLI Azure PowerShell
サーバーインスタンスの一覧を取得する az postgres flexible-server list –output table Get-AzPostgreSqlFlexibleServer
サーバーインスタンス情報を取得する

サブスクリプション内
az postgres flexible-server list

リソースグループ内
az postgres flexible-server list –resource-group “リソースグループ名"

各リソース
az postgres flexible-server show –resource-group “リソースグループ名" –name “サーバー名"

サブスクリプション内
Get-AzPostgreSqlFlexibleServer |Format-List

リソースグループ内
Get-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" |Format-List

各リソース
Get-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名" |Format-List

※Azure PowerShellの場合はFormat-Listを利用して一覧出力するようにしています。詳細はこちらを参照ください。

Azure Database for PostgreSQL フレキシブルサーバーの開始、停止

Azure Database for PostgreSQL フレキシブルサーバーの開始停止時に使うコマンド(コマンドレット)一覧です。
なお、再起動はデータベース再起動です。
サーバー(コンピューティング)自体の再起動ではありません。
コンピューティングを再起動するには、停止、開始します。

PostgreSQL エンジンを再起動する

実施内容 Azure CLI Azure PowerShell
サーバーを開始 az postgres flexible-server start –resource-group “リソースグループ名" –name “サーバー名"

Start-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

サーバーを停止

az postgres flexible-server stop –resource-group “リソースグループ名" –name “サーバー名"

Stop-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

データベースを再起動

az postgres flexible-server restart –resource-group “リソースグループ名" –name “サーバー名"

Restart-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名"

※Azure CLIを使ったサーバー停止時に"–no-wait"オプションを使うと、処理の完了を待たずにコマンドが完了します。Azure PowerShellの場合は"-NoWait"オプションになります。
※Azure CLIを使ったサーバー操作時に"–ids"オプションを使うと、リソースIDを利用して操作できます。
※Azure PowerShellを使ったサーバー操作時に"-InputObject"オプションを使うと、リソースIDを利用して操作できます。リソースIDの末尾に操作内容(例: /start、/stop)の付与が必要な点に注意してください。

停止した状態のサーバーは7日後に自動で起動する

サーバーを停止した場合においても、7日後に自動的に開始されます。
7日以上停止させたい場合は、再度停止操作をする必要があります。

Azure Database for PostgreSQL の制限

なお、サーバー停止している間はコンピューティングの課金が発生しませんが、ストレージの課金はサーバー停止中も発生します。
また、サーバーが停止状態の間、バックアップの復元などの管理操作は実行できません。

※停止中のサーバーも、月次のスケジュールメンテナンスのために一時的に再起動される場合があります。

Azure Database for PostgreSQL フレキシブルサーバーのフェールオーバー

Azure Database for PostgreSQL フレキシブルサーバーをフェールオーバーさせる場合に使うコマンド(コマンドレット)の一覧です。
フェールオーバー時はRestartを利用します。

なお、フェールオーバーを実行するためには、高可用性(HA)が有効になっている必要があります。

Azure Database for PostgreSQLでの高可用性

実施内容 Azure CLI Azure PowerShell
計画フェールオーバー az postgres flexible-server restart –resource-group “リソースグループ名" –name “サーバー名" –failover Planned Restart-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名" -RestartWithFailover -FailoverMode PlannedFailover
強制フェールオーバー az postgres flexible-server restart –resource-group “リソースグループ名" –name “サーバー名" –failover Forced Restart-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “サーバー名" -RestartWithFailover -FailoverMode ForcedFailover

—広告—

Azure CLIを使ってAzure Database for PostgreSQL フレキシブルサーバーを操作

サーバー インスタンスに関する情報を取得して表示

az postgres flexible-server showコマンドまたはaz postgres flexible-server listコマンドを使用して、PostgreSQLフレキシブルサーバーのインスタンス情報を取得できます。
また、Azure PowerShellではGet–AzPostgreSqlFlexibleServerコマンドレットを使用してリソース情報を取得できますが、取得できる情報に違いがある点に注意が必要です。

サーバーのインスタンスに関する情報を取得して表示

PS C:\> az postgres flexible-server list –output table
Name Resource Group Location Version Storage Size(GiB) Tier SKU State HA State Availability zone
—– —– —– —– —– —– —– —– —– —– —– —–
pgsql-01 リソースグループ名 Japan East 18 32 GeneralPurpose Standard_D2ds_v5 Ready Healthy 3

PS C:\> az postgres flexible-server show –resource-group “リソースグループ名" –name “pgsql-01"

{
  “administratorLogin": “管理者アカウントのユーザー名",
  “administratorLoginPassword": null,
  “authConfig": {
    “activeDirectoryAuth": “Disabled",
    “passwordAuth": “Enabled",
    “tenantId": null
  },
  “availabilityZone": “3",
  “backup": {
    “backupRetentionDays": 7,
    “earliestRestoreDate": “2026-04-11T03:40:47.831901+00:00",
    “geoRedundantBackup": “Enabled"
  },
  “cluster": null,
  “createMode": null,
  “dataEncryption": {
    “geoBackupEncryptionKeyStatus": null,
    “geoBackupKeyUri": null,
    “geoBackupUserAssignedIdentityId": null,
    “primaryEncryptionKeyStatus": null,
    “primaryKeyUri": null,
    “primaryUserAssignedIdentityId": null,
    “type": “SystemManaged"
  },
  “fullyQualifiedDomainName": “pgsql-01.postgres.database.azure.com",
  “highAvailability": {
    “mode": “ZoneRedundant",
    “standbyAvailabilityZone": “1",
    “state": “Healthy"
  },
  “id": “/subscriptions/サブスクリプションID/resourceGroups/リソースグループ名/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgsql-01",
  “identity": null,
  “location": “Japan East",
  “maintenanceWindow": {
    “customWindow": “Disabled",
    “dayOfWeek": 0,
    “startHour": 0,
    “startMinute": 0
  },
  “minorVersion": “3",
  “name": “pgsql-01",
  “network": {
    “delegatedSubnetResourceId": “サブネットのリソースID",
    “privateDnsZoneArmResourceId": “プライベートDNSゾーンのリソースID",
    “publicNetworkAccess": “Disabled"
  },
  “pointInTimeUtc": null,
  “privateEndpointConnections": null,
  “replica": {
    “capacity": 5,
    “promoteMode": null,
    “promoteOption": null,
    “replicationState": null,
    “role": “Primary"
  },
  “replicaCapacity": 5,
  “replicationRole": “Primary",
  “resourceGroup": “リソースグループ名",
  “sku": {
    “name": “Standard_D2ds_v5",
    “tier": “GeneralPurpose"
  },
  “sourceServerResourceId": null,
  “state": “Ready",
  “storage": {
    “autoGrow": “Disabled",
    “iops": 120,
    “storageSizeGb": 32,
    “throughput": null,
    “tier": “P4",
    “type": “"
  },
  “systemData": {
    “createdAt": “2026-04-11T03:35:19.746866+00:00",
    “createdBy": null,
    “createdByType": null,
    “lastModifiedAt": null,
    “lastModifiedBy": null,
    “lastModifiedByType": null
  },
  “tags": {},
  “type": “Microsoft.DBforPostgreSQL/flexibleServers",
  “version": “18"
}

Azure CLIコマンドを使用したAzure Database for PostgreSQL フレキシブルサーバーの操作例

Azure CLIコマンドを利用してAzure Database for PostgreSQL フレキシブルサーバーを操作する場合の例です。

操作内容 コマンド実行内容
サーバーを停止

PS C:\> az postgres flexible-server stop –resource-group “リソースグループ名" –name “pgsql-01"
Server will be automatically started after 7 days if you do not perform a manual start operation

サーバーを開始

PS C:\> az postgres flexible-server start –resource-group “リソースグループ名" –name “pgsql-01"

サーバーの電源ステータスを一覧表示

PS C:\> az postgres flexible-server list –query “[].{ServerName:name, RGName:resourceGroup, PowerState:state}" -o table

# サーバーが起動している場合
ServerName RGName PowerState
—– —– ——
pgsql-01 リソースグループ名 Ready

# サーバーが停止している場合
ServerName RGName PowerState

—————— ——– ————
pgsql-01 リソースグループ名 Stopped

サーバーのコンピューティング情報を一覧表示

PS C:\> az postgres flexible-server list –query “[].{ServerName:name, RGName:resourceGroup, Location:location, ComputeSize:sku.name, StorageSize:storage.storageSizeGb}" -o table

ServerName RGName Location ComputeSize StorageSize
—– —– —– —– —–
pgsql-01 リソースグループ名 Japan East Standard_D2ds_v5 32

サーバーをフェイルオーバー
コマンド例は計画フェイルオーバーの場合です。

# フェイルオーバー前のステータス(プライマリ可用性ゾーン3)
PS C:\> az postgres flexible-server list –query “[].{ServerName:name, State:state, HA: highAvailability.state, AvailabilityZone: availabilityZone, StandbyAvailabilityZone: highAvailability.standbyAvailabilityZone }" -o table

ServerName State HA AvailabilityZone StandbyAvailabilityZone
—– —– —– —– —–
pgsql-01 Ready Healthy 3 1

# フェイルオーバーを実行(計画フェイルオーバーの場合)
PS C:\>
az postgres flexible-server restart –resource-group “リソースグループ名" –name “pgsql-01" –failover Planned

# フェイルオーバー後のステータス(プライマリ可用性ゾーン1)
PS C:\> az postgres flexible-server list –query “[].{ServerName:name, State:state, HA: highAvailability.state, AvailabilityZone: availabilityZone, StandbyAvailabilityZone: highAvailability.standbyAvailabilityZone }" -o table
ServerName State HA AvailabilityZone StandbyAvailabilityZone
—– —– —– —– —–
pgsql-01 Ready Healthy 1 3

同一サブスクリプション内で起動しているサーバーをすべて停止

PS C:\> $PostgreSQL_ids = az postgres flexible-server list –query “[?state==’Ready’].id" –output tsv
PS C:\> az postgres flexible-server stop –ids $PostgreSQL_ids

同一サブスクリプション内で停止しているサーバーをすべて開始

PS C:\> $PostgreSQL_ids = az postgres flexible-server list –query “[?state==’Stopped’].id" –output tsv
PS C:\> az postgres flexible-server start –ids $PostgreSQL_ids

—広告—

Azure PowerShellを使ってAzure Database for PostgreSQL フレキシブルサーバーを操作する

サーバー インスタンスに関する情報を取得して表示

Get-AzPostgreSqlFlexibleServerコマンドレットを使ってMySQLフレキシブルサーバーのインスタンス情報が取得できます。
また、Azure CLIでは、az postgres flexible-server showコマンドを使用してリソース情報を取得できますが、取得できる情報に違いがある点に注意が必要です。

サーバーのインスタンスに関する情報を取得して表示

PS C:\> Get-AzPostgreSqlFlexibleServer

Name Location SkuName SkuTier AdministratorLogin Version
—- ——– ——- ——- —————— ——-
pgsql-01 Japan East Standard_D2ds_v5 GeneralPurpose dbadmin 18

PS C:\> Get-AzPostgreSqlFlexibleServer -ResourceGroupName “test-rg" -Name “test-postgresql-flexible-server" |Format-List

AdministratorLogin : 管理者アカウントのユーザー名
AdministratorLoginPassword :
AvailabilityZone : 1
BackupEarliestRestoreDate : 2026/04/11 3:40:47
BackupGeoRedundantBackup : Enabled
BackupRetentionDay : 7
CreateMode :
FullyQualifiedDomainName : pgsql-01.postgres.database.azure.com
HighAvailabilityMode : ZoneRedundant
HighAvailabilityStandbyAvailabilityZone : 3
HighAvailabilityState : Healthy
Id : /subscriptions/サブスクリプションID/resourceGroups/リソースグループ名/providers/Microsoft.DBforPostgreSQL/flexibleServers/pgsql-01
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : Japan East
MaintenanceWindowCustomWindow : Disabled
MaintenanceWindowDayOfWeek : 0
MaintenanceWindowStartHour : 0
MaintenanceWindowStartMinute : 0
MinorVersion : 3
Name : pgsql-01
NetworkDelegatedSubnetResourceId : サブネットのリソースID
NetworkPrivateDnsZoneArmResourceId : プライベートDNSゾーンのリソースID
NetworkPublicNetworkAccess : Disabled
PointInTimeUtc :
PropertiesTag : Microsoft.Azure.PowerShell.Cmdlets.PostgreSql.Models.Api20210601.ServerPropertiesTags
SkuName : Standard_D2ds_v5
SkuTier : GeneralPurpose
SourceServerResourceId :
State : Ready
StorageSizeGb : 32
SystemDataCreatedAt :
SystemDataCreatedBy :
SystemDataCreatedByType :
SystemDataLastModifiedAt :
SystemDataLastModifiedBy :
SystemDataLastModifiedByType :
Tag : Microsoft.Azure.PowerShell.Cmdlets.PostgreSql.Models.Api10.TrackedResourceTags
Type : Microsoft.DBforPostgreSQL/flexibleServers
Version : 18
SecuredPassword :
FirewallRuleName :

Azure PowerShellコマンドレットを使用したAzure Database for PostgreSQL フレキシブルサーバーの操作例

Azure PowerShellコマンドレットを利用してAzure Database for PostgreSQL フレキシブルサーバーを操作する場合の例です。

操作内容 コマンド実行内容
サーバーを停止

PS C:\> Stop-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “pgsql-01"

サーバーを開始

PS C:\> Start-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “pgsql-01"

サーバーの電源ステータスを一覧表示

# サーバーが起動している場合
PS C:\> Get-AzPostgreSqlFlexibleServer |ft Name,State

Name State
—- —–
pgsql-01 Ready

# サーバーが停止している場合
Name State
—- —–
pgsql-01 Stopped

サーバーのコンピューティング情報を一覧表示
PS C:\> Get-AzPostgreSqlFlexibleServer `

| ft -AutoSize @{Label="ServerName"; Expression={ $_.Name }}, `
  @{Label="ResourceGroupName"; Expression={ ($_.Id -split “/")[4] } }, `
  @{Label="PowerState"; Expression={ $_.State }}, `
  @{Label="HA"; Expression={ $_.HighAvailabilityState }}, `
  @{Label="Location"; Expression={ $_.Location }}, `
  @{Label="ComputeSize"; Expression={ $_.SkuName }}, `
  @{Label="StorageSize(GB)"; Expression={ $_.StorageSizeGb }}

ServerName ResourceGroupName PowerState HA Location ComputeSize StorageSize(GB)
———- —————– ———- — ——– ———– —————
pgsql-01 rg-db-02 Ready Japan East Standard_D2ds_v5 32

サーバーをフェイルオーバー
コマンドレット例は計画フェイルオーバーの場合です。

# フェイルオーバー前のステータス(プライマリ可用性ゾーン1)
PS C:\> Get-AzPostgreSqlFlexibleServer `
| ft -AutoSize @{Label="ServerName"; Expression={ $_.Name }}, `
  @{Label="PowerState"; Expression={ $_.State }}, `
  @{Label="HA"; Expression={ $_.HighAvailabilityState }}, `
  @{Label="AvailabilityZone"; Expression={ $_.AvailabilityZone }}, `
  @{Label="StandbyAvailabilityZone"; Expression={ $_.HighAvailabilityStandbyAvailabilityZone }}

ServerName PowerState HA AvailabilityZone StandbyAvailabilityZone
—– —– —– —– —–
pgsql-01 Ready Healthy 1 3

# フェイルオーバーを実行
PS C:\>
Restart-AzPostgreSqlFlexibleServer -ResourceGroupName “リソースグループ名" -Name “pgsql-01" -RestartWithFailover -FailoverMode PlannedFailover

# フェイルオーバー後のステータス(プライマリ可用性ゾーン3)
PS C:\> Get-AzPostgreSqlFlexibleServer `
| ft -AutoSize @{Label="ServerName"; Expression={ $_.Name }}, `
  @{Label="PowerState"; Expression={ $_.State }}, `
  @{Label="HA"; Expression={ $_.HighAvailabilityState }}, `
  @{Label="AvailabilityZone"; Expression={ $_.AvailabilityZone }}, `
  @{Label="StandbyAvailabilityZone"; Expression={ $_.HighAvailabilityStandbyAvailabilityZone }}

ServerName PowerState HA AvailabilityZone StandbyAvailabilityZone
—– —– —– —– —–
pgsql-01 Ready Healthy 3 1

同一サブスクリプション内で起動しているサーバーをすべて停止
$PostgreSQL_list = Get-AzPostgreSqlFlexibleServer | Where-Object {$_.State -like “Ready"}
for($i = 0; $i -lt $PostgreSQL_list.Count; $i++){
$PostgreSQLServer = $PostgreSQL_list[$i]
$PostgreSQL_id = $PostgreSQLServer.id
$PostgreSQL_id = “$PostgreSQL_id/stop"
Stop-AzPostgreSqlFlexibleServer -InputObject $PostgreSQL_id
}
同一サブスクリプション内で停止しているサーバーをすべて開始
$PostgreSQL_list = Get-AzPostgreSqlFlexibleServer | Where-Object {$_.State -like “Stopped"}
for($i = 0; $i -lt $PostgreSQL_list.Count; $i++){
$PostgreSQLServer = $PostgreSQL_list[$i]
$PostgreSQL_id = $PostgreSQLServer.id
$PostgreSQL_id = “$PostgreSQL_id/start"
Start-AzPostgreSqlFlexibleServer -InputObject $PostgreSQL_id
}

—広告—

最後に

Azure Database for PostgreSQL フレキシブルサーバーのAzure CLIコマンドやAzure PowerShellコマンドレットを一覧形式でまとめました。
Azure CLIコマンドとAzure PowerShellで取得できる情報が異なったり、同じ操作内容でも指定する値が違ったりする点には注意が必要です。
今回はサーバー情報の取得や開始・停止操作を中心にまとめていますが、ネットワーク設定、データベースの確認、リストア実施といった操作もできます。

引き続き、いろいろ試していきたいと思います。

Azure Database for MySQL フレキシブルサーバーの開始停止時に使うコマンド一覧については、こちらで紹介しています。

Azure CLIやAzure PowerShellのインストール手順については、こちらで紹介しています。

スポンサーリンク