Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Oracle Databaseのバックアップ/リカバリ
動作原理から時間短縮のテクニックまで
日本オラクル株式会社
日下部明
2019年5月29日
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、
情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。
以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するもの
ではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関
して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決
定されます。
2
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Agenda
データベースのバックアップ
Oracle Databaseのバックアップ/リストア/リカバリ
RMANでバックアップ/リカバリ時間を短縮する
1
2
3
3
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
データベースのバックアップ
4
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
毎日の運用で行われる vs 万が一の場面でしか行わない
5
Recovery
Backup
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
手段の一つ vs 目的(最重要)
6
Recovery
Backup
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 7
ファイルのコピーがあれば大丈夫と思ってはいけない
出典:UNISPHERE RESEARCH社 「Oracle Database and Data Protection Survey」
http://www.dbta.com/DBTA-Downloads/ResearchReports/Oracle-Database-and-Data-Protection-Survey-Results-4331.aspx
データベースのリストア・リカ
バリを実施したDBAのう
ち、失敗を経験した割合84%
20%
5回のリストア・リカバリで
1回以上の失敗を経験した
DBAの割合
19%
9%
11%
12%
13%
26%
26%
34%
0% 10% 20% 30% 40%
不明/未確認
インテグレートされていない…
正しいバックアップを指定できない
アプリケーションがリストアされた…
プロセスに複数の人員が関係している
ハードウェア/ソフトウェアの不具合
バックアップの破損
人的エラー
リストア・リカバリに失敗した主な理由
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
戻せないバックアップを回避するために
8
復旧方法が標準化されていること
バックアップ自体が壊れていないことをチェックすること
必要なバックアップが取られていて、管理されていること
人的エラー
ミスしにくい復旧方法であること
バックアップ破損
不適切な
バックアップ設計
復旧方法が適切に設計されていること
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 9
Oracle Databaseの場合
担当者の視点によって
「データベース・バックアップ」が異なる
インフラ担当者の視点 アプリ担当者の視点
「ボリューム」や「ファイル」
単位での複製
ユーザーデータの外部保存
• ストレージ機能を使ったボリューム・コピー
(スナップショット/スプリット・ミラーなど)
• バックアップ管理製品やOSのコマンドによる
ファイル複製
• 論理Exportを使ったユーザーデータの抽出
Oracle Database視点ではデータベースの
物理バックアップとは言わない
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 10
Oracle Databaseの場合
担当者の視点によって
「データベース・バックアップ」が異なる
インフラ担当者の視点 アプリ担当者の視点
「ボリューム」や
「ファイル」単位で
の複製
ユーザーデータ
の外部保存
データベース担当者の視点
DB構造を理解した
「データ・ブロック」
単位の複製
• ブロック破損のチェック
• ブロック単位の修復
• 障害直前の状態まで修復
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Oracle Databaseの
バックアップ/リストア/リカバリ
11
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 12
Oracle Databaseのアーキテクチャ
System
Global
Area
DBWn
SMON
PMON
LGWR
ARCn
バックグラウンド・
プロセス
共有メモリ データ・ファイル
オンラインREDOログ・ファイル
アーカイブREDOログ・ファイル
制御ファイル
パラメータ・
ファイル
データベースの状態
インスタンスのパラメータ
表や索引データの実体
更新の履歴
オンラインREDOログ
のバックアップ
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 13
Oracle Databaseのアーキテクチャ
System
Global
Area
DBWn
SMON
PMON
LGWR
ARCn
バックグラウンド・
プロセス
共有メモリ データ・ファイル
オンラインREDOログ・ファイル
アーカイブREDOログ・ファイル
制御ファイル
パラメータ・
ファイル
サイズ小
サイズ大
バックアップ対象外
多数のファイル生成
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 14
Oracle Databaseのバックアップ/リストア/リカバリの文脈
バックアップ (主に)データファイルのコピーを取得すること
リストア (主に)データファイルのバックアップから書き戻すこと
リカバリ データブロックにREDOログを適用しロールフォワード
&ロールバックすること
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 15
バックアップ/リストア/リカバリ
時間
INSERT
UPDATE
DELETE
オンラインREDOログ
(固定長、循環式)
更新の履歴はまずオンラインREDOログ
に記録される
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 16
バックアップ/リストア/リカバリ
時間
INSERT
UPDATE
DELETE
オンラインREDOログ
(固定長、循環式)アーカイブREDOログ
更新の履歴はまずオンラインREDOログ
に記録される
オンラインREDOログのコピーが
アーカイブREDOログとして残される
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 17
バックアップ/リストア/リカバリ
時間
INSERT
UPDATE
DELETE
バックアップ
(データファイルのコピー)
時刻t0
時刻t0に取得したバックアップには時刻t0まで
の変更情報しか含まれていない
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 18
バックアップ/リストア/リカバリ
時間
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
オンラインREDOログアーカイブREDOログ
バックアップ
(データファイルのコピー)
時刻t0
時刻t0に取得したバックアップには時刻t0まで
の変更情報しか含まれていない
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 19
バックアップ/リストア/リカバリ データファイル障害発生
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
オンラインREDOログアーカイブREDOログ
バックアップ
(データファイルのコピー)
時刻t0 時刻t1
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 20
バックアップ/リストア/リカバリ
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
オンラインREDOログアーカイブREDOログ
時間
バックアップ
(データファイルのコピー)
時刻t0 時刻t1
データファイル障害発生
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 21
バックアップ/リストア/リカバリ
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
オンラインREDOログアーカイブREDOログ
時間
バックアップ
(データファイルのコピー)
リストア
(データファイルの書き戻し)
時刻t0 時刻t1
データファイル障害発生
時刻t0までのデータブロックの復元
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 22
バックアップ/リストア/リカバリ
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
オンラインREDOログアーカイブREDOログ
時間
バックアップ
(データファイルのコピー)
リストア
(データファイルの書き戻し)
リカバリ
(REDOログの適用)
時刻t0 時刻t1
データファイル障害発生
時刻t0から時刻t1までの
更新差分の適用
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
バックアップ/リストア/リカバリ
• データファイルのバックアップにはバックアップを取得した時点までの情報
しか含まれていない
• データファイルのリストア(更新の起点) + REDOログ(更新の差分)でデー
タファイル障害直前の状態までリカバリできる
23
時間
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
オンラインREDOログアーカイブREDOログ
バックアップ
(データファイルのコピー)
時刻t0
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
データファイルのオンライン・バックアップ
• Oracle Databaseは更新トランザクションが実行されていてもI/Oを停止させ
ることなくバックアップ可能
• バックアップ取得中にもデータファイルが部分的に書き換えられている!
24
A1 B1 C2
A1
A2 B1 C3
A1 B1
write write
A2 B1 C3
A1 B1 C3
データファイル
(コピー元)
バックアップ
(コピー先)
時間write
未COMMITの更新も含む一貫性
のないファイルができあがる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
オンライン・バックアップからのリストア/リカバリ
• オンライン・バックアップは一貫性のないファイルができあがる
• 一貫性のないデータファイルはリストアしただけでは使用できない
• リカバリ(REDOログの適用)を行って一貫性のある状態までロールフォ
ワード&ロールバックすることが必須
– アーカイブ・ログ・モードでないとオンライン・バックアップできない
– RECOVERコマンドで自動的に一貫性のある状態までリカバリされる
25
リカバリすることを前提に静止点のないデータファイルのコピーが可能
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
オンライン・バックアップと分裂ブロック
• OracleデータブロックのサイズはOSがアトミックに処理できるI/Oサイズより
も大きい
• データブロックへのwrite I/Oとバックアップのread I/Oが衝突するとバック
アップのデータブロックが分裂することが起こり得る⇒不正なブロック
26
A2 B1 C3
A1 B1 ?
データファイル
(コピー元)
バックアップ
(コピー先)
write
read
分裂ブロック
SCN=y
SCN=x
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 27
Oracle Databaseの2種類の物理バックアップ手法
Recovery Manager(RMAN) ユーザー管理バックアップ
oracle
rman
データファイル
(コピー元)
バックアップ
(コピー先) コピー元ボリューム バックアップ・ボリューム
スナップショット
スプリット・ミラー
• Oracle付属のバックアップ・ツール
• Oracleサーバー・プロセスがデータベースのファイルに
アクセスする仕組みを使ってファイルをコピー
• Oracleインスタンス管理下で行われる操作
• RMAN以外の方法でファイルをコピーするすべての手法
• Oracleインスタンスが関知しないところでコピーが行わ
れる
• OSのファイル・コピー・コマンド
• ストレージ機能のスナップショット/スプリット・ミラー
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 28
Oracle Databaseの2種類の物理バックアップ手法
Recovery Manager(RMAN) ユーザー管理バックアップ
分裂ブロック対策 Oracleインスタンスによってデータブロッ
クに対する排他制御がかかるので
read/write I/Oが衝突しない
⇒分裂ブロックが発生しない
分裂ブロックが発生してもリカバリできる仕組み
がある
⇒ホット・バックアップ・モード
ファイル破損のチェック される されない
リストア/リカバリ操作 ある程度自動化できる 破損個所の特定からどのファイルをリストアする
かまですべて管理者の判断
最小リストア粒度 データブロック ファイル/ボリューム
バックアップ/リストア時間
の短縮
• 高速増分バックアップ
• 増分更新バックアップ
• ブロック・メディア・リカバリ
• 並列化
• マルチセクション・バックアップ
ストレージ機能(スナップショット/スプリット・ミ
ラー)との組み合わせ
第一選択肢はRMAN
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 29
分裂ブロックが発生してもリカバリできる仕組み
ユーザー管理バックアップでのホット・バックアップ・モード
時間
データブロック REDOログ
通常モード
(更新個所のみ記録)
データブロック REDOログ
ホット・バックアップ・モード
(データブロック全体を記録)
SQL> ALTER DATABASE BEGIN BACKUP;
• データファイルへの書き戻し(チェックポイント)
• データファイル・ヘッダのチェックポイントSCNの固定
• ホットバックアップ・モード開始
SQL> ALTER DATABASE END BACKUP;
• データファイル・ヘッダの通常モードへの移行
• ホットバックアップ・モード終了
ホット・バックアップ・モード
• REDOログに記録される情報が増える
• データファイルのコピー取得
ホット・バックアップ・モード中に更新されたブロック(分裂ブロック
になる可能性)は一貫性のあるイメージがREDOログに記録される
⇒分裂ブロックが発生してもリカバリ時にREDOログに記録された
一貫性のあるイメージでブロック全体を上書き
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 30
ストレージ機能(スナップショット/スプリット・ミラー)との組み合わせ
ユーザー管理バックアップ
コピー元ボリューム バックアップ・ボリューム
時間
時刻t0
ボリュームのバックアップ
時刻t1
障害発生
ボリュームのリストア
ストレージ機能(スナップショット/ス
プリット・ミラー)は「ファイル」単位で
はなく「ボリューム」のコピーを取得
する機能
「ボリューム」のバックアップを取得
した人は「ボリューム」をリストアしよ
うとする
「ボリューム」に何が含まれていた
かによってはリカバリ不能になる
t0 t0
t0 t0
t1
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
ユーザー管理バックアップ
• ユーザー管理バックアップはストレージ機能(スナップショット/スプリット・ミ
ラー)を使用する場合の手法
– 「ファイル」単位ではなく「ボリューム」のコピーを取得する機能
– ファイル単位のコピーならばRMANを使用するべき
• 「ボリューム」のコピーを取得した人は「ボリューム」をリストアしようとする
– この方法で正しくリストア/リカバリできるように設計すること自体が難しい
• 物理バックアップの第一選択肢はRMAN
31
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Recovery Manager(RMAN)
• 分裂ブロックが発生しないのでホット・バックアップ・モードは不要
• リストア/リカバリの手順がある程度固定されるので考慮点が減る
• データ・リカバリ・アドバイザでリストア/リカバリ手順を自動生成
• バックアップ/リストア時間を短縮する仕組み
32
Oracleサーバー・プロセスがデータベースのファイルにアクセスする仕組みでコピー
oracle
rman
データファイル
(コピー元)
バックアップ
(コピー先)
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 33
分裂ブロックが発生しないのでホットバックアップ・モードは不要
RMANでのオンライン・バックアップ
oracle
rman
データファイル
(コピー元)
バックアップ
(コピー先)
DBWn
RMANのOracleサーバー・プロセス
(データブロックを読む)
データベース・ライター・プロセス
(データブロックを書く)
どちらもOracleインスタンス制御下のプロセスでデータブロックに対する
アクセスは適切に排他制御されるので分裂ブロックが発生しない
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
RMANバックアップ情報のメタデータ
• RMANでどのファイルを、いつ、どこにバックアップしたのかはデータベー
スの制御ファイルに記録される
• 制御ファイルの情報はいつか上書きされるので長期の保存にはメタデー
タ格納用のカタログ・データベースを別途用意する(Optional)
34
RMAN> RESTORE DATAFILE xx;
バックアップがどこにあるかは制御ファイル
(もしくはカタログ・データベース)に記録され
ている
oracle
rman
データファイル バックアップ制御ファイル
RMANカタログ・データベース
RMAN> RECOVER DATAFILE xx;
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 35
範囲が狭いほどリストアのデータブロック移動量とリカバリのREDOログ適用量が減る
リストアの粒度
リストア対象 リストアのRMANコマンド リストアの前提
ボリューム
(ストレージ機能を使用した
ユーザー管理バックアップ)
CDB全体の場合Oracleインスタンスを
SHUTDOWN
CDB全体 RMAN> RESTORE DATABASE; OracleインスタンスをSHUTDOWNして
MOUNTで起動
Pluggable Database RMAN> RESTORE PLUGGABLE DATABASE xx; 該当PDBをMOUNT状態
表領域 RMAN> RESTORE TABLESPACE xx; 該当表領域をOFFLINE
データファイル RMAN> RESTORE DATAFILE xx; 該当表領域をOFFLINE
データブロック RMAN> RECOVER DATAFILE xx BLOCK yy; 該当データブロック以外は使用可能
リストア粒度がデータファイルの場合、
該当ファイルを含む領域はリカバリ完了
まで使用できない
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 36
リストア/リカバリ手順を自動生成
RMANデータ・リカバリ・アドバイザ
oracle
application
oracle
application
System
Global
Area
1.データファイルの破損を検出
oracle
rman
System
Global
Area
2.破損個所を把握
3.破損個所をリストア/リカバリす
るRMANスクリプトを自動生成
oracle
rman
System
Global
Area
4.RMANスクリプト実行
5.リストア/リカバリ完了
SQLでのアクセス可能
RMAN> LIST FAILURE;
RMAN> ADVISE FAILURE;
RMAN> REPAIR FAILURE;
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
RMANでバックアップ/リカバリ時間を
短縮する
37
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
RMANでバックアップ/リカバリ時間を短縮する
• 高速増分バックアップ
• 増分更新バックアップ
• ブロック・メディア・リカバリ
• 並列化
• マルチセクション・バックアップ
38
サイズの大きなデータファイルの移動時間を短縮したい
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 39
前回のバックアップ時点から更新されたデータブロックを抽出
増分バックアップ
A A A A A A
A B A B B A
データファイル
更新
A A A A A A
A B A B B A
level 0
level 1
バックアップ
時間
増分バックアップの目的:
バックアップのファイル・サイズを小さくする
最初のバックアップはすべてのデータ
ブロック
⇒level 0
前回のバックアップ時点から更新され
たデータブロックのバックアップ
⇒level 1
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 40
Block Change Trackingファイルの導入(Oracle Database 10g~)
高速増分バックアップ
A A A A A A
A B A B B A
デフォルトの増分バックアップ
更新
全データブロックにアクセスして抽出
⇒データファイルの読み込みは減らない
BCTファイルに記録されたデータブロックにアクセス
⇒データファイルの読み込みが減る
高速増分バックアップ
B B B
データファイル
バックアップ・ファイル
A A A A A A
A B A B B A
更新
B B B
BCTファイル
更新が発生したブロックを
BCTファイルに記録
データファイル
level 1バックアップ
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 41
level 0リストア ⇒ level 1リストア ⇒ リカバリ(REDOログ適用)
増分バックアップからのリストア/リカバリ
A A A A A A
A B A B B A
データファイル
A A A A A A
A B A B B A
level 0
level 1
バックアップ
時間
1.level 0バックアップのリストア
2.level 1バックアップのリストア
A B C B C C
3.リカバリ(REDOログ適用)
REDOログの適用開始は最新のlevel 1バックアップの時点から
高速増分バックアップ
• バックアップの時間とファイル・サイズが減少する
• ただしリストア量はlevel 1の分だけ増える
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 42
どこの時点からの増分か
2種類の増分バックアップ
A A A A A A
時間
A B A B B A
A B C B C C
データファイル 差分増分バックアップ
更新
更新
A A A A A A
A B A B B A
A B C B C C
累積増分バックアップ
A A A A A A
A B A B B A
A B C B C C
前回のバックアップからの増分 level 0バックアップからの増分
バックアップ
level 0
level 1
level 1
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
リストア
43
level 0リストア ⇒ すべてのlevel 1リストア
差分増分バックアップからのリストア
A A A A A A
時間
A B A B B A
A B C B C C
データファイル 差分増分バックアップ
更新
更新
A A A A A A
A B A B B A
A B C B C C
リストアしたデータファイル
A A A A A A
前回のバックアップからの増分 level 0+すべてのlevel 1
バックアップ
level 0
level 1
level 1 A B C B C C
A B A B B A
level 0
level 1
level 1
時間
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
リストア
44
level 0リストア ⇒ 最新のlevel 1リストア
累積増分バックアップからのリストア
A A A A A A
時間
A B A B B A
A B C B C C
データファイル 累積増分バックアップ
更新
更新
A A A A A A
A B A B B A
リストアしたデータファイル
A A A A A A
level 0バックアップからの増分 level 0+最新のlevel 1
バックアップ
level 0
level 1
level 1 A B C B C C
level 0
level 1A B C B C C
時間
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 45
各増分バックアップ方式のリストア/リカバリ
バックアップ方式 バックアップ リストア リカバリの起点
フル・バックアップ データファイル全体 最新のフル・バックアップ 最新のフル・バックアップ
差分増分バックアップ 前回のバックアップからの
増分
level 0 +すべてのlevel 1 最新のlevel 1
累積増分バックアップ level 0からの増分 level 0 +最新のlevel 1 最新のlevel 1
• リカバリの起点はいずれも最新のバックアップ時点から
• リストア対象のファイルが異なる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
level 0にlevel 1を適用
Confidential – Oracle Internal 46
リストア時にlevel 1を適用するのではなくあらかじめlevel 0にlevel 1を適用しておく
増分更新バックアップ
A A A A A A
時間
A B A B B A
A B C B C C
データファイル 差分増分バックアップ
更新
更新
A A A A A A
A B A B B A
A B C B C C
増分更新バックアップ
A A A A A A
前回のバックアップからの増分 level 1適用済みのlevel 0
バックアップ
level 0
level 1
level 1 A B C B C C
A B A B B A
level 0
recover
recover
時間
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
level 0にlevel 1を適用
Confidential – Oracle Internal 47
あらかじめlevel 1を適用したlevel 0をリストア
増分更新バックアップからのリストア
時間
差分増分バックアップ
A A A A A A
A B A B B A
A B C B C C
増分更新バックアップ
A A A A A A
前回のバックアップからの増分 level 1適用済みのlevel 0
A B C B C C
A B A B B A
level 0
recover
recover
時間
A B C B C Clevel 0
データファイル
level 1適用済みのlevel 0をリストア
リストアlevel 0
level 1
level 1
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 48
各増分バックアップ方式のリストア/リカバリ
バックアップ方式 バックアップ リストア リカバリの起点
フル・バックアップ データファイル全体 最新のフル・バックアップ 最新のフル・バックアップ
差分増分バックアップ 前回のバックアップからの
増分
level 0 +すべてのlevel 1 最新のlevel 1
累積増分バックアップ level 0からの増分 level 0 +最新のlevel 1 最新のlevel 1
増分更新バックアップ 差分増分 or 累積増分 level 1適用済みのlevel 0 最新のlevel 1
• リカバリの起点はいずれも最新のバックアップ時点から
• リストア対象のファイルが異なる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 49
フル/差分増分/累積増分/増分更新どれでも変わらない
バックアップからのリストア/リカバリ操作
RMAN> RESTORE DATAFILE xx;
RMAN> RECOVER DATAFILE xx;
1.level 0バックアップのリストア
2.level 1バックアップのリストア
3.リカバリ(REDOログの適用)
どのバックアップ手法であったとしてもRMANが適切なバックアップから全自動でリストアする
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 50
データファイルよりも小さな粒度でリストア/リカバリ
ブロック・メディア・リカバリ
RMAN> RECOVER DATAFILE xx BLOCK yy;
1. データブロックのリストア
2.リカバリ(REDOログの適用)
データファイル level 0バックアップ
2.リカバリ(REDOログの適用)
1. データブロックのリストア
データ・リカバリ・アドバイザはブロック・メディア・リカバリで修復できると判断するとこの方法を選択する
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 51
コピー対象のファイルが複数あると並列コピー可能
バックアップ/リストア(ファイル・コピー)の並列化
ファイル1
ファイルn
oracle
rman
oracle
ファイル1
ファイルn
コピー元 コピー先
RMAN> RESTORE DATABASE;
RMAN> BACKUP DATABASE;
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM n; 1.並列化の設定
2.バックアップ/リストアのコマンド
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 52
1つの巨大なデータファイルを分割して並列バックアップ可能
マルチセクション・バックアップ
データファイル
バックアップ
oracle
rman
oracle
oracle
RMAN> BACKUP SECTION SIZE xx DATABASE;
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM n; 1.並列化の設定
2.SECTION SIZEに分割してBACKUP
SECTION SIZE SECTION SIZE SECTION SIZE
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 53
リカバリ対象のデータファイルが複数ある場合並列にREDOログ適用可能
リカバリ(REDOログ適用)の並列化
アーカイブREDOログ
+
オンラインREDOログ
PR01
PR02
PRnn
パラレル・リカバリ・プロセス データファイル
RMAN> RECOVER DATABASE [PARALLEL n]; デフォルトはCPU数の並列度でリカバリ
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Oracle Databaseのバックアップ/リストア/リカバリ
• リカバリできることが重要、そのためのバックアップ
• RMANが第一選択肢
• 時間を短縮する仕組み
54
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 55
Oracle backup and recovery basics

