Oracle Cloud Infrastructureの自動バックアップを理解する

# はじめに
本記事の目的は、OCIで提供されるDatabaseの自動バックアップについて概要を理解してもらうことです。OCIを触ったことがない人にも理解してもらえるように書いています。

# 自動バックアップの概要
自動バックアップとはその名の通り、OCIで提供されるDatabaseのバックアップを自動で行うサービスです。
OCIでPaaSとして提供しているBaseDB(ベーシックなOracle Database)とExaDB(ExadataというOracle Database専用のマシンで稼働するOracle Database)で自動バックアップの設定を行うことができます。具体的には日次で行われるバックアップの時間指定やバックアップの保持期間、バックアップの取得先などです。
この自動バックアップはOCIのコンソール画面から[自動バックアップの構成]をクリックすることで簡単に設定できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/47c38f2c-b041-3c84-2e60-bea8dddb1e01.png)
またリストアについてもタイムスタンプを指定して簡単に実施できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/cdb4c033-e1c6-2f82-d1fc-24c8bac9d639.png)


# バックアップ取得先
自動バックアップの取得先は要件に合わせて以下の3種類から選ぶ必要があります。
Object Storage
Oracle Database Autonomous Recovery Service (RCV)
Oracle Database Zero Data Loss Autonomous Recovery Service (ZRCV)
名前が長くてややこしいですが、それそれどんなものか簡単に説明します。
### Object Storage
一般的なバックアップ用のストレージです。AWSでいうところのS3です。
### Oracle Database Autonomous Recovery Service (RCV)
長いのでRCVと呼ばれます。サイバー攻撃対策がされており、データ損失リスクを低減する工夫も施されています。Object Storageよりも優れたサービスです。
### Oracle Database Zero Data Loss Autonomous Recovery Service (ZRCV)
長いのでZRCVと呼ばれます。サイバー攻撃対策はもちろん、データ損失のリスクが限りなく0に近くなっています。RCVよりも優れたサービスです。

# バックアップ方式
Object Storage, RCV, ZRCVでそれぞれバックアップ方式が異なるので簡単に紹介します。
### Object Storageを取得先に設定した場合
指定した曜日の指定した時間に1週間ごとにフルバックアップを取得し、指定した時間に日次バックアップを取得します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/6be8e750-d2b9-9ca8-b905-752559e6edcd.png)
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage?slide=10

データブロックとは別に、アーカイブREDOログをBaseDBは1時間ごと、ExaDBは30分ごとにバックアップを取得します。バックアップの際は圧縮されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/b98cda20-7b80-fba8-6dcc-a25e8a4f8369.png)
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage?slide=15

### RCVを取得先に設定した場合
初回にフルバックアップを取得した後は日次で指定した時間に増分バックアップを取得します。
データブロックのバックアップはRCV, ZRCVどちらも同様の仕様です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/0907a867-099e-b215-a815-0fd931d623bd.png)
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage?slide=11

アーカイブREDOログはObject Storageのときと同様にBaseDBは1時間ごと、ExaDBは30分ごとにバックアップを取得します。ただし、圧縮無しでバックアップを取得するのでリカバリ時間が短縮されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/6d029c67-9529-59f0-7767-d1efd7058dcb.png)
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage?slide=17

### ZRCVを取得先に設定した場合
初回にフルバックアップを取得した後は日次で指定した時間に増分バックアップを取得します。
データブロックのバックアップはRCV, ZRCVどちらも同様の仕様です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/0907a867-099e-b215-a815-0fd931d623bd.png)
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage?slide=11

REDOログに関しては、Object Storage, RCVとは異なり、リアルタイムでオンラインREDOログのバックアップを取得します。
このためデータ損失を限りなく0にすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/f2329b58-3696-5072-66d4-f14e1ec67c7d.png)
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage?slide=16

# リカバリ目標地点
リカバリ目標はObject Storage, RCV, ZRCVでそれぞれ異なるのでDatabaseのストレージに障害が発生した場合を例に簡単に紹介します。
Object Storage, RCVをバックアップの取得先に設定している場合、バックアップを取得したアーカイブREDOログの地点までリカバリできます。
なお、自動バックアップではBaseDBの場合は1時間ごとExaDBの場合は30分ごとにアーカイブREDOログのバックアップを取得しています。
ZRCVをバックアップの取得先に設定している場合、オンラインREDOログのバックアップをリアルタイムで取得しているため、障害発生直前までリカバリできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3766517/53f2e8f9-a5af-9e39-d04c-afd12e29d26d.png)
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage?slide=23

# まとめ
OCIで提供されるDatabaseの自動バックアップについて紹介しました。バックアップ方式の違いやリカバリ目標地点の違いについてご理解いただけたかと思います。自動バックアップを利用することでデータ損失リスクの低減だけでなく、日々の運用負荷が軽減すると考えております。


## 参考
https://speakerdeck.com/oracle4engineer/rcvzrcv-objectstorage