山田 浩史
Technical Advisor
普段は 10分~15分で完了する SQL Database の価格レベルの変更処理がなかなか終わらない。
なにか Azure で障害が起きているのか?もう少し待てば終わるのか? Microsoft に問合せを上げるべきかどうか判断が出来ない。
そんな時にまずは確認したいポイントをまとめました。
前提:
SQL Database の価格レベルを変更すると、新しい価格レベルで元のデータベースのコピーが作成され、接続先がそのコピー環境に切り替えられる事があります。価格レベル変更処理の大部分が、このデータベースのコピーを作成するのにかかる時間です。価格レベル変更が早く終わるケースは、このデータコピーが行われずにリソースの割り当てが行えた場合であり、時間がかかるケースはデータコピーが行われている場合となります。
つまり、データベースサイズが大きい場合や、IO が速い Premium 以外のサービスレベルをご利用の場合は、このコピー処理に長時間かかる事があります。具体的には、250 GB のデータベースを Standard サービス レベルとの間または Standard サービス レベル内で変更する場合は、6 時間程度かかる事があります。
とは言え、あとどれくらいで処理が完了するのか目安となる時間くらいは知りたいですよね。
進捗確認方法:
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月 現在の内容となっております。