https://learn.microsoft.com/ja-jp/azure/mysql/flexible-server/quickstart-create-server-cli
https://learn.microsoft.com/ja-jp/azure/postgresql/flexible-server/quickstart-create-server-cli
前作業
az login --use-device-code
az account show
az version
az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults
az group create \
--name rg01 \
--location japaneast
az group list
---------------------------------------------
---------------------------------------------
[1] SQL Database
論理サーバーの作成
az sql server create \
--resource-group rg01 \
--name server123451 \
--admin-user azureuser \
--admin-password 'passwordpassword' \
--location japaneast
az sql server create \
--resource-group rg01 \
--name server123452 \
--admin-user azureuser \
--admin-password 'passwordpassword' \
--location eastus
az sql server list \
--resource-group rg01
az sql server show \
--resource-group rg01 \
--name server123451
az sql server show \
--resource-group rg01 \
--name server123452
論理サーバーの削除
az sql server delete \
--resource-group rg01 \
--name server123451 \
--yes
az sql server delete \
--resource-group rg01 \
--name server123452 \
--yes
---------------------------------------------
FWルールの作成
az sql server firewall-rule create \
--resource-group rg01 \
--server server123451 \
--name fw01 \
--start-ip-address 192.0.2.1 \
--end-ip-address 192.0.2.1
az sql server firewall-rule create \
--resource-group rg01 \
--server server123451 \
--name AllowAllWindowsAzureIps \
--start-ip-address 0.0.0.0 \
--end-ip-address 0.0.0.0
※ ↑ bacpacにエクスポートのエラー回避のために追加
the "Allow All Azure" checkbox in the Sql Server's configuration blade.'.
「azureサービスおよびリソースにこのサーバーへのアクセスを許可する」の設定により
追加されるルールで、全IP許可にはなっていない模様。名前に意味がある?
az sql server firewall-rule create \
--resource-group rg01 \
--server server123452 \
--name fw01 \
--start-ip-address 192.0.2.1 \
--end-ip-address 192.0.2.1
az sql server firewall-rule list \
--resource-group rg01 \
--server server123451
az sql server firewall-rule list \
--resource-group rg01 \
--server server123452
az sql server firewall-rule show \
--resource-group rg01 \
--server server123451 \
--name fw01
az sql server firewall-rule show \
--resource-group rg01 \
--server server123451 \
--name AllowAllWindowsAzureIps
az sql server firewall-rule show \
--resource-group rg01 \
--server server123452 \
--name fw01
FWルールの削除
az sql server firewall-rule delete \
--resource-group rg01 \
--server server123451 \
--name fw01
az sql server firewall-rule delete \
--resource-group rg01 \
--server server123451 \
--name AllowAllWindowsAzureIps
az sql server firewall-rule delete \
--resource-group rg01 \
--server server123452 \
--name fw01
---------------------------------------------
データベースの作成
az sql db create \
--resource-group rg01 \
--server server123451 \
--name db12345 \
--capacity 5 \
--compute-model Provisioned \
--edition Basic \
--zone-redundant false \
--auto-pause-delay 60 \
--backup-storage-redundancy Local \
--collation Japanese_BIN2 \
--yes
az sql db list \
--resource-group rg01 \
--server server123451
az sql db show \
--resource-group rg01 \
--server server123451 \
--name db12345
データベースの削除
az sql db delete \
--resource-group rg01 \
--server server123451 \
--name db12345 \
--yes
---------------------------------------------
レプリケーションを構成する
az sql db replica create \
--resource-group rg01 \
--server server123451 \
--partner-server server123452 \
--name db12345 \
--capacity 5 \
--compute-model Provisioned \
--zone-redundant false \
--auto-pause-delay 60 \
--backup-storage-redundancy Local
az sql db replica list-links \
--resource-group rg01 \
--server server123451 \
--name db12345
az sql db replica list-links \
--resource-group rg01 \
--server server123452 \
--name db12345
フェイルオーバー実行
az sql db replica set-primary \
--resource-group rg01 \
--server server123452 \
--name db12345
フェイルバック実行
az sql db replica set-primary \
--resource-group rg01 \
--server server123451 \
--name db12345
---------------------------------------------
フェールオーバー グループを構成する
az sql failover-group create \
--resource-group rg01 \
--server server123451 \
--partner-server server123452 \
--name fg12345 \
--failover-policy Automatic \
--add-db db12345
az sql failover-group list \
--resource-group rg01 \
--server server123451
az sql failover-group show \
--resource-group rg01 \
--server server123451 \
--name fg12345
az sql failover-group show \
--resource-group rg01 \
--server server123452 \
--name fg12345
フェイルオーバー実行
az sql failover-group set-primary \
--resource-group rg01 \
--server server123452 \
--name fg12345
フェイルバック実行
az sql failover-group set-primary \
--resource-group rg01 \
--server server123451 \
--name fg12345
フェールオーバー グループの削除
az sql failover-group delete \
--resource-group rg01 \
--server server123451 \
--name fg12345
---------------------------------------------
bacpacにエクスポート
az storage account create \
--resource-group rg01 \
--name st12345 \
--access-tier Hot \
--kind StorageV2 \
--sku Standard_LRS
key=$(az storage account keys list \
--account-name st12345 \
--resource-group rg01 \
--output json \
--query [0].value | tr -d '"')
echo $key
az storage container create \
--name container01 \
--account-name st12345 \
--public-access off \
--account-key $key
az sql db export \
--admin-user azureuser \
--admin-password 'passwordpassword' \
--storage-key $key \
--storage-key-type StorageAccessKey \
--storage-uri https://st12345.blob.core.windows.net/container01/backup01.bacpac \
--name db12345 \
--resource-group rg01 \
--server server123451
az storage blob list \
--account-name st12345 \
--container-name container01 \
--output table \
--account-key $key
bacpacからインポート
az sql db import \
--admin-user azureuser \
--admin-password 'passwordpassword' \
--storage-key $key \
--storage-key-type StorageAccessKey \
--storage-uri https://st12345.blob.core.windows.net/container01/backup01.bacpac \
--name db12345 \
--resource-group rg01 \
--server server123451
---------------------------------------------
---------------------------------------------
[2]Azure Database for MySQL
サーバーの作成
az mysql flexible-server list-skus \
--location japaneast \
--output table
az mysql flexible-server create \
--admin-password 'password' \
--admin-user azureuser \
--backup-retention 1 \
--name server12345 \
--resource-group rg01 \
--sku-name Standard_B1s \
--storage-auto-grow Disabled \
--storage-size 32 \
--version 8.0.21 \
--yes
az mysql flexible-server list \
--resource-group rg01
az mysql flexible-server show \
--resource-group rg01 \
--name server12345
サーバーの削除
az mysql flexible-server delete \
--resource-group rg01 \
--name server12345 \
--yes
---------------------------------------------
FWルールの作成
ローカルIPの許可が自動で追加される
az mysql flexible-server firewall-rule list \
--resource-group rg01 \
--name server12345
---------------------------------------------
データベースの作成
az mysql flexible-server db create \
--resource-group rg01 \
--server-name server12345 \
--database-name test
az mysql flexible-server db list \
--resource-group rg01 \
--server-name server12345
az mysql flexible-server db show \
--resource-group rg01 \
--server-name server12345 \
--database-name test
データベースの削除
az mysql flexible-server db delete \
--resource-group rg01 \
--server-name server12345 \
--database-name test \
--yes
---------------------------------------------
サーバー接続
az mysql flexible-server connect \
--name server12345 \
--database-name test \
--admin-user azureuser \
--interactive
MYSQL_PWD='password' mysql -h server12345.mysql.database.azure.com -P 3306 -u azureuser
---------------------------------------------
サーバーの起動停止
az mysql flexible-server stop \
--resource-group rg01 \
--name server12345
az mysql flexible-server start \
--resource-group rg01 \
--name server12345
az mysql flexible-server restart \
--resource-group rg01 \
--name server12345
---------------------------------------------
レプリカの作成
※読み取りレプリカは、バースト可能価格レベルではサポートされていません
価格レベルを汎用またはメモリ最適化に変更してください
Standard_D2ds_v4
2VCore 8GiB 3200iops
30円/1h
az mysql flexible-server create \
--admin-password 'password' \
--admin-user azureuser \
--backup-retention 1 \
--name server12345 \
--resource-group rg01 \
--sku-name Standard_D2ds_v4 \
--storage-auto-grow Disabled \
--storage-size 32 \
--version 8.0.21 \
--tier GeneralPurpose \
--yes
az mysql flexible-server replica create \
--resource-group rg01 \
--source-server server12345 \
--replica-name server12345rep
az mysql flexible-server replica list \
--resource-group rg01 \
--name server12345
az mysql flexible-server replica stop-replication \
--resource-group rg01 \
--name server12345rep \
--yes
---------------------------------------------
オンデマンドバックアップ
az mysql flexible-server backup create \
--resource-group rg01 \
--name server12345 \
--backup-name backup01
az mysql flexible-server backup list \
--resource-group rg01 \
--name server12345
az mysql flexible-server backup show \
--resource-group rg01 \
--name server12345 \
--backup-name backup01
---------------------------------------------
復元
az mysql flexible-server restore \
--source-server server12345 \
--name server12345new \
--resource-group rg01 \
--restore-time 2022-11-09T12:19:58Z \
--yes
---------------------------------------------
---------------------------------------------
[3]Azure Database for PostgreSQL
サーバーの作成
az postgres flexible-server list-skus \
--location japaneast \
--output table
az postgres flexible-server create \
--admin-password 'password' \
--admin-user azureuser \
--backup-retention 7 \
--name server12345 \
--resource-group rg01 \
--sku-name Standard_B1ms \
--storage-size 32 \
--version 14 \
--tier Burstable \
--yes
az postgres flexible-server list \
--resource-group rg01
az postgres flexible-server show \
--resource-group rg01 \
--name server12345
サーバーの削除
az postgres flexible-server delete \
--resource-group rg01 \
--name server12345 \
--yes
---------------------------------------------
FWルールの作成
ローカルIPの許可が自動で追加される
az postgres flexible-server firewall-rule list \
--resource-group rg01 \
--name server12345
---------------------------------------------
データベースの作成
az postgres flexible-server db create \
--resource-group rg01 \
--server-name server12345 \
--database-name test
az postgres flexible-server db list \
--resource-group rg01 \
--server-name server12345
az postgres flexible-server db show \
--resource-group rg01 \
--server-name server12345 \
--database-name test
データベースの削除
az postgres flexible-server db delete \
--resource-group rg01 \
--server-name server12345 \
--database-name test \
--yes
---------------------------------------------
サーバー接続
az postgres flexible-server connect \
--name server12345 \
--database-name test \
--admin-user azureuser \
--interactive
PGPASSWORD='password' psql -h server12345.postgres.database.azure.com -p 5432 -U azureuser test
---------------------------------------------
サーバーの起動停止
az postgres flexible-server stop \
--resource-group rg01 \
--name server12345
az postgres flexible-server start \
--resource-group rg01 \
--name server12345
az postgres flexible-server restart \
--resource-group rg01 \
--name server12345
---------------------------------------------
レプリカの作成
※読み取りレプリカは、バースト可能価格レベルではサポートされていません
価格レベルを汎用またはメモリ最適化に変更してください
→調査日時点でプレビュー
---------------------------------------------
オンデマンドバックアップ
→調査日時点で未対応
az postgres flexible-server backup list \
--resource-group rg01 \
--name server12345
az postgres flexible-server backup show \
--resource-group rg01 \
--name server12345 \
--backup-name backup_111111111111111111
---------------------------------------------
復元
az postgres flexible-server restore \
--source-server server12345 \
--name server12345new \
--resource-group rg01 \
--restore-time 2022-11-09T12:41:36Z \
--yes
---------------------------------------------
---------------------------------------------
クリーンアップ
az group list
az group delete \
--name rg01 \
--yes