Azure SQL Database ( 以下、SQLDB ) のポイントインタイムリストアを実施する場合において、リストアする SQLDB はリストア元の SQLDB とは別の名前を指定する必要があります。
また、リストアした SQLDB を元の名前で利用する為には、以下の内容で各 SQLDB の名前を変更する必要があります。
- リストア元の SQLDB を別名に変更する ( リストア元の SQLDB の名前を未使用の状態にする為 )
- リストアした SQLDB をリストア元の SQLDB の名前に変更する
この名前変更の操作は、 SQL Server Management Studio ( 以下、SSMS ) を使用して、SQLDB をホストしている Azure SQL Server ( 以下、SQL Server ) に接続する事で容易に実施できます。また、SSMS が使用できない場合でも、Azure ポータル上からも実施する事が可能です。
本記事では、検証で確認できた、SQLDB の名前を変更する各手順をご紹介します。
前提
- 本手順は SSMS や Azure ポータルからの操作を前提とします。
- 本手順は SQLDB の利用を前提とします。
SQLDB のリストアについては、以下の公開情報の内容もご参照下さい。 learn.microsoft.com
環境
- Azure ポータルから検証用に作成した SQL Server ( sql-test0620 ) と SQLDB ( sqldb-test0620 ) を使用します。
- 作成した SQLDB にてポイントインタイムリストアを実施し、事前に SQL Server ( sql-test0620 ) 上に別名の SQLDB ( sqldb-test0620_restore ) を作成しておきます。
- SSMS が導入されている PC から SQLDB をホストしている SQL Server に対して接続できる様、事前に SQL Server のネットワーク設定を変更しておきます。
検証
SSMS 上からの GUI 操作による名前変更
1.SSMS が導入されている PC から SQL Server に接続します。

2.リストア元の SQLDB の名前 ( sqldb-test0620 ) を未使用の状態にする為に、まずはリストア元の SQLDB の右クリックメニューから [ 名前の変更 ] を選択します。

3.名前が変更できる様になりますので、別名 ( sqldb-test0620_old ) に変更します。

4.名前が変更された事を確認します。

5.手順 2 ~ 4 と同様の操作を行い、リストアした SQLDB の名前 ( sqldb-test0620_restore ) をリストア元の SQLDB の名前 ( sqldb-test0620 ) に変更します。

SSMS 上からの GUI 操作による名前変更はこれで完了となります。
SQL クエリの実行による名前変更
1.SSMS が導入されている PC から SQL Server に接続し、[ 新しいクエリ ] をクリックしてクエリエディタを起動します。また、使用するデータベースを [ master ] に変更しておきます。

2.リストア元の SQLDB の名前 ( sqldb-test0620 ) を未使用の状態にする為、以下の SQL クエリ を実行し、リストア元の SQLDB を別名 ( sqldb-test0620_old ) に変更します。
ALTER DATABASE [ リストア元の SQLDB 名 ] MODIFY NAME = [ 別名 ];
※ SQLDB 名の変更が反映されない場合は、[ 最新の情報に更新 ] ボタンをクリックする事で表示が更新されます。

3.手順 2 と同様に以下の SQL クエリを実行し、リストアした SQLDB の名前 ( sqldb-test0620_restore ) をリストア元の SQLDB の名前 ( sqldb-test0620 ) に変更します。
ALTER DATABASE [ リストアした SQLDB 名 ] MODIFY NAME = [ リストア元の SQLDB 名 ];

SQL クエリの実行による名前変更はこれで完了となります。
Cloud Shell 上での az コマンドの実行による名前変更
1.Azure ポータルにアクセスし Cloud Shell を起動します。

2.リストア元の SQLDB の名前 ( sqldb-test0620 ) を未使用の状態にする為、Cloud Shell から以下のコマンドを実行し、リストア元の SQLDB を別名 ( sqldb-test0620_old ) に変更します。
az sql db rename --resource-group [ リソースグループ名 ] --server [ SQL Server 名 ] --name [ リストア元の SQLDB 名 ] --new-name [ 別名 ]

3.Azure ポータルから SQLDB をホストしている SQL Server の [ 設定 ] - [ SQL データベース ] にアクセスし、リストア元の SQLDB の名前が変更されている事を確認します。

4.手順 2 と同様の操作で Cloud Shell から以下のコマンドを実行し、リストアした SQLDB ( sqldb-test0620_restore ) の名前をリストア元の SQLDB の名前 ( sqldb-test0620 ) に変更します。
az sql db rename --resource-group [ リソースグループ名 ] --server [ SQL Server 名 ] --name [ リストアした SQLDB 名 ] --new-name [ リストア元の SQLDB 名 ]

5.再度 Azure ポータルから SQLDB をホストしている SQL Server の [ 設定 ] - [ SQL データベース ] にアクセスし、リストアした SQLDB の名前が変更されている事を確認します。

Cloud Shell 上での az コマンドの実行による名前変更はこれで完了となります。
おわりに
本記事では、SSMS による GUI 操作、SQL クエリの実行、Cloud Shell 上での az コマンド実行の 3 つのパターンで SQLDB の名前が変更できる事を確認しました。
SQLDB のリストアを実施する際に参考になれば幸いです。