[Azure SQL Database] どうする? SQL Database の価格レベル変更が終わらない!


山田 浩史
Technical Advisor

普段は 10分~15分で完了する SQL Database の価格レベルの変更処理がなかなか終わらない。

なにか Azure で障害が起きているのか?もう少し待てば終わるのか? Microsoft に問合せを上げるべきかどうか判断が出来ない。

そんな時にまずは確認したいポイントをまとめました。

 

前提:

SQL Database の価格レベルを変更すると、新しい価格レベルで元のデータベースのコピーが作成され、接続先がそのコピー環境に切り替えられる事があります。価格レベル変更処理の大部分が、このデータベースのコピーを作成するのにかかる時間です。価格レベル変更が早く終わるケースは、このデータコピーが行われずにリソースの割り当てが行えた場合であり、時間がかかるケースはデータコピーが行われている場合となります。

つまり、データベースサイズが大きい場合や、IO が速い Premium 以外のサービスレベルをご利用の場合は、このコピー処理に長時間かかる事があります。具体的には、250 GB のデータベースを Standard サービス レベルとの間または Standard サービス レベル内で変更する場合は、6 時間程度かかる事があります。

とは言え、あとどれくらいで処理が完了するのか目安となる時間くらいは知りたいですよね。

 

進捗確認方法:

価格レベル変更の進捗は、Azure ポータル上から確認する方法と T-SQL クエリで確認する方法があります。

 

1. Azure ポータル上から確認

Azure SQL Database の概要画面下部に、[通知] の項目があり、価格レベルの変更中には、「1個の操作が実行中です」と出力されます。

そちらをクリックすると、画面右側に進捗バーが表示されます。

またこちらからは、価格レベルの変更操作の取り消しも出来ます。

 

2. T-SQL クエリでの確認

master データベースにて以下クエリを実行する事で、現在の価格レベル変更の進捗状況が確認出来ます。

     select major_resource_id, operation, state_desc, start_time, percent_complete from sys.dm_operation_status;

          major_resource_id:該当の DB 名
          operation:価格レベルの変更は ALTER DATABASE
          start_time:処理開始時刻(UTC)
          percent_complete:進捗(パーセント)

出力結果例:

major_resource_id operation state_desc start_time percent_complete
TestDB ALTER DATABASE IN_PROGRESS 2018/5/21 7:45:38 52

 

上記クエリを定期的に実行し percent_complete の進み具合を見て、今どれくらい進んでいて、この後どれくらい変更完了までかかりそうなのかある程度推測が出来ます。

もし、数十分経過しても percent_complete が 1 % も進まないような状況であれば、私どもサポートまでお問合せ下さい。

※ 本Blogの内容は、2018年5月 現在の内容となっております。


Comments (0)

Skip to main content