質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Oracle Database 12c

Oracle Database 12cは、RDBMS製品です。世界初の商用RDBMSであるOracle Databaseのバージョンで、2013年にリリース。クラウド対応を考慮して設計されました。主な機能には、マルチテナント対応やインメモリデータベースの実装などがあります。

Q&A

1回答

1777閲覧

Oracle 12cR2の不完全リカバリ

退会済みユーザー

退会済みユーザー

総合スコア0

Oracle Database 12c

Oracle Database 12cは、RDBMS製品です。世界初の商用RDBMSであるOracle Databaseのバージョンで、2013年にリリース。クラウド対応を考慮して設計されました。主な機能には、マルチテナント対応やインメモリデータベースの実装などがあります。

0グッド

1クリップ

投稿2021/01/27 14:20

編集2021/01/27 14:30

Oracle 12cR2をカスタムデータベース、アーカイブログモード、高速リカバリ領域なし、PDBなしでインストールし、運用しています。
8つのREDOログ・グループをそれぞれ1つずつのメンバで構成し、多重化はしてません。

不完全リカバリのテストを実施するため、カレントのREDOログ・グループを確認し、DML発行後コミット。この時点ではLGWRによりログメンバに更新履歴が書き込まれた状態。次にカレントのREDOログ・グループメンバを削除し

 shutdown immediate

 → 素直にimmediateでいくときとここでエラー出るときと何故かまばら

 startup

 → エラー発覚

ここまではよいのですが、ここからが問題のポイントで、以下手順を箇条書きします。

①SQL*Plusから入り直しマウントモードへ

 startup mount

②削除したREDOログ・グループのログ順序番号を確認

 select g.group# ,g.sequence# ,g.status ,m.member from v$log g, v$logfile m where g.group# = m.group# order by g.group#, m.member;

※削除したログ・グループのステータスはCURRENT、その他はINACTIVEとかになってます。

③REDOログの初期化

 alter database clear logfile group n;

 → 既にアーカイブ済みのログ・グループに対して初期化するというやつらしいので当然失敗

 alter database clear unarchived logfile group n

 → 「データベースを変更しました」

 alter database open;

④データ戻ってる

この仕組みがまったく理解できません。オンラインREDOログファイル、メモリ上にしか保持されていないデータ(データファイル書き込みまでいってない)を削除したのに、どこから戻ってきたんでしょうか。③のSQLは、とりあえず壊れたメンバを放置しているとDBが動かないから再作成のために初期化するみたいな認識だったのですが、何故更新が反映されてるのでしょうか。こちらが最初の質問で、2つめは上記の手順③について、

ORA-01624 ~中略~ クラッシュ・リカバリに必要です。

と出るときがありまして、こうなるともう不完全リカバリへ進むしかないのですが、何故、削除したログ・グループのステータスはいつもCURRENTなのに、③の結果が毎回変わることがあるのでしょうか。本番環境では③でオープンできるに越したことはないのですが、成功と失敗の分かれ目を把握しておきたいと思い質問させて頂きました。
また仮にOracleの内部構造的なもので、普通にはそこまで把握しきれないからどっちが来ても対応できるようにしとくということであればそれで納得します。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2021/01/27 17:25

> ORA-01624 ~中略~ クラッシュ・リカバリに必要です。 エラーコードやメッセージはパスワードやIPアドレスは別として、表示された内容をそのまま載せてください。 リカバリ絡みの質問はオラクル・サポートに確認した方が良いです。要サポート契約。 オラクル・サポートからの回答はサポートの了解を得ない限り公開することは禁止されているので、ググっても解決方法がみつかるかどうか?
guest

回答1

0

皆さま色々とアドバイスくださりありがとうございます。

ひとまず確実な失敗パターンの再現性を担保する方法として、「shutdown abort」で強制停止させると、その後のログクリアも必ず失敗。不完全リカバリするしかない流れにすることができると判明しました。

おそらく、整合性が取れないままクローズされて、インスタンスリカバリするにもオンラインREDOログファイルが欠落しているが故にそうなるのでしょう。

しかし、何故正常停止して再起動した場合には、チェックポイントが発生する前にファイルを削除しているにも関わらずどこからデータが復元されているのかという謎は謎のままですが。Goldとかの本を読んでも曖昧に逃げられてるところなので、ひとまずはどうなっても然るべき手段を選択して実行できるようになっておこうと思います。

サポートは、何故か電話かけられないんですよね〜…。そんなはずはないと思うのですが、また現場の人に聞いてみます。あくまで本番環境では完全リカバリが大前提なので、ちょっと頭の隅に置いといて頑張ります。

投稿2021/01/28 03:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問