Oracle backup and recovery basics

  • 1.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | Oracle Databaseのバックアップ/リカバリ 動作原理から時間短縮のテクニックまで 日本オラクル株式会社 日下部明 2019年5月29日
  • 2.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、 情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。 以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するもの ではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関 して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決 定されます。 2
  • 3.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | Agenda データベースのバックアップ Oracle Databaseのバックアップ/リストア/リカバリ RMANでバックアップ/リカバリ時間を短縮する 1 2 3 3
  • 4.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | データベースのバックアップ 4
  • 5.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 毎日の運用で行われる vs 万が一の場面でしか行わない 5 Recovery Backup
  • 6.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 手段の一つ vs 目的(最重要) 6 Recovery Backup
  • 7.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 7 ファイルのコピーがあれば大丈夫と思ってはいけない 出典:UNISPHERE RESEARCH社 「Oracle Database and Data Protection Survey」 http://www.dbta.com/DBTA-Downloads/ResearchReports/Oracle-Database-and-Data-Protection-Survey-Results-4331.aspx データベースのリストア・リカ バリを実施したDBAのう ち、失敗を経験した割合84% 20% 5回のリストア・リカバリで 1回以上の失敗を経験した DBAの割合 19% 9% 11% 12% 13% 26% 26% 34% 0% 10% 20% 30% 40% 不明/未確認 インテグレートされていない… 正しいバックアップを指定できない アプリケーションがリストアされた… プロセスに複数の人員が関係している ハードウェア/ソフトウェアの不具合 バックアップの破損 人的エラー リストア・リカバリに失敗した主な理由
  • 8.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 戻せないバックアップを回避するために 8 復旧方法が標準化されていること バックアップ自体が壊れていないことをチェックすること 必要なバックアップが取られていて、管理されていること 人的エラー ミスしにくい復旧方法であること バックアップ破損 不適切な バックアップ設計 復旧方法が適切に設計されていること
  • 9.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 9 Oracle Databaseの場合 担当者の視点によって 「データベース・バックアップ」が異なる インフラ担当者の視点 アプリ担当者の視点 「ボリューム」や「ファイル」 単位での複製 ユーザーデータの外部保存 • ストレージ機能を使ったボリューム・コピー (スナップショット/スプリット・ミラーなど) • バックアップ管理製品やOSのコマンドによる ファイル複製 • 論理Exportを使ったユーザーデータの抽出 Oracle Database視点ではデータベースの 物理バックアップとは言わない
  • 10.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 10 Oracle Databaseの場合 担当者の視点によって 「データベース・バックアップ」が異なる インフラ担当者の視点 アプリ担当者の視点 「ボリューム」や 「ファイル」単位で の複製 ユーザーデータ の外部保存 データベース担当者の視点 DB構造を理解した 「データ・ブロック」 単位の複製 • ブロック破損のチェック • ブロック単位の修復 • 障害直前の状態まで修復
  • 11.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | Oracle Databaseの バックアップ/リストア/リカバリ 11
  • 12.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 12 Oracle Databaseのアーキテクチャ System Global Area DBWn SMON PMON LGWR ARCn バックグラウンド・ プロセス 共有メモリ データ・ファイル オンラインREDOログ・ファイル アーカイブREDOログ・ファイル 制御ファイル パラメータ・ ファイル データベースの状態 インスタンスのパラメータ 表や索引データの実体 更新の履歴 オンラインREDOログ のバックアップ
  • 13.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 13 Oracle Databaseのアーキテクチャ System Global Area DBWn SMON PMON LGWR ARCn バックグラウンド・ プロセス 共有メモリ データ・ファイル オンラインREDOログ・ファイル アーカイブREDOログ・ファイル 制御ファイル パラメータ・ ファイル サイズ小 サイズ大 バックアップ対象外 多数のファイル生成
  • 14.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 14 Oracle Databaseのバックアップ/リストア/リカバリの文脈 バックアップ (主に)データファイルのコピーを取得すること リストア (主に)データファイルのバックアップから書き戻すこと リカバリ データブロックにREDOログを適用しロールフォワード &ロールバックすること
  • 15.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 15 バックアップ/リストア/リカバリ 時間 INSERT UPDATE DELETE オンラインREDOログ (固定長、循環式) 更新の履歴はまずオンラインREDOログ に記録される
  • 16.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 16 バックアップ/リストア/リカバリ 時間 INSERT UPDATE DELETE オンラインREDOログ (固定長、循環式)アーカイブREDOログ 更新の履歴はまずオンラインREDOログ に記録される オンラインREDOログのコピーが アーカイブREDOログとして残される
  • 17.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 17 バックアップ/リストア/リカバリ 時間 INSERT UPDATE DELETE バックアップ (データファイルのコピー) 時刻t0 時刻t0に取得したバックアップには時刻t0まで の変更情報しか含まれていない
  • 18.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 18 バックアップ/リストア/リカバリ 時間 INSERT UPDATE DELETE INSERT UPDATE DELETE INSERT UPDATE DELETE オンラインREDOログアーカイブREDOログ バックアップ (データファイルのコピー) 時刻t0 時刻t0に取得したバックアップには時刻t0まで の変更情報しか含まれていない
  • 19.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 19 バックアップ/リストア/リカバリ データファイル障害発生 INSERT UPDATE DELETE INSERT UPDATE DELETE INSERT UPDATE DELETE オンラインREDOログアーカイブREDOログ バックアップ (データファイルのコピー) 時刻t0 時刻t1
  • 20.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 20 バックアップ/リストア/リカバリ INSERT UPDATE DELETE INSERT UPDATE DELETE INSERT UPDATE DELETE オンラインREDOログアーカイブREDOログ 時間 バックアップ (データファイルのコピー) 時刻t0 時刻t1 データファイル障害発生
  • 21.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 21 バックアップ/リストア/リカバリ INSERT UPDATE DELETE INSERT UPDATE DELETE INSERT UPDATE DELETE オンラインREDOログアーカイブREDOログ 時間 バックアップ (データファイルのコピー) リストア (データファイルの書き戻し) 時刻t0 時刻t1 データファイル障害発生 時刻t0までのデータブロックの復元
  • 22.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 22 バックアップ/リストア/リカバリ INSERT UPDATE DELETE INSERT UPDATE DELETE INSERT UPDATE DELETE オンラインREDOログアーカイブREDOログ 時間 バックアップ (データファイルのコピー) リストア (データファイルの書き戻し) リカバリ (REDOログの適用) 時刻t0 時刻t1 データファイル障害発生 時刻t0から時刻t1までの 更新差分の適用
  • 23.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | バックアップ/リストア/リカバリ • データファイルのバックアップにはバックアップを取得した時点までの情報 しか含まれていない • データファイルのリストア(更新の起点) + REDOログ(更新の差分)でデー タファイル障害直前の状態までリカバリできる 23 時間 INSERT UPDATE DELETE INSERT UPDATE DELETE INSERT UPDATE DELETE オンラインREDOログアーカイブREDOログ バックアップ (データファイルのコピー) 時刻t0
  • 24.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | データファイルのオンライン・バックアップ • Oracle Databaseは更新トランザクションが実行されていてもI/Oを停止させ ることなくバックアップ可能 • バックアップ取得中にもデータファイルが部分的に書き換えられている! 24 A1 B1 C2 A1 A2 B1 C3 A1 B1 write write A2 B1 C3 A1 B1 C3 データファイル (コピー元) バックアップ (コピー先) 時間write 未COMMITの更新も含む一貫性 のないファイルができあがる
  • 25.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | オンライン・バックアップからのリストア/リカバリ • オンライン・バックアップは一貫性のないファイルができあがる • 一貫性のないデータファイルはリストアしただけでは使用できない • リカバリ(REDOログの適用)を行って一貫性のある状態までロールフォ ワード&ロールバックすることが必須 – アーカイブ・ログ・モードでないとオンライン・バックアップできない – RECOVERコマンドで自動的に一貫性のある状態までリカバリされる 25 リカバリすることを前提に静止点のないデータファイルのコピーが可能
  • 26.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | オンライン・バックアップと分裂ブロック • OracleデータブロックのサイズはOSがアトミックに処理できるI/Oサイズより も大きい • データブロックへのwrite I/Oとバックアップのread I/Oが衝突するとバック アップのデータブロックが分裂することが起こり得る⇒不正なブロック 26 A2 B1 C3 A1 B1 ? データファイル (コピー元) バックアップ (コピー先) write read 分裂ブロック SCN=y SCN=x
  • 27.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 27 Oracle Databaseの2種類の物理バックアップ手法 Recovery Manager(RMAN) ユーザー管理バックアップ oracle rman データファイル (コピー元) バックアップ (コピー先) コピー元ボリューム バックアップ・ボリューム スナップショット スプリット・ミラー • Oracle付属のバックアップ・ツール • Oracleサーバー・プロセスがデータベースのファイルに アクセスする仕組みを使ってファイルをコピー • Oracleインスタンス管理下で行われる操作 • RMAN以外の方法でファイルをコピーするすべての手法 • Oracleインスタンスが関知しないところでコピーが行わ れる • OSのファイル・コピー・コマンド • ストレージ機能のスナップショット/スプリット・ミラー
  • 28.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 28 Oracle Databaseの2種類の物理バックアップ手法 Recovery Manager(RMAN) ユーザー管理バックアップ 分裂ブロック対策 Oracleインスタンスによってデータブロッ クに対する排他制御がかかるので read/write I/Oが衝突しない ⇒分裂ブロックが発生しない 分裂ブロックが発生してもリカバリできる仕組み がある ⇒ホット・バックアップ・モード ファイル破損のチェック される されない リストア/リカバリ操作 ある程度自動化できる 破損個所の特定からどのファイルをリストアする かまですべて管理者の判断 最小リストア粒度 データブロック ファイル/ボリューム バックアップ/リストア時間 の短縮 • 高速増分バックアップ • 増分更新バックアップ • ブロック・メディア・リカバリ • 並列化 • マルチセクション・バックアップ ストレージ機能(スナップショット/スプリット・ミ ラー)との組み合わせ 第一選択肢はRMAN
  • 29.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 29 分裂ブロックが発生してもリカバリできる仕組み ユーザー管理バックアップでのホット・バックアップ・モード 時間 データブロック REDOログ 通常モード (更新個所のみ記録) データブロック REDOログ ホット・バックアップ・モード (データブロック全体を記録) SQL> ALTER DATABASE BEGIN BACKUP; • データファイルへの書き戻し(チェックポイント) • データファイル・ヘッダのチェックポイントSCNの固定 • ホットバックアップ・モード開始 SQL> ALTER DATABASE END BACKUP; • データファイル・ヘッダの通常モードへの移行 • ホットバックアップ・モード終了 ホット・バックアップ・モード • REDOログに記録される情報が増える • データファイルのコピー取得 ホット・バックアップ・モード中に更新されたブロック(分裂ブロック になる可能性)は一貫性のあるイメージがREDOログに記録される ⇒分裂ブロックが発生してもリカバリ時にREDOログに記録された 一貫性のあるイメージでブロック全体を上書き
  • 30.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 30 ストレージ機能(スナップショット/スプリット・ミラー)との組み合わせ ユーザー管理バックアップ コピー元ボリューム バックアップ・ボリューム 時間 時刻t0 ボリュームのバックアップ 時刻t1 障害発生 ボリュームのリストア ストレージ機能(スナップショット/ス プリット・ミラー)は「ファイル」単位で はなく「ボリューム」のコピーを取得 する機能 「ボリューム」のバックアップを取得 した人は「ボリューム」をリストアしよ うとする 「ボリューム」に何が含まれていた かによってはリカバリ不能になる t0 t0 t0 t0 t1
  • 31.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | ユーザー管理バックアップ • ユーザー管理バックアップはストレージ機能(スナップショット/スプリット・ミ ラー)を使用する場合の手法 – 「ファイル」単位ではなく「ボリューム」のコピーを取得する機能 – ファイル単位のコピーならばRMANを使用するべき • 「ボリューム」のコピーを取得した人は「ボリューム」をリストアしようとする – この方法で正しくリストア/リカバリできるように設計すること自体が難しい • 物理バックアップの第一選択肢はRMAN 31
  • 32.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | Recovery Manager(RMAN) • 分裂ブロックが発生しないのでホット・バックアップ・モードは不要 • リストア/リカバリの手順がある程度固定されるので考慮点が減る • データ・リカバリ・アドバイザでリストア/リカバリ手順を自動生成 • バックアップ/リストア時間を短縮する仕組み 32 Oracleサーバー・プロセスがデータベースのファイルにアクセスする仕組みでコピー oracle rman データファイル (コピー元) バックアップ (コピー先)
  • 33.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 33 分裂ブロックが発生しないのでホットバックアップ・モードは不要 RMANでのオンライン・バックアップ oracle rman データファイル (コピー元) バックアップ (コピー先) DBWn RMANのOracleサーバー・プロセス (データブロックを読む) データベース・ライター・プロセス (データブロックを書く) どちらもOracleインスタンス制御下のプロセスでデータブロックに対する アクセスは適切に排他制御されるので分裂ブロックが発生しない
  • 34.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | RMANバックアップ情報のメタデータ • RMANでどのファイルを、いつ、どこにバックアップしたのかはデータベー スの制御ファイルに記録される • 制御ファイルの情報はいつか上書きされるので長期の保存にはメタデー タ格納用のカタログ・データベースを別途用意する(Optional) 34 RMAN> RESTORE DATAFILE xx; バックアップがどこにあるかは制御ファイル (もしくはカタログ・データベース)に記録され ている oracle rman データファイル バックアップ制御ファイル RMANカタログ・データベース RMAN> RECOVER DATAFILE xx;
  • 35.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 35 範囲が狭いほどリストアのデータブロック移動量とリカバリのREDOログ適用量が減る リストアの粒度 リストア対象 リストアのRMANコマンド リストアの前提 ボリューム (ストレージ機能を使用した ユーザー管理バックアップ) CDB全体の場合Oracleインスタンスを SHUTDOWN CDB全体 RMAN> RESTORE DATABASE; OracleインスタンスをSHUTDOWNして MOUNTで起動 Pluggable Database RMAN> RESTORE PLUGGABLE DATABASE xx; 該当PDBをMOUNT状態 表領域 RMAN> RESTORE TABLESPACE xx; 該当表領域をOFFLINE データファイル RMAN> RESTORE DATAFILE xx; 該当表領域をOFFLINE データブロック RMAN> RECOVER DATAFILE xx BLOCK yy; 該当データブロック以外は使用可能 リストア粒度がデータファイルの場合、 該当ファイルを含む領域はリカバリ完了 まで使用できない
  • 36.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 36 リストア/リカバリ手順を自動生成 RMANデータ・リカバリ・アドバイザ oracle application oracle application System Global Area 1.データファイルの破損を検出 oracle rman System Global Area 2.破損個所を把握 3.破損個所をリストア/リカバリす るRMANスクリプトを自動生成 oracle rman System Global Area 4.RMANスクリプト実行 5.リストア/リカバリ完了 SQLでのアクセス可能 RMAN> LIST FAILURE; RMAN> ADVISE FAILURE; RMAN> REPAIR FAILURE;
  • 37.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | RMANでバックアップ/リカバリ時間を 短縮する 37
  • 38.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | RMANでバックアップ/リカバリ時間を短縮する • 高速増分バックアップ • 増分更新バックアップ • ブロック・メディア・リカバリ • 並列化 • マルチセクション・バックアップ 38 サイズの大きなデータファイルの移動時間を短縮したい
  • 39.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 39 前回のバックアップ時点から更新されたデータブロックを抽出 増分バックアップ A A A A A A A B A B B A データファイル 更新 A A A A A A A B A B B A level 0 level 1 バックアップ 時間 増分バックアップの目的: バックアップのファイル・サイズを小さくする 最初のバックアップはすべてのデータ ブロック ⇒level 0 前回のバックアップ時点から更新され たデータブロックのバックアップ ⇒level 1
  • 40.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 40 Block Change Trackingファイルの導入(Oracle Database 10g~) 高速増分バックアップ A A A A A A A B A B B A デフォルトの増分バックアップ 更新 全データブロックにアクセスして抽出 ⇒データファイルの読み込みは減らない BCTファイルに記録されたデータブロックにアクセス ⇒データファイルの読み込みが減る 高速増分バックアップ B B B データファイル バックアップ・ファイル A A A A A A A B A B B A 更新 B B B BCTファイル 更新が発生したブロックを BCTファイルに記録 データファイル level 1バックアップ
  • 41.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 41 level 0リストア ⇒ level 1リストア ⇒ リカバリ(REDOログ適用) 増分バックアップからのリストア/リカバリ A A A A A A A B A B B A データファイル A A A A A A A B A B B A level 0 level 1 バックアップ 時間 1.level 0バックアップのリストア 2.level 1バックアップのリストア A B C B C C 3.リカバリ(REDOログ適用) REDOログの適用開始は最新のlevel 1バックアップの時点から 高速増分バックアップ • バックアップの時間とファイル・サイズが減少する • ただしリストア量はlevel 1の分だけ増える
  • 42.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 42 どこの時点からの増分か 2種類の増分バックアップ A A A A A A 時間 A B A B B A A B C B C C データファイル 差分増分バックアップ 更新 更新 A A A A A A A B A B B A A B C B C C 累積増分バックアップ A A A A A A A B A B B A A B C B C C 前回のバックアップからの増分 level 0バックアップからの増分 バックアップ level 0 level 1 level 1
  • 43.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | リストア 43 level 0リストア ⇒ すべてのlevel 1リストア 差分増分バックアップからのリストア A A A A A A 時間 A B A B B A A B C B C C データファイル 差分増分バックアップ 更新 更新 A A A A A A A B A B B A A B C B C C リストアしたデータファイル A A A A A A 前回のバックアップからの増分 level 0+すべてのlevel 1 バックアップ level 0 level 1 level 1 A B C B C C A B A B B A level 0 level 1 level 1 時間
  • 44.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | リストア 44 level 0リストア ⇒ 最新のlevel 1リストア 累積増分バックアップからのリストア A A A A A A 時間 A B A B B A A B C B C C データファイル 累積増分バックアップ 更新 更新 A A A A A A A B A B B A リストアしたデータファイル A A A A A A level 0バックアップからの増分 level 0+最新のlevel 1 バックアップ level 0 level 1 level 1 A B C B C C level 0 level 1A B C B C C 時間
  • 45.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 45 各増分バックアップ方式のリストア/リカバリ バックアップ方式 バックアップ リストア リカバリの起点 フル・バックアップ データファイル全体 最新のフル・バックアップ 最新のフル・バックアップ 差分増分バックアップ 前回のバックアップからの 増分 level 0 +すべてのlevel 1 最新のlevel 1 累積増分バックアップ level 0からの増分 level 0 +最新のlevel 1 最新のlevel 1 • リカバリの起点はいずれも最新のバックアップ時点から • リストア対象のファイルが異なる
  • 46.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | level 0にlevel 1を適用 Confidential – Oracle Internal 46 リストア時にlevel 1を適用するのではなくあらかじめlevel 0にlevel 1を適用しておく 増分更新バックアップ A A A A A A 時間 A B A B B A A B C B C C データファイル 差分増分バックアップ 更新 更新 A A A A A A A B A B B A A B C B C C 増分更新バックアップ A A A A A A 前回のバックアップからの増分 level 1適用済みのlevel 0 バックアップ level 0 level 1 level 1 A B C B C C A B A B B A level 0 recover recover 時間
  • 47.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | level 0にlevel 1を適用 Confidential – Oracle Internal 47 あらかじめlevel 1を適用したlevel 0をリストア 増分更新バックアップからのリストア 時間 差分増分バックアップ A A A A A A A B A B B A A B C B C C 増分更新バックアップ A A A A A A 前回のバックアップからの増分 level 1適用済みのlevel 0 A B C B C C A B A B B A level 0 recover recover 時間 A B C B C Clevel 0 データファイル level 1適用済みのlevel 0をリストア リストアlevel 0 level 1 level 1
  • 48.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 48 各増分バックアップ方式のリストア/リカバリ バックアップ方式 バックアップ リストア リカバリの起点 フル・バックアップ データファイル全体 最新のフル・バックアップ 最新のフル・バックアップ 差分増分バックアップ 前回のバックアップからの 増分 level 0 +すべてのlevel 1 最新のlevel 1 累積増分バックアップ level 0からの増分 level 0 +最新のlevel 1 最新のlevel 1 増分更新バックアップ 差分増分 or 累積増分 level 1適用済みのlevel 0 最新のlevel 1 • リカバリの起点はいずれも最新のバックアップ時点から • リストア対象のファイルが異なる
  • 49.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 49 フル/差分増分/累積増分/増分更新どれでも変わらない バックアップからのリストア/リカバリ操作 RMAN> RESTORE DATAFILE xx; RMAN> RECOVER DATAFILE xx; 1.level 0バックアップのリストア 2.level 1バックアップのリストア 3.リカバリ(REDOログの適用) どのバックアップ手法であったとしてもRMANが適切なバックアップから全自動でリストアする
  • 50.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 50 データファイルよりも小さな粒度でリストア/リカバリ ブロック・メディア・リカバリ RMAN> RECOVER DATAFILE xx BLOCK yy; 1. データブロックのリストア 2.リカバリ(REDOログの適用) データファイル level 0バックアップ 2.リカバリ(REDOログの適用) 1. データブロックのリストア データ・リカバリ・アドバイザはブロック・メディア・リカバリで修復できると判断するとこの方法を選択する
  • 51.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 51 コピー対象のファイルが複数あると並列コピー可能 バックアップ/リストア(ファイル・コピー)の並列化 ファイル1 ファイルn oracle rman oracle ファイル1 ファイルn コピー元 コピー先 RMAN> RESTORE DATABASE; RMAN> BACKUP DATABASE; RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM n; 1.並列化の設定 2.バックアップ/リストアのコマンド
  • 52.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 52 1つの巨大なデータファイルを分割して並列バックアップ可能 マルチセクション・バックアップ データファイル バックアップ oracle rman oracle oracle RMAN> BACKUP SECTION SIZE xx DATABASE; RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM n; 1.並列化の設定 2.SECTION SIZEに分割してBACKUP SECTION SIZE SECTION SIZE SECTION SIZE
  • 53.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 53 リカバリ対象のデータファイルが複数ある場合並列にREDOログ適用可能 リカバリ(REDOログ適用)の並列化 アーカイブREDOログ + オンラインREDOログ PR01 PR02 PRnn パラレル・リカバリ・プロセス データファイル RMAN> RECOVER DATABASE [PARALLEL n]; デフォルトはCPU数の並列度でリカバリ
  • 54.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | Oracle Databaseのバックアップ/リストア/リカバリ • リカバリできることが重要、そのためのバックアップ • RMANが第一選択肢 • 時間を短縮する仕組み 54
  • 55.
    Copyright © 2019,Oracle and/or its affiliates. All rights reserved. | 55

Editor's Notes

  • #3 2
  • #53 マルチセクション・バックアップはOracle Database 11g Release 1で実装。ただしフル・バックアップのみ。バックアップ・セットのみ。 12c Release 1でできるようになったこと: マルチセクション・バックアップ + 増分バックアップ(高速増分バックアップ) マルチセクション・バックアップ + イメージ・コピー(増分更新バックアップのlevel 0に必要)