はじめに
以前、DBCSの自動バックアップについて色々調べてみたが、その中で自動バックアップの保持期間を既存設定よりも短くする変更を実行すると、保持期間外に存在する既存のバックアップはシステムによって削除されてしまうことを知ったので実際に試してみた。
通常運用において、頻繁にバックアップの保持期間を変更することはないかと思うが、オブジェクトストレージの課金を減らしたいといった時に即時反映されるのか気になったというのが試してみた背景です。
前提
・既にDBCSを構築済みかつ、自動バックアップを設定済みであること。
実際に保持期間を短くした場合の挙動を確認
保持期間の設定変更
現在の設定が"バックアップ保持期間"が30日で29日分のバックアップデータがあることを確認。
(あと1日待てばよかったですね...)
画面の"自動バックアップの構成"をクリックし、現在の設定を確認。
"バックアップ保持期間"を30 days → 15 daysに変更した状態で"変更保存"をクリック。
警告なしで以下の画面に遷移。
DBアイコンが"更新中"となり、(自動バックアップの保持期間を短くするための)作業リクエストが作成/実行。
数分で変更処理は完了したが、自動バックアップの数は29のまま変化なし。
反映が遅れているだけなのか何度か更新したが変化なし。
バックアップの削除確認
その後数日放置していたのだが、コンソールを確認すると24日分保持しているという状況になっていた。
バックアップ明細を確認すると2021/12/16~2021/12/25までのバックアップデータは消えていることが確認できた。
↳バックアップデータ:2021/12/26~2022/1/10 + 2021/12/8~2021/12/15を確保
翌日確認すると23日分保持している状況を確認できた。
↳バックアップデータ:2021/12/27~2022/1/11 + 2021/12/8~2021/12/14を確保
※昨日確認できた2021/12/15データが削除されているため、バックアップ総数が25→24となっている
さらに翌日確認すると22日分保持している状況を確認できた。
↳バックアップデータ:2021/12/28~2022/1/12 + 2021/12/8~2021/12/13を確保
※昨日確認できた2021/12/14データが削除されているため、バックアップ総数が24→23となっている
バックアップデータの削除の流れ
実際に試してみて理解したが即時削除されるわけではなく、1日ずつ遡って削除されていく形となっていた。
・1/5時点で29日分のデータを保持していたが、バックアップの保持期間を30days→15daysに変更を実施(保持データ数:29)
・翌日、1/6分のバックアップを実行すると同時に20日,21日分のデータを削除(保持データ数:28)
・翌々日、1/7分のバックアップを実行すると同時に19日,22分のデータを削除(保持データ数:27)
:
・1/18のバックアップにて最も古かった12/8のデータを削除(保持データ数:16)
・以後、通常のサイクル
バックアップ保持期間を短くした場合のデータ保持のイメージ
・1/5に保持期間を"30days → 15days"変更したイメージ
・1/6から古いデータが日々削除されていきます
※カッコ内の数字はバックアップデータ保持数
最後に
自動バックアップの保持期間を短くする変更を実施した場合、警告なしで更新が実行される。
ただし、即座に古いバックアップデータが全て一括で削除されるわけではなく、毎日1世代ずつ削除が実行される。
おそらくではあるが、誤って保持期間を短くするオペレーションを実行してもすぐに元の保持期間に変更すればバックアップデータは削除されない。
課金を減らすために自動バックアップの保持期間を変更してもすぐに削除される訳ではないので注意が必要。
もしかしたらSRを起票することでOracle側で即時削除対応が可能なのかもしれないが、そこまでは試していないので悪しからず...