Azure CLI(RDS)

 

https://learn.microsoft.com/ja-jp/azure/azure-sql/database/scripts/setup-geodr-failover-database-cli?view=azuresql

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