4
1

More than 3 years have passed since last update.

OCIのDBCSの自動バックアップからリストアしてみた

Last updated at Posted at 2020-10-27

1.こんな方に向けてこの記事を作成しました

Oracle Cloud Infrastructure(OCI)を初めて学ぶ方・Database Cloud Service(DBCS)の基本的機能を一通り触りたい方

2.この記事を読むと...

DBCSのバックアップからのリストアをマスターできる!
最近アップデートされ導入されたREDOログの自動バックアップも理解できる

3.自動バックアップDBのリストア

OCIのDBCSから自動バックアップした記事で設定した自動バックアップから、データベースのリストアをしてみましょう。
ここからはコードのコピペで進めることができます!一緒にやっていきましょう。

<だいたいの流れ 概要>
・OCIのDBに表を作成する
・OCIのDBに作成した表に行をインサートする
・設定済みの自動バックアップが動く
・OCIのDBの表にインサートした行のデータをアップデートする
・自動バックアップからリストアする
・アップデート前のデータに戻っているのを確認する

①ターミナルからOCIのDBにssh接続

Windowsでコマンドプロンプトを開きましょう。
Macではターミナルを開いてください。
restore 20.png

ssh -i <秘密鍵のPath> opc@nodeのパブリックアドレス

restore 24.png

②Oracleユーザになり、sql plusを起動  / as sysdba

OracleのDBをいじるときは、Oracleユーザに変更しておきましょう。

OCIでは、データベースに予めインストールされているユーザがいくつかあります。
アクセス用にopcユーザ、オラクルデータベース用のoracleユーザ、そして、ルート権限を持つrootユーザです。

下記のコードでoracleユーザに変身しましょう。

sudo su - oracle

restore 25.png
表作成・操作を行うために、Sqlplusを起動します。

sqlplus / as sysdba

restore 26.png
SQL> これでsqlplusに接続が完了しました;
SQL> これから表操作を行っていきましょう;

③Employees表を作成する

Employees表という名前の従業員情報を管理する表を作成します。
今回はシンプルに、first_name(名)とlast_name(姓)という列を持たせます。

CREATE TABLE Employees (first_name varchar(100), last_name varchar(100));

restore 27.png
Table Created.という文字からEmployees表が作成されたことを確認します。

④作成したEmployees表に従業員をINSERT

それでは、従業員を登録していきましょう。
サッカー選手のリオネル・メッシをINSERTしていきます。

INSERT into Employees (first_name, last_name) VALUES ('Lionel','Messi');

restore 28.png
1 row created.からリオネル・メッシが表にINSERTされたことを確認できます。

更にSelect文で、リオネル・メッシを確認してみましょう。
正しくINSERTされたことを確認できたら、commitすることも忘れないように。

select * from Employees;
commit;

restore 32.png

⑤自動バックアップ

Employees表を作成し、その表にLionel Messiという従業員をINSERTしました。それらの変更が前記事で設定した自動バックアップが実行されるのを待ちましょう。

1日のんびり待っても良いですし、自動バックアップ時間を指定して実行させるのも自由です。

各々の方法で自動バックアップが取られたなというタイミングで、OCIから自動バックアップ履歴を確認しましょう。

DBシステムから選択できるDB名をクリックしましょう。(今回の例ではDBTEST)

restore 30.png
restore 40.png

⑥自動バックアップ後、Lionel Messiを再度確認

select * from Employees;

restore 29.png

自動バックアップ後もLionel Messiを確認できますね。自動バックアップには、Lionel Messiが入っているはずです。

次に、Lionel Messiを別人に変えてみましょう。

⑦Lionel MessiをCristiano Ronaldoに

UPDATE Employees SET first_name = 'Cristiano', last_name = 'Ronaldo';

Cristiano Ronaldoに変えた後、ちゃんと別人になったかSelect文で確認しましょう

Select * from Employees;
Commit;

restore 33.png

ちゃんと別人に変えることができました。

⑨自動バックアップでLionel Messiを取り戻す

DBシステムから選択できるDB(例ではDBTEST)をクリックし、アクションボタンからリストアをクリック
restore 34.png

今回は指定した時間に戻りたいので、タイムスタンプリストアしましょう。
restore 41.png

DBTESTのアイコンがオレンジ色に変わり、ステータスも「更新中」状態であることが確認できます。
この状態で少し待ってみましょう。
restore 37.png
DBTESTのアイコンが緑色になり、ステータスも使用可能となりました!
restore 38.png

理論上、自動バックアップからLionel Messiが戻ってきているはずです。

Sqlplusより、確認しましょう。
 

⑩自動バックアップが正常実行されたことを確認

下記のSQL文でLionel Messiが戻ってきていることを確認します。

select * from Employees;

restore 39.png

Cristiano Ronaldoに変更しましたが、自動バックアップによりLionel Messiが戻ってきたのを確認できました。

これで、自動バックアップからリストアすることができましたね。

記事をご覧頂きありがとうございました。
今回は番外編も用意しておりますので、興味がある方は是非チェックしてみてください!

番外編 REDOログバックアップについて

最近OCIでは、REDOログの自動バックアップも始まっていたのをご存知でしたか?
1時間に1回自動でREDOログが取られます。

せっかくなので手を動かしながら、見ていきましょう。
少し複雑なので時間帯と一緒に記載しています。

・11:00頃 Oracleユーザになり、sqlplusを起動

下記のコードでoracleユーザに変身しましょう。

sudo su - oracle

restore 25.png
表作成・操作を行うために、sqlplusを起動します。

sqlplus / as sysdba

restore 26.png

Select * from Employees; 

restore 42 (2).png
・13:00~15:00 自動バックップ

この時点で毎日1回行われる自動バックアップが行われました。
自動バックアップの中身は、Lionel Messiが入っています。

・15:30 update文でLionel MessiをCristiano Ronaldに

UPDATE Employees SET first_name = 'Cristiano', last_name = 'Ronaldo';
commit;

restore 43.png

上記で確認できる通り、Cristiano Ronaldに変わりました。

・16:00 REDOログバックアップ

1時間に一回、REDOログのバックアップを取っています。
最新の自動バックアップには、Lionel Messi
16:00に取られたREDOログには、Cristiano Ronaldに変えたupdate文が入っています。

この状態で、リストアボタンから「最新にリストア」したらデータはどちらになるのでしょうか?
REDOの効果を実感するためにも、リストアは17:00に行いましょう(翌日の自動バックアップの時間までは大丈夫ですが)

・17:00 最新の状態にリストア

リストアボタンから、最新にリストアを選んでみましょう。

・Select文で確認

Select * from Employees; 

.......。

..............!?

restore 44.png

答えは、Cristiano Ronaldoでした。

つまり、「最新にリストア」では最新の自動バックアップ+最新のREDOログからリストアされるということが分かりました。

以上で、番外編は終わりです。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1