コーソル DatabaseエンジニアのBlog へようこそ

コーソル DatabaseエンジニアのBlogでは、 コーソル所属のDatabaseエンジニアである 渡部と守田がOracle Databaseを中心としたDatabaseに関わる技術情報を発信しています。

コーソルでは、Oracle Databaseをはじめとするデータベース全般に関わるサービス(コンサルティング、設計、構築など)、オラクル製品のプロダクトサポートサービスを提供しています。 また、不定期で無償の技術セミナーを開催しています。


コーソルでは、Oracle Databaseスペシャリストになりたいエンジニア、 Oracle Database技術を活かして働きたいエンジニアを絶賛募集中です。

hiring.png

コーソルについて知るためには・・・

エンジニアのスキル向上を支援する各種施策については・・・

コーソルのエンジニアの多くが従事する、「Oracle Database サポートエンジニアの仕事」の利点について知るためには・・・。

コーソルで働くことに興味を持たれた方は・・・

2019年12月28日

JPOUG Advent Calendar 2019 無事完走!

渡部です。みなさま仕事は無事納められましたでしょうか? :-)

さて、このブログで執筆者を募集していたJPOUG Advent Calendar 2019ですが、 ご協力いただけた方々のおかげで無事完走しました! めでたい!

みなさま、良いお年をお迎えくださいませー :-)

jpoug_ac2019.png

2019年12月17日

Oracle Cloud認定資格の有効期間が18ヶ月に!

渡部です。今日 OCIJP #4 大忘年会でHさんに教えて頂いたのですが、 Oracle Cloud認定資格に18ヶ月の有効期間が設定されたそうです。

https://education.oracle.com/certification-program-guidelines#2_8 より

オラクル Cloud 認定資格

オラクル Cloud 認定資格については、Recertification(再認定)ポリシーの導入に伴い、お客様が資格を取得された日から 18ヶ月が経過すると認定資格の有効期間が終了し、CertViewでの当該資格のステータスが「失効(Inactive)」となります。
(略)
最新バージョンの試験に合格し、最新資格への更新手続きが完了すれば、資格保有者が最新の技術を習得していることが証明され、オラクル Cloud 認定技術者として最新の資格の各種サービスをご利用いただけます。オラクル Cloud 認定資格には、Oracle Certified Associate、Specialist、および Professional があります。主要な製品およびサービスのリリースに伴い、オラクル Cloud 認定資格は継続的に更新されており、新しいタイトルで毎年再リリースされます。

注意:
(1) 2019年9月13日以降にリリースされた2019年度版の認定試験に合格して取得したオラクル Cloud 認定資格については、お客様が資格を取得された日から 18ヶ月間、有効です。

(2) 2019年9月12日以前にリリースされた2019年度版の認定試験に合格して取得したオラクル Cloud 認定資格については、2021年3月12日まで有効です。

(3) 2018 年度版以前の認定試験に合格して取得したオラクル Cloud 認定資格については、2020年6月1日まで有効です。

Oracle Cloudのスピーディな機能拡張に対応した措置と思いますが、1年半に1回試験を受けるとなるとなかなか大変・・・ 頑張りましょう :-)

2019年12月15日

2018-2019 Oracle ACE Award Recipientsに選ばれていました

渡部です。2018-2019 Oracle ACE Award Recipientsに選ばれていました!(イマイチ詳細不明なのですが)

award2018-2019_01.png award2018-2019_02.png award2018-2019_03.png

Oracle ACEは活動がINACTIVEになると、"alumni(卒業)"扱いになってしまいます。

日本のOracle Database分野のOracle ACE 4名は全員2018-2019 Oracle ACE Award Recipientsに選ばれて いたので、すくなくとも"alumni(卒業)"扱いにはなっていないということが言えそうで、 まずは良かった良かった!

RMANへの愛を語る2 - リストアしない超高速リストア

渡部です。一部界隈で私のRMANへの愛が話題になっていた(気のせい?)ようなので、第2弾をお送りしたいと思います ;-P

jpoug_ac2019_rman2_000.png

超大規模データベースとRTO

最近はデータベースに保管されるデータの量が飛躍的に増加しているため、 データベースのサイズが非常に大きくなっています。

データベースのサイズが大きくなって困ることはいろいろあるのですが、 意外と見逃しがちなのは、データベースの障害発生時の復旧作業に非常に長い時間を要することです。 言い換えると、RTO(目標復旧時間 / Recovery Time Objective)を満たすことが難しくなってきているということです。

障害発生時のデータベース復旧は、バックアップを戻すリストアと、直前の更新分を反映するリカバリの2つの処理から構成されます。データベースのサイズが主に影響するのはリストアです。

すなわち、大きなサイズのデータベースの復旧時間を短くして、RTOを満たせるようにするには、リストアに要する時間を短縮することが鍵になります。

リストアしない超高速リストアとは?

というわけで、早速、記事タイトルにもある、時間を要するリストア処理をしない超高速リストアについて御紹介したいと思います。 鍵はSWITCHコマンドによるイメージコピーバックアップへの切り替えです。

jpoug_ac2019_rman2_001.png

通常のリストアでは、バックアップファイルを元の場所にコピーすることで、正常なデータファイルを復元します。 当然ながら、データファイルのサイズが大きければコピーには時間がかかります。

SWITCHコマンドによるリストアでは、データファイルのパスをイメージコピー形式のバックアップファイルに切り替え、バックアップファイルをコピーせず、そのままデータベースに使います。 コピー処理を行わないため、SWITCHコマンドの実行、すなわちSWITCHコマンドによるリストアは瞬時に完了します。

SWITCHコマンドによるリストアの前提条件

仕組みから明らかですが、SWITCHコマンドによるリストアを行うためには、いくつか満たしておくべき前提条件があります。

  • バックアップファイルを配置したストレージには十分性能が良いものを使用する
    バックアップファイルをそのまま使ってデータベースを運用する形になるため、バックアップファイルを配置したストレージが遅いと、復旧後のデータベースは十分な性能を得られません。
  • バックアップをイメージコピー形式で取得しておく
    バックアップファイルをそのままデータベースに使用する関係上、元のデータファイルと同じ形式である、イメージコピー形式でバックアップを取得する必要があります。
  • イメージコピー形式のバックアップはできるだけ直近のものが望ましい
    SWITCHコマンドを使わない復旧一般に言えることですが、バックアップが古いと、リカバリに時間を要することになります。

これらの前提条件のうち、データベースのサイズが大きい場合、2番目および3番目の条件を満たすのは大変です。 イメージコピー形式でのバックアップをとるということは、データベース全体についての完全に同一なバックアップを取得するということだからです。サイズが大きいデータベースについて、なにも考えずに イメージコピー形式でバックアップを取得すると、バックアップ時間が長時間化します。

復旧時間の短縮のためとはいえ、これを実現するためにバックアップ時間が長時間化するのは、なんだか本末転倒のような気がしないでもありません。そこで活用できるのが、増分更新バックアップです。

増分更新バックアップとOracle推奨バックアップ計画

増分更新バックアップについては、

で説明していますが、あらためてもう少し詳しく説明しておきましょう。

増分更新バックアップは、増分バックアップの利点を享受しつつ、復旧に要する時間を短縮できるすぐれた方法です。

増分バックアップは、バックアップ保存に必要なディスク領域を削減できます。さらにブロックトラッキングを有効にすると、バックアップ取得時間も短縮できます。

増分バックアップはバックアップ保存に必要なディスク領域を削減できる優れた機能ですが、復旧作業において、増分を適用する処理が必要なため、適用すべき増分が多いと復旧時間が長くなる問題があります。増分更新バックアップを用いると、この問題を解決できます。

増分更新バックアップは、全体バックアップ(レベル0の増分バックアップ)に対して増分バックアップ(レベル1の差分増分または累積増分バックアップ)をあらかじめ適用しておくことで、更新されたイメージコピー形式の全体バックアップを作成しておく方法です。障害発生時の復旧作業において、増分を適用する必要がないため、復旧に要する時間を短縮できます。この方法をオラクルは推奨バックアップ計画と呼んでいます。

jpoug_ac2019_rman_006.png

なお、増分更新バックアップはRECOVERコマンドとBACKUPコマンドを組み合わせて実現されるバックアップ運用の方法です。増分更新バックアップというバックアップファイルの種類があるわけではありませんので、誤解のなきよう。

増分更新バックアップを最新のイメージコピー形式バックアップ作成に利用する

増分更新バックアップでは、 最初に取得するレベル0の差分バックアップのバックアップ形式はバックアップセット形式または イメージコピー形式を選択できます。 レベル0の差分バックアップをイメージコピー形式で取得しておくと、 以降の増分更新バックアップの運用において、イメージコピー形式のバックアップに対して 増分更新処理(レベル1の増分バックアップの適用)が行われ、 イメージコピー形式で、最新のバックアップを作成することができます。

話が長くなりましたが、この最新のイメージコピー形式バックアップが、SWITCHコマンドによるリストアに使用できるというわけです。

コマンド実行結果

実際のコマンド実行結果を見てみましょう。

なお、増分更新バックアップは以下のコマンド群(実際の運用ではRUNブロックで囲む)を定期的に実行することで行います。

RECOVER COPY OF DATABASE  WITH TAG '<タグ名>';
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG '<タグ名>' DATABASE;

上記コマンドの増分更新バックアップで実行される処理のイメージは以下の図の通りです。

jpoug_ac2019_rman2_002.png

以下に示すコマンド実行例では、増分更新バックアップを4回実行し、復旧作業に移っています。上の図とは異なり、増分更新バックアップの5回目は実行していません。

増分更新バックアップ1回目

増分更新バックアップ1回目の実行です。

増分更新バックアップは2つのコマンドから構成されますが、1つ目のコマンドの RECOVER COPY OF DATABASE WITH TAG '<タグ名>'; のところをまで見てみます。

[oracle@ol68n11 ~]$ export NLS_DATE_FORMAT='YY-MM-DD HH24:MI:SS'
[oracle@ol68n11 ~]$ rman target /

Recovery Manager: Release 18.0.0.0.0 - Production on 土 12月 14 03:15:33 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle and/or its affiliates.  All rights reserved.

ターゲット・データベース: I30N (DBID=1441623569)に接続されました

RMAN> # ◆増分更新バックアップ1回目の増分更新処理
RMAN> #   増分更新処理(レベル0へのレベル1の適用)用のコマンドを実行するが、
RMAN> #   この時点ではレベル0およびレベル1のバックアップがないため、処理をスキップ

RMAN> RECOVER COPY OF DATABASE WITH TAG 'incr_update';

recoverを19-12-14 03:15:44で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=63 デバイス・タイプ=DISK
リカバリするためのデータファイル1のコピーが見つかりません
リカバリするためのデータファイル3のコピーが見つかりません
リカバリするためのデータファイル4のコピーが見つかりません
リカバリするためのデータファイル7のコピーが見つかりません
recoverを19-12-14 03:15:46で終了しました

RMAN> list copy;
指定がリポジトリ内のどのデータファイル・コピーとも一致しません
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません

RMAN> list backup;
指定がリポジトリ内のどのバックアップとも一致しません

引き続き、 増分更新バックアップを構成する2つ目のコマンドの BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG '<タグ名>' DATABASE; の実行を見てみます。

RMAN> # ◆増分更新バックアップ1回目のレベル1増分バックアップ取得
RMAN> #   レベル1増分バックアップ取得用のコマンドを実行するが、
RMAN> #   増分の基準となるレベル0増分バックアップがないため、
RMAN> #   レベル1増分バックアップではなくレベル0増分バックアップが取得される。

RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;


backupを19-12-14 03:15:54で開始しています
チャネルORA_DISK_1の使用
データファイル1の親バックアップまたはコピーが見つかりません←★増分の基準となるレベル0増分バックアップがない
データファイル3の親バックアップまたはコピーが見つかりません
データファイル4の親バックアップまたはコピーが見つかりません
データファイル7の親バックアップまたはコピーが見つかりません
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00001 名前=/u02/app/oracle/oradata/I30N/system01.dbf
出力ファイル名=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf タグ=INCR_UPDATE レコードID=1 スタンプ=1026962168
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:15
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00003 名前=/u02/app/oracle/oradata/I30N/sysaux01.dbf
出力ファイル名=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf タグ=INCR_UPDATE レコードID=2 スタンプ=1026962176
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00004 名前=/u02/app/oracle/oradata/I30N/undotbs01.dbf
出力ファイル名=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf タグ=INCR_UPDATE レコードID=3 スタンプ=1026962181
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:07
チャネルORA_DISK_1: データファイルのコピーを開始しています
入力データファイル ファイル番号=00007 名前=/u02/app/oracle/oradata/I30N/users01.dbf
出力ファイル名=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf タグ=INCR_UPDATE レコードID=4 スタンプ=1026962184
チャネルORA_DISK_1: データファイルのコピーが完了しました。経過時間: 00:00:01
backupを19-12-14 03:16:25で終了しました

Control File and SPFILE Autobackupを19-12-14 03:16:26で開始しています
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp コメント=NONE
Control File and SPFILE Autobackupを19-12-14 03:16:27で終了しました

RMAN> list copy;
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key     File S 終了時間      Ckp SCN    Ckp時間         Sparse
------- ---- - ----------------- ---------- ----------------- ------
1       1    A 19-12-14 03:16:08 1522844    19-12-14 03:15:54 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf # ←★イメージコピー形式でバックアップが取得されている(レベル0増分バックアップ)
             タグ: INCR_UPDATE

2       3    A 19-12-14 03:16:16 1522856    19-12-14 03:16:09 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
             タグ: INCR_UPDATE

3       4    A 19-12-14 03:16:21 1522859    19-12-14 03:16:17 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
             タグ: INCR_UPDATE

4       7    A 19-12-14 03:16:24 1522862    19-12-14 03:16:24 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
             タグ: INCR_UPDATE


RMAN> list backup;

バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
1       Full    10.20M     DISK        00:00:00     19-12-14 03:16:26
        BPキー: 1   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031626
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp #←★制御ファイル、SPファイルはバックアップセット形式でバックアップが取得される
  SPFILEも含まれます: 修正時間: 19-12-14 03:10:41
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522871      Ckp時間: 19-12-14 03:16:26

増分更新バックアップ2回目

次に増分更新バックアップ2回目です。 1回目と同様に 1つ目のコマンドの RECOVER COPY OF DATABASE WITH TAG '<タグ名>'; のところをまで見てみます。

RMAN> ALTER SYSTEM CHECKPOINT;←★更新処理の実行を模擬するためにチェックポイント実行

文が処理されました

RMAN> # ◆増分更新バックアップ2回目の増分更新処理
RMAN> #   増分更新処理(レベル0へのレベル1の適用)用のコマンドを実行するが、
RMAN> #   この時点ではレベル1のバックアップがないため、処理をスキップ

RMAN> RECOVER COPY OF DATABASE WITH TAG 'incr_update';

recoverを19-12-14 03:17:02で開始しています
チャネルORA_DISK_1の使用
リカバリするためのデータファイル1のコピーが見つかりません
リカバリするためのデータファイル3のコピーが見つかりません
リカバリするためのデータファイル4のコピーが見つかりません
リカバリするためのデータファイル7のコピーが見つかりません
recoverを19-12-14 03:17:02で終了しました

RMAN> list copy;
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key     File S 終了時間      Ckp SCN    Ckp時間         Sparse
------- ---- - ----------------- ---------- ----------------- ------
1       1    A 19-12-14 03:16:08 1522844    19-12-14 03:15:54 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
             タグ: INCR_UPDATE

2       3    A 19-12-14 03:16:16 1522856    19-12-14 03:16:09 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
             タグ: INCR_UPDATE

3       4    A 19-12-14 03:16:21 1522859    19-12-14 03:16:17 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
             タグ: INCR_UPDATE

4       7    A 19-12-14 03:16:24 1522862    19-12-14 03:16:24 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
             タグ: INCR_UPDATE


RMAN> list backup;

バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
1       Full    10.20M     DISK        00:00:00     19-12-14 03:16:26
        BPキー: 1   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031626
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:10:41
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522871      Ckp時間: 19-12-14 03:16:26

引き続き、 増分更新バックアップを構成する2つ目のコマンドの BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG '<タグ名>' DATABASE; の実行を見てみます。 コマンドの意図どおりレベル1増分バックアップが取得されます。

RMAN> # ◆増分更新バックアップ2回目のレベル1増分バックアップ取得
RMAN> #   増分の基準となるレベル0増分バックアップがあるため、
RMAN> #   コマンドの意図どおりレベル1増分バックアップが取得される。

RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;

backupを19-12-14 03:17:08で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: 増分レベル1のデータファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u02/app/oracle/oradata/I30N/system01.dbf
入力データファイル ファイル番号=00003 名前=/u02/app/oracle/oradata/I30N/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u02/app/oracle/oradata/I30N/undotbs01.dbf
入力データファイル ファイル番号=00007 名前=/u02/app/oracle/oradata/I30N/users01.dbf
チャネルORA_DISK_1: ピース1 (19-12-14 03:17:08)を起動します
チャネルORA_DISK_1: ピース1 (19-12-14 03:17:15)が完了しました
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkp タグ=INCR_UPDATE コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
backupを19-12-14 03:17:15で終了しました

Control File and SPFILE Autobackupを19-12-14 03:17:15で開始しています
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962235_gz7ofd5m_.bkp コメント=NONE
Control File and SPFILE Autobackupを19-12-14 03:17:16で終了しました

RMAN> list copy;
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key     File S 終了時間      Ckp SCN    Ckp時間         Sparse
------- ---- - ----------------- ---------- ----------------- ------
1       1    A 19-12-14 03:16:08 1522844    19-12-14 03:15:54 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
             タグ: INCR_UPDATE

2       3    A 19-12-14 03:16:16 1522856    19-12-14 03:16:09 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
             タグ: INCR_UPDATE

3       4    A 19-12-14 03:16:21 1522859    19-12-14 03:16:17 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
             タグ: INCR_UPDATE

4       7    A 19-12-14 03:16:24 1522862    19-12-14 03:16:24 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
             タグ: INCR_UPDATE


RMAN> list backup;

バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
1       Full    10.20M     DISK        00:00:00     19-12-14 03:16:26
        BPキー: 1   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031626
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:10:41
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522871      Ckp時間: 19-12-14 03:16:26

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
2       Incr 1  160.00K    DISK        00:00:06     19-12-14 03:17:14
        BPキー: 2   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkp # ←★レベル1増分バックアップ
  バックアップ・セット2のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
3       Full    10.20M     DISK        00:00:01     19-12-14 03:17:16
        BPキー: 3   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031715
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962235_gz7ofd5m_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522983      Ckp時間: 19-12-14 03:17:15

増分更新バックアップ3回目

次に増分更新バックアップ3回目です。

1つ目のコマンドの RECOVER COPY OF DATABASE WITH TAG '<タグ名>'; の実行したとき、すでにレベル0とレベル1のバックアップがあるので、 コマンドの意図通り増分更新処理が実行されます。

RMAN> ALTER SYSTEM CHECKPOINT;

文が処理されました

RMAN> # ◆増分更新バックアップ3回目の増分更新処理
RMAN> #   レベル0とレベル1のバックアップがあるので、
RMAN> #   コマンドの意図通り増分更新処理が実行される。

RMAN> RECOVER COPY OF DATABASE WITH TAG 'incr_update';

recoverを19-12-14 03:17:27で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: 増分データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: リカバリするデータファイル・コピーを指定しています
リカバリしているデータファイル・コピーのファイル番号=00001 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
リカバリしているデータファイル・コピーのファイル番号=00003 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
リカバリしているデータファイル・コピーのファイル番号=00004 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
リカバリしているデータファイル・コピーのファイル番号=00007 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
チャネルORA_DISK_1: バックアップ・ピース/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkpから読取り中です
チャネルORA_DISK_1: ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkp タグ=INCR_UPDATE
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:01
recoverを19-12-14 03:17:28で終了しました

Control File and SPFILE Autobackupを19-12-14 03:17:28で開始しています
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962249_gz7ofs39_.bkp コメント=NONE
Control File and SPFILE Autobackupを19-12-14 03:17:30で終了しました

RMAN> list copy;
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key     File S 終了時間      Ckp SCN    Ckp時間         Sparse
------- ---- - ----------------- ---------- ----------------- ------
8       1    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO #←★増分更新処理でレベル1増分バックアップが適用されたため、レベル0増分バックアップ取得直後に比べてSCNが大きくなっていることに注目
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf←★レベル0増分バックアップ
             タグ: INCR_UPDATE

7       3    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
             タグ: INCR_UPDATE

6       4    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
             タグ: INCR_UPDATE

5       7    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
             タグ: INCR_UPDATE


RMAN> list backup;

バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
1       Full    10.20M     DISK        00:00:00     19-12-14 03:16:26
        BPキー: 1   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031626
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:10:41
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522871      Ckp時間: 19-12-14 03:16:26

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
2       Incr 1  160.00K    DISK        00:00:06     19-12-14 03:17:14
        BPキー: 2   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkp
  バックアップ・セット2のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
3       Full    10.20M     DISK        00:00:01     19-12-14 03:17:16
        BPキー: 3   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031715
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962235_gz7ofd5m_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522983      Ckp時間: 19-12-14 03:17:15

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
4       Full    10.20M     DISK        00:00:00     19-12-14 03:17:29
        BPキー: 4   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031729
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962249_gz7ofs39_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523061      Ckp時間: 19-12-14 03:17:29

引き続き、 増分更新バックアップを構成する2つ目のコマンドの BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG '<タグ名>' DATABASE; の実行を見てみます。 コマンドの意図どおりレベル1増分バックアップが取得されます。

RMAN> # ◆増分更新バックアップ3回目のレベル1増分バックアップ取得
RMAN> #   増分の基準となるレベル0増分バックアップがあるため、
RMAN> #   コマンドの意図どおりレベル1増分バックアップが取得される。

RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;

backupを19-12-14 03:17:36で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: 増分レベル1のデータファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u02/app/oracle/oradata/I30N/system01.dbf
入力データファイル ファイル番号=00003 名前=/u02/app/oracle/oradata/I30N/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u02/app/oracle/oradata/I30N/undotbs01.dbf
入力データファイル ファイル番号=00007 名前=/u02/app/oracle/oradata/I30N/users01.dbf
チャネルORA_DISK_1: ピース1 (19-12-14 03:17:36)を起動します
チャネルORA_DISK_1: ピース1 (19-12-14 03:17:43)が完了しました
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7og0t0_.bkp タグ=INCR_UPDATE コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
backupを19-12-14 03:17:43で終了しました

Control File and SPFILE Autobackupを19-12-14 03:17:43で開始しています
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962263_gz7og81s_.bkp コメント=NONE
Control File and SPFILE Autobackupを19-12-14 03:17:44で終了しました

RMAN> list copy;
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key     File S 終了時間      Ckp SCN    Ckp時間         Sparse
------- ---- - ----------------- ---------- ----------------- ------
8       1    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
             タグ: INCR_UPDATE

7       3    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
             タグ: INCR_UPDATE

6       4    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
             タグ: INCR_UPDATE

5       7    A 19-12-14 03:17:27 1522972    19-12-14 03:17:08 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
             タグ: INCR_UPDATE


RMAN> list backup;

バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
1       Full    10.20M     DISK        00:00:00     19-12-14 03:16:26
        BPキー: 1   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031626
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:10:41
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522871      Ckp時間: 19-12-14 03:16:26

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
2       Incr 1  160.00K    DISK        00:00:06     19-12-14 03:17:14
        BPキー: 2   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkp
  バックアップ・セット2のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
3       Full    10.20M     DISK        00:00:01     19-12-14 03:17:16
        BPキー: 3   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031715
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962235_gz7ofd5m_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522983      Ckp時間: 19-12-14 03:17:15

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
4       Full    10.20M     DISK        00:00:00     19-12-14 03:17:29
        BPキー: 4   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031729
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962249_gz7ofs39_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523061      Ckp時間: 19-12-14 03:17:29

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
5       Incr 1  96.00K     DISK        00:00:06     19-12-14 03:17:42
        BPキー: 5   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7og0t0_.bkp #←★レベル1増分バックアップ
  バックアップ・セット5のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
6       Full    10.20M     DISK        00:00:01     19-12-14 03:17:44
        BPキー: 6   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031743
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962263_gz7og81s_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523119      Ckp時間: 19-12-14 03:17:43

増分更新バックアップ4回目

次に増分更新バックアップ4回目です。

3回目の実行と同様に RECOVER COPY OF DATABASE WITH TAG '<タグ名>'; の実行したとき、すでにレベル0とレベル1のバックアップがあるので、 コマンドの意図通り増分更新処理が実行されます。

RMAN> ALTER SYSTEM CHECKPOINT;

文が処理されました

RMAN> # ◆増分更新バックアップ4回目の処理内容は増分更新バックアップ3回目と同様です。

RMAN> RECOVER COPY OF DATABASE WITH TAG 'incr_update';

recoverを19-12-14 03:17:53で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: 増分データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: リカバリするデータファイル・コピーを指定しています
リカバリしているデータファイル・コピーのファイル番号=00001 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
リカバリしているデータファイル・コピーのファイル番号=00003 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
リカバリしているデータファイル・コピーのファイル番号=00004 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
リカバリしているデータファイル・コピーのファイル番号=00007 名前=/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
チャネルORA_DISK_1: バックアップ・ピース/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7og0t0_.bkpから読取り中です
チャネルORA_DISK_1: ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7og0t0_.bkp タグ=INCR_UPDATE
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:01
recoverを19-12-14 03:17:55で終了しました

Control File and SPFILE Autobackupを19-12-14 03:17:55で開始しています
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962275_gz7ogmrn_.bkp コメント=NONE
Control File and SPFILE Autobackupを19-12-14 03:17:56で終了しました

RMAN> list copy;
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key     File S 終了時間      Ckp SCN    Ckp時間         Sparse
------- ---- - ----------------- ---------- ----------------- ------
12      1    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
             タグ: INCR_UPDATE

11      3    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
             タグ: INCR_UPDATE

10      4    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
             タグ: INCR_UPDATE

9       7    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
             タグ: INCR_UPDATE


RMAN> list backup;

バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
1       Full    10.20M     DISK        00:00:00     19-12-14 03:16:26
        BPキー: 1   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031626
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:10:41
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522871      Ckp時間: 19-12-14 03:16:26

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
2       Incr 1  160.00K    DISK        00:00:06     19-12-14 03:17:14
        BPキー: 2   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkp
  バックアップ・セット2のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
3       Full    10.20M     DISK        00:00:01     19-12-14 03:17:16
        BPキー: 3   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031715
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962235_gz7ofd5m_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522983      Ckp時間: 19-12-14 03:17:15

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
4       Full    10.20M     DISK        00:00:00     19-12-14 03:17:29
        BPキー: 4   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031729
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962249_gz7ofs39_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523061      Ckp時間: 19-12-14 03:17:29

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
5       Incr 1  96.00K     DISK        00:00:06     19-12-14 03:17:42
        BPキー: 5   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7og0t0_.bkp
  バックアップ・セット5のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
6       Full    10.20M     DISK        00:00:01     19-12-14 03:17:44
        BPキー: 6   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031743
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962263_gz7og81s_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523119      Ckp時間: 19-12-14 03:17:43

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
7       Full    10.20M     DISK        00:00:00     19-12-14 03:17:55
        BPキー: 7   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031755
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962275_gz7ogmrn_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523197      Ckp時間: 19-12-14 03:17:55

引き続き、 増分更新バックアップを構成する2つ目のコマンドの BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG '<タグ名>' DATABASE; の実行を見てみます。 コマンドの意図どおりレベル1増分バックアップが取得されます。

RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'incr_update' DATABASE;

backupを19-12-14 03:18:01で開始しています
チャネルORA_DISK_1の使用
チャネルORA_DISK_1: 増分レベル1のデータファイル・バックアップ・セットを開始しています
チャネルORA_DISK_1: バックアップ・セットにデータファイルを指定しています
入力データファイル ファイル番号=00001 名前=/u02/app/oracle/oradata/I30N/system01.dbf
入力データファイル ファイル番号=00003 名前=/u02/app/oracle/oradata/I30N/sysaux01.dbf
入力データファイル ファイル番号=00004 名前=/u02/app/oracle/oradata/I30N/undotbs01.dbf
入力データファイル ファイル番号=00007 名前=/u02/app/oracle/oradata/I30N/users01.dbf
チャネルORA_DISK_1: ピース1 (19-12-14 03:18:02)を起動します
チャネルORA_DISK_1: ピース1 (19-12-14 03:18:09)が完了しました
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7ogt3s_.bkp タグ=INCR_UPDATE コメント=NONE
チャネルORA_DISK_1: バックアップ・セットが完了しました。経過時間: 00:00:07
backupを19-12-14 03:18:09で終了しました

Control File and SPFILE Autobackupを19-12-14 03:18:09で開始しています
ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962289_gz7oh1d0_.bkp コメント=NONE
Control File and SPFILE Autobackupを19-12-14 03:18:10で終了しました

RMAN> list copy;
指定がリポジトリ内のどの制御ファイル・コピーとも一致しません
指定がリポジトリ内のどのアーカイブ・ログとも一致しません
データファイル・コピーのリスト
=======================

Key     File S 終了時間      Ckp SCN    Ckp時間         Sparse
------- ---- - ----------------- ---------- ----------------- ------
12      1    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
             タグ: INCR_UPDATE

11      3    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
             タグ: INCR_UPDATE

10      4    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
             タグ: INCR_UPDATE

9       7    A 19-12-14 03:17:54 1523109    19-12-14 03:17:36 NO
        名前: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
             タグ: INCR_UPDATE


RMAN> list backup;

バックアップ・セットのリスト
===================


BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
1       Full    10.20M     DISK        00:00:00     19-12-14 03:16:26
        BPキー: 1   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031626
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962186_gz7octfz_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:10:41
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522871      Ckp時間: 19-12-14 03:16:26

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
2       Incr 1  160.00K    DISK        00:00:06     19-12-14 03:17:14
        BPキー: 2   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7of4s3_.bkp
  バックアップ・セット2のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1522972    19-12-14 03:17:08              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
3       Full    10.20M     DISK        00:00:01     19-12-14 03:17:16
        BPキー: 3   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031715
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962235_gz7ofd5m_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1522983      Ckp時間: 19-12-14 03:17:15

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
4       Full    10.20M     DISK        00:00:00     19-12-14 03:17:29
        BPキー: 4   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031729
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962249_gz7ofs39_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523061      Ckp時間: 19-12-14 03:17:29

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
5       Incr 1  96.00K     DISK        00:00:06     19-12-14 03:17:42
        BPキー: 5   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7og0t0_.bkp
  バックアップ・セット5のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1523109    19-12-14 03:17:36              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
6       Full    10.20M     DISK        00:00:01     19-12-14 03:17:44
        BPキー: 6   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031743
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962263_gz7og81s_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523119      Ckp時間: 19-12-14 03:17:43

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
7       Full    10.20M     DISK        00:00:00     19-12-14 03:17:55
        BPキー: 7   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031755
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962275_gz7ogmrn_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523197      Ckp時間: 19-12-14 03:17:55

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
8       Incr 1  96.00K     DISK        00:00:05     19-12-14 03:18:07
        BPキー: 8   ステータス: AVAILABLE  圧縮: NO  タグ: INCR_UPDATE
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7ogt3s_.bkp
  バックアップ・セット8のデータファイルのリスト
  File LV Type Ckp SCN    Ckp時間         Abs Fuz SCN Sparse Name
  ---- -- ---- ---------- ----------------- ----------- ------ ----
  1    1  Incr 1523242    19-12-14 03:18:02              NO    /u02/app/oracle/oradata/I30N/system01.dbf
  3    1  Incr 1523242    19-12-14 03:18:02              NO    /u02/app/oracle/oradata/I30N/sysaux01.dbf
  4    1  Incr 1523242    19-12-14 03:18:02              NO    /u02/app/oracle/oradata/I30N/undotbs01.dbf
  7    1  Incr 1523242    19-12-14 03:18:02              NO    /u02/app/oracle/oradata/I30N/users01.dbf

BS Key  Type LV Size       Device Type Elapsed Time 終了時間
------- ---- -- ---------- ----------- ------------ -----------------
9       Full    10.20M     DISK        00:00:00     19-12-14 03:18:09
        BPキー: 9   ステータス: AVAILABLE  圧縮: NO  タグ: TAG20191214T031809
        ピース名: /u02/app/oracle/fast_recovery_area/I30N/I30N/autobackup/2019_12_14/o1_mf_s_1026962289_gz7oh1d0_.bkp
  SPFILEも含まれます: 修正時間: 19-12-14 03:16:30
  SPFILE db_unique_name: I30N
  含まれている制御ファイル: Ckp SCN: 1523252      Ckp時間: 19-12-14 03:18:09

復旧

ここで、データベースに障害が発生したと想定して、復旧作業を行います。 まずはデータベースをMOUNT状態にします。

RMAN> shutdown immediate

データベースがクローズしました
データベースがディスマウントされました。
Oracleインスタンスがシャットダウンしました

RMAN> startup mount

ターゲット・データベースに接続しました(起動していません)。
Oracleインスタンスが起動しました
データベースがマウントされました。

システム・グローバル領域の合計は、    729807832バイトです。

Fixed Size                     8661976バイト
Variable Size                595591168バイト
Database Buffers             121634816バイト
Redo Buffers                   3919872バイト

具体的なデータベースの復旧作業に入ります。通常の復旧であれば、リストア "RESTORE" → リカバリ "RECOVER"となりますが、 ここでは「リストアしない超高速リストア」をするので、RESTOREコマンドではなく、SWITCHコマンドを実行します。

すると、データファイルのファイルパスが最新のイメージコピー形式のバックアップに切り替えられます。

RMAN> SWITCH DATABASE TO COPY;

データファイル1はデータファイル・コピー"/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf"に切り替えられました
データファイル3はデータファイル・コピー"/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf"に切り替えられました
データファイル4はデータファイル・コピー"/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf"に切り替えられました
データファイル7はデータファイル・コピー"/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf"に 切り替えられました

SWITCHコマンドにより、リストア相当の処理が実行された形になるため、引き続きリカバリ処理を実行します。

RMAN> RECOVER DATABASE;

recoverを19-12-14 03:22:06で開始しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=37 デバイス・タイプ=DISK
チャネルORA_DISK_1: 増分データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
データファイル00001のリストア先: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf
データファイル00003のリストア先: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf
データファイル00004のリストア先: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf
データファイル00007のリストア先: /u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf
チャネルORA_DISK_1: バックアップ・ピース/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7ogt3s_.bkpから読取り中です
チャネルORA_DISK_1: ピース・ハンドル=/u02/app/oracle/fast_recovery_area/I30N/I30N/backupset/2019_12_14/o1_mf_nnnd1_INCR_UPDATE_gz7ogt3s_.bkp タグ=INCR_UPDATE
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:01

メディア・リカバリを開始しています
メディア・リカバリが完了しました。経過時間: 00:00:01

recoverを19-12-14 03:22:08で終了しました

RMAN> ALTER DATABASE OPEN;

文が処理されました

RMAN> # 復旧後のデータファイルのパスが、以前のイメージコピーバックアップになっていることを確認
RMAN> SELECT FILE_NAME FROM DBA_DATA_FILES;



FILE_NAME
--------------------------------------------------------------------------------

/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_users_gz7ocrbc_.dbf


/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_undotbs1_gz7ock59_.dbf


/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_system_gz7obtq5_.dbf


/u02/app/oracle/fast_recovery_area/I30N/I30N/datafile/o1_mf_sysaux_gz7oc9x3_.dbf


RMAN>

正常にデータベースがOPENできました。めでたし、めでたし。 また、データファイルのパスが変わっていることが分かります。

まとめ

SWITCHコマンドを使用した、「リストアしない超高速リストア」の方法をご紹介しました。

バックアップファイルを十分性能がよいストレージに出力する必要がありますが、 復旧に要する時間を大幅に短縮できます。

データベースのサイズが非常に大きい場合、通常のリストアに非常に時間がかかる場合があると思いますので、 その場合は是非この方法をご活用いただければと思います。

いやーRMANって本当に素晴らしいですね。 :-P

2019年12月 9日

スタンバイDBを再作成せずにStandby ExpressからDbvisit Standbyへ変更する方法

渡部です。 Standby Expressを現在用いているシングル→シングル構成の災害対策データベース環境において、 Standby ExpressからDbvisit Standbyに乗り換えたいというご依頼をいただきました。 ご依頼に対応する中で、スタンバイDBを再作成せず、簡単にStandby ExpressからDbvisit Standbyへ変更できる方法を検証したため、それについてまとめます。(といっても、別に大した話ではなく、すんなりできるのですが)

そもそもStandby ExpressやDbvisit Standbyの役割は何なのか?

Standby ExpressおよびDbvisit Standbyは、 物理レプリケーションのためにOracle Databaseの基本スタンバイという技術を使っています。 基本スタンバイは、プライマリデータベースで出力されたアーカイブログファイルを、スタンバイデータベースに転送し、それを適用することで、プライマリデータベースに加えられた変更をスタンバイデータベースに反映させる技術です。

Standby ExpressおよびDbvisit Standbyは有償の製品ですが、Standby ExpressおよびDbvisit Standbyは、基本スタンバイの動作を支援する単なるヘルパーにすぎません。 実は、Standby ExpressやDbvisit Standbyは基本スタンバイを使いやすくしているだけの存在なのです。

stdbyexprs_to_dbvisit01.png

基本スタンバイをはそのまま使うのはあまりにも使いにくいため、実際の運用の観点から見ればStandby ExpressおよびDbvisit Standbyにお金を払う価値は十分にあります (でなければ有償の製品としての存在意義がありません)。 ただし、純粋に技術的な観点から見れば、本質はあくまでも基本スタンバイであり、 Standby ExpressやDbvisit Standbyは基本スタンバイの周囲で動作する支援環境にすぎません。

Dbvisit StandbyはStandby Expressを代替可能な同等製品です

Dbvisit StandbyはStandby Expressを代替可能な同等製品です。 上記の通り、Dbvisit StandbyとStandby Expressはともに基本スタンバイをコア技術とする製品です。 両者は代替可能です。

Standby Expressが2019年12月に販売を終了することから、 Standby Expressの代替製品としてDbvisit Standbyがお役に立てる状況が増えるのではと考えています。

結局基本スタンバイが本質なのであれば、データベースには手をいれずにStandby ExpressからDbvisit Standbyへ変更したい

Standby ExpressおよびDbvisit Standbyで構成された災害対策に対応したデータベース環境の中身は、基本スタンバイです。

とすると、単なる支援環境であるところのStandby Expressを別の支援環境であるDbvisit Standbyに入れ替えるのであれば、 中身であるところのデータベースには手をいれたくないのは、ごく自然な考えです。

より具体的に言うと、すでにStandby Expressを用いてスタンバイDBが作成されている場合、Dbvisit Standbyの導入後もそのスタンバイDBをそのまま使って基本スタンバイを構成したくなるわけです。

stdbyexprs_to_dbvisit02.png

もちろん、Dbvisit Standby導入前にあらかじめスタンバイDBを削除し、Dbvisit Standby導入後にあらためてスタンバイDBを再作成し、基本スタンバイを構成することも可能です。

しかし、そもそも、支援環境に過ぎないStandby ExpressおよびDbvisit Standbyの変更のため、 物理レプリケーションの本質であるところの基本スタンバイを構成しなおすというのは本末転倒気味で、余計な手順が増えた印象をもちます。 また、スタンバイDBを再作成するには、プライマリデータベースにおけるバックアップの取得、バックアップファイルのスタンバイホストへの転送、バックアップファイルのスタンバイホストへの展開が必要で、これらは比較的負荷が大きく、できることなら避けたい処理です。

stdbyexprs_to_dbvisit03.png

これらのこともあり、すでにStandby Expressを用いてスタンバイDBが作成されている場合、Dbvisit Standbyの導入後もそのスタンバイDBをそのまま使って基本スタンバイを構成したくなるわけです。

スタンバイDBを再作成せずにStandby ExpressからDbvisit Standbyへ変更する方法

さて、前置きが長くなりましたが、Standby ExpressからDbvisit Standbyに乗り換えるにあたり、スタンバイDBを再作成せずにStandby ExpressからDbvisit Standbyへ変更する方法について説明します・・・が、非常に簡単です。

方法は簡単で、プライマリDBとスタンバイDBの組を定義するDDCを作成する際に、 DDCにおける作成済みのスタンバイDBのSID、 DB_UNIQUE_NAME、ORACLE_HOMEを、 作成済みのスタンバイDBのSID、 DB_UNIQUE_NAME、ORACLE_HOME と同じ値に設定するだけです。

以下に、 スタンバイDBを再作成してDbvisitへ移行する場合と、 スタンバイDBを削除せずにDbvisitへ移行する場合の手順を比較した図を示します。

stdbyexprs_to_dbvisit04.png

スタンバイDBの作成は比較的時間を要する重い処理ですから、この処理を実行せずに済むのは大きなメリットです。

Standby Expressの代替製品であるDbvisitにご興味があるかたは是非コーソルにお問い合わせください!

コーソルでは、Dbvisitを用いたOracle Standard Edition向け災害対策環境構築サービスを提供しています。

また、別途リモートDBAサービスをご契約いただくと、DbvisitのみならずOracle運用管理一般について運用管理業務を代行します。こちらについても併せてご利用くださいませ。

2019年12月 7日

Oracle関連Advent Calendarまとめ

渡部です。Oracle関連のAdvent Calendarをまとめておきます。

advent_calendar_pic.jpg

from Freepik - jp.freepik.com によって作成された christmas ベクトル

JPOUG Advent Calendar 2019

12月1日から25日間、Japan Oracle User Group (JPOUG)コミュニティのみんなで記事を書き、クリスマス当日までバトンをつなげてゆきましょう!

Oracle Cloud Infrastructure Advent Calendar 2019

たぶん、今アツイCloudであるOracle Coud Infrastructureを語りましょ。
#ocijp もよろしくお願いします><

Oracle Cloud always free Advent Calendar 2019

可能な限りOracle Cloud always free縛りで頑張ります。
自分のcloud検証用構築も兼ねてるのでネタは地味です。
記載予定の記事は変更する可能性があります。
ネタ切れ起こしたらOracle Cloudネタ混じるかも。その時はごめんなさい

実行計画は、SQL文のレントゲン写真だ! Oracle Database編 (全部俺) Advent Calendar 2019

さて、なんとなく、勢いではじめてみました、実行計画は、SQLのレントゲン写真だ!
実行計画という、SQLのレントゲン写真をどれだけみたて診察、治療してきたか、SQLチューニングという診察、治療の腕をあげるためにも、どのような実行計画がどのようなSQL文から生成されるのか知っていて損はないです。(はず)
今温めているネタに近く、勢いで初めてしまったので、Advent calendar 全部俺 ということにしておきます。
実行計画のパターンは、よく見るものも含め25は軽く超えてしまいますが、今回は基本になりそうなところ中心に集めてレントゲンとしてカタログ化w しておきたいと思います。
今回はOracle Database編で、一部、JPOUG Advent Calendar 2019 とクロスポスト予定のエントリがあります。他のデータベースエンジン向けは別の機会にでも。
実行計画というレントゲン写真から、元のSQL文をイメージしたり、どのような状況に適しているのか、適していないなのかを考えながら見るのも面白いかもしれません。

2019年12月 6日

Oracle 19cライセンス緩和 機械学習+地理データがStandard Editionで使用可能に

渡部です。これまで、機械学習を含む高度な分析機能、空間データおよびグラフデータの分析機能 はそれぞれOracle Advanced Analyticsオプション、Oracle Spatial and Graphオプションとして、 Enterprise Editionの有償オプションという位置づけでしたが、 有償オプションを購入していないEnterprise Editionでも使用可能になりました。

そして、なんと、Standard Editionでも使用可能になりました。 また、このライセンス上の措置は18c、12c R2にもさかのぼって適用されるようです(バックポート)。

以下は英語版19cマニュアル ライセンス情報のキャプチャです。

19c_lic_en_ml.png 19c_lic_en_spatial.png

過去のライセンスの取り扱いを示すため、日本語版マニュアル 19cライセンス情報のキャプチャも載せておきます。 日本語版は翻訳のタイムラグの関係があり、少し古い情報を確認できるのです。

19c_lic_ja_ml.png 19c_lic_ja_spatial.png

2019年12月 1日

RMANへの愛を語る - JPOUG Advent Calendar 2019 1日目

渡部です。この記事は、JPOUG Advent Calendar 2019 の1日目の記事です。 この記事では、RMANの優れた点をまとめつつ、RMANへの愛を語ってみたいと思います :-)

jpoug_ac2019_rman_000.png

RMANの最も好きなところ: バックアップ/復旧手順が簡単!

RMANは、データベース運用において最も重要なバックアップと復旧のためのツールであり、Oracle Databaseに標準添付されています。 基本的な機能であれば、Oracle DatabaseのすべてのEditionで使用できます。(一部の機能はEnterprise Edition限定です)

データベースにはデータが格納されます。 格納されるデータは、そのシステム固有のものですから、データが失われると基本的に取り戻すことはできません。 このため、繰り返しになりますがデータベース運用においては、バックアップと復旧が最も重要です。

RMANを使えば、バックアップと復旧をシンプルなコマンド実行で簡単に実行できます。具体的には、

  • BACKUP DATABASEコマンドを実行すれば、データベースをバックアップできます。データベースがどのようなファイルで構成されているかを意識する必要はありません。
  • RESTORE DATABASEコマンドとRECOVER DATABASEコマンドを実行すれば、バックアップしたデータベースを復元(リストア)し、データベースを障害発生直前の状態に復旧することができます(リカバリ)。

以下にデータベース全体のバックアップを実行したときのコマンド実行結果を示します。

$  rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Sun Dec 1 16:57:48 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: J30 (DBID=4174331218)

RMAN> backup database;

Starting backup at 01-DEC-19
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/J30/system01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/J30/sysaux01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/J30/undotbs01.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/J30/users01.dbf
channel ORA_DISK_1: starting piece 1 at 01-DEC-19
channel ORA_DISK_1: finished piece 1 at 01-DEC-19
piece handle=/u01/app/oracle/fast_recovery_area/J30/backupset/2019_12_01/o1_mf_nnndf_TAG20191201T165802_gy6wncht_.bkp tag=TAG20191201T165802 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
Finished backup at 01-DEC-19

Starting Control File and SPFILE Autobackup at 01-DEC-19
piece handle=/u01/app/oracle/fast_recovery_area/J30/autobackup/2019_12_01/o1_mf_s_1025888308_gy6wo4vv_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 01-DEC-19

さらにデータベース全体をリストア+リカバリしたときのコマンド実行結果を以下に示します。

$  rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Sun Dec 1 17:03:01 2019
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database (not started)

RMAN> startup mount

Oracle instance started
database mounted

Total System Global Area    1610609200 bytes

Fixed Size                     8897072 bytes
Variable Size                889192448 bytes
Database Buffers             704643072 bytes
Redo Buffers                   7876608 bytes

RMAN> restore database;

Starting restore at 01-DEC-19
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=253 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/J30/system01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/J30/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/J30/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/J30/users01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/fast_recovery_area/J30/backupset/2019_12_01/o1_mf_nnndf_TAG20191201T165802_gy6wncht_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/fast_recovery_area/J30/backupset/2019_12_01/o1_mf_nnndf_TAG20191201T165802_gy6wncht_.bkp tag=TAG20191201T165802
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:05
Finished restore at 01-DEC-19

RMAN> recover database;

Starting recover at 01-DEC-19
using channel ORA_DISK_1

starting media recovery
media recovery complete, elapsed time: 00:00:01

Finished recover at 01-DEC-19

RMAN>

すこし誇張気味ではありますが、基本的には3つのコマンド(backup database, recover, restore)を覚えておけば、 どこの環境の、どんなOracleデータベースであってもバックアップと復旧ができるわけです! RMANすごい!

バックアップファイルの管理が簡単!

バックアップは定期的に取得するものであるため、運用を継続していくとバックアップファイルがどんどん増えてゆきます。アーカイブログファイルも同様にどんどん増えてゆきます。このため、古いバックアップやアーカイブログファイルは適宜削除する必要があります。

RMANには、保存ポリシーを設定して、古いバックアップやアーカイブログファイルを自動的に判定し、簡単に削除する仕組みがあります。システムの要件に応じてRMAN保存ポリシーを設定しておけば、あとは定期的にバックアップを取得するだけで、古いバックアップは自動的に削除されます。とても運用が簡単になります。

保存ポリシーは、冗長性またはリカバリ期間のいずれかの方法で指定できます。

  • 冗長性(単位:バックアップ世代数): 保存するバックアップファイルの世代数を指定
  • リカバリ期間(単位:復旧可能な過去日数):過去N日間について、その範囲内の任意の時点に復旧できるようバックアップを保存

冗長性(単位:バックアップ世代数)

保存するバックアップファイルの世代数を指定します。指定された世代数のバックアップに加えて、そのバックアップを用いてリカバリを行うために必要なアーカイブログファイルが保存対象となります。

以下の図では、毎日0:00にバックアップを取得するデータベースで、冗長性を2と設定した場合に、どのバックアップおよびアーカイブログファイルが必要と判断されるかを示しています。

jpoug_ac2019_rman_001.png

デフォルトでは保存ポリシーは冗長性で、冗長数が1です。すなわち、直近のバックアップ1つと、そのバックアップ取得後に出力されたアーカイブログファイルが保存対象となります。

リカバリ期間(単位:復旧可能な過去日数)

過去N日間について、その範囲内の任意の時点に復旧できるようバックアップを保存します。N日をリカバリ期間として指定します。

以下の図では、毎日0:00にバックアップを取得するデータベースで、リカバリ期間を1日と設定した場合に、どのバックアップおよびアーカイブログファイルが必要と判断されるかを示しています。

jpoug_ac2019_rman_002.png

高度なバックアップ

近年のトレンドとして、データベースに保管されるデータ量が増えたり、システムの対象領域が広がった結果、 大きなサイズのデータベースが増えています。 当然ですが、サイズが大きくなったとしても、データベースは適切にバックアップする必要があります。 Oracle Databaseはサイズが大きいデータベースをバックアップするためのざまざまな機能が用意されています。

  • 増分バックアップ
  • 高速増分バックアップ
  • 増分更新バックアップとOracle推奨バックアップ計画
  • 圧縮バックアップ
  • パラレルバックアップ
  • マルチセクションバックアップ
  • バックアップの暗号化

増分バックアップ

RMANの増分バックアップは前回のバックアップから更新されたデータブロックだけをバックアップするバックアップ方法です。更新されたデータブロックのみをバックアップするため、データベース全体をバックアップするよりも大幅にバックアップファイルのサイズを削減できます。

差分増分バックアップは、最後に実行された増分バックアップ以降に更新されたブロックだけをバックアップする増分バックアップです。増分の基準は「最後に実行された増分バックアップ」です。

差分増分バックアップは、レベル0の増分バックアップによる全体バックアップと、レベル1の差分増分バックアップによる差分増分バックアップを組み合わせて実行します。1週間に1回全体バックアップを実行し、それ以外の日は差分増分バックアップを実行するなどが考えられます。

jpoug_ac2019_rman_003.png

累積増分バックアップは、最後に実行されたレベル0バックアップ以降に更新されたすべてのブロックがバックアップ対象となります。

jpoug_ac2019_rman_004.png

高速増分バックアップ

増分バックアップを用いると、バックアップファイルのサイズを削減することができますが、バックアップ時間を短縮することはできません。それは、更新されたブロックを抽出するために、データファイル全体にアクセスしているからです。

バックアップ時間を短縮するには、高速増分バックアップを使用します。高速増分バックアップは、更新されたブロックがデータファイルのどこにあるかをブロックチェンジトラッキングファイルでトラッキング(追跡)しておくことで、データファイル全体にアクセスすることなく、更新されたブロックを抽出できるようにする仕組みです

jpoug_ac2019_rman_005.png

増分更新バックアップとOracle推奨バックアップ計画

増分バックアップはバックアップ保存に必要なディスク領域を削減できる優れた機能ですが、復旧作業において、増分を適用する処理が必要なため、適用すべき増分が多いと復旧時間が長くなる問題があります。増分更新バックアップを用いると、この問題を解決できます。

増分更新バックアップは、全体バックアップ(レベル0の増分バックアップ)に対して差分バックアップ(レベル1の差分増分または累積増分バックアップ)をあらかじめ適用しておくことで、更新されたイメージコピー形式の全体バックアップを作成しておく方法です。障害発生時の復旧作業において、増分を適用する必要がないため、復旧に要する時間を短縮できます。この方法をオラクルは推奨バックアップ計画と呼んでいます。

jpoug_ac2019_rman_006.png

増分更新バックアップはRECOVERコマンドとBACKUPコマンドを組み合わせて実現されるバックアップ運用の方法です。増分更新バックアップというバックアップファイルの種類があるわけではありません。

圧縮バックアップ

汎用のファイル圧縮のアルゴリズムを用いてバックアップファイルを圧縮する圧縮方法です。圧縮処理を実行するためCPUリソースが消費されますが、バックアップファイルのサイズを縮小し、必要なストレージ領域を減らすことができます。

また、未使用ブロックの圧縮も使用されます。これは、使用されていないブロックをバックアップ対象から除外することで、バックアップファイルのサイズを縮小する圧縮機能です。

パラレルバックアップ

デフォルトでは、バックアップは1つのチャネルを用いてシリアルで実行されます。複数のチャネルを用いてバックアップをパラレルで実行すると、ストレージ装置のI/O帯域に余裕がある場合、バックアップを高速化できます。

jpoug_ac2019_rman_007.png

マルチセクションバックアップ

大きなサイズのデータファイルがある場合、そのデータファイルを並列にバックアップしたいことがあります。通常のパラレルバックアップでは並列処理の単位がファイルであるため、1つのファイルを並列でバックアップできません。

マルチセクションバックアップを使うと、1つのデータファイルを並列でバックアップできるようになります。この機能は、BIGFILE表領域のような1つのデータファイルが大きくなりがちなケースで非常に有用です。

jpoug_ac2019_rman_008.png

バックアップの暗号化

データベース自体を暗号化することは重要なセキュリティ対処策ですが、データベースのバックアップの暗号化も重要です。バックアップはテープメディアや取り外し可能な外付けディスクに格納される場合があり、これらのメディアは外部に持ち出しやすいためです。

高度な復旧

データリカバリアドバイザ

データリカバリアドバイザを利用することで、作業ミスの防止および復旧までの時間短縮を実現できます。 ログファイルやエラーメッセージを参考に各種コマンドを使用することでデータベースファイルやデータブロックの破損からの復旧が可能ですが、そもそも復旧作業は頻繁に行うような作業ではありませんので、復旧までに時間を要する場合が多いです。また、不慣れな作業を実行する中で作業ミスが発生することも十分に考えられます。

データリカバリアドバイザを利用すると、ファイル消失やブロック破損などの検出済み破損の表示、破損修復スクリプトの生成、修復作業の実行を自動化できます。また、データリカバリアドバイザは、いくつかの復旧手順の中から最適と判断したリカバリ方法を提示します。

# この時点で検出されている障害を表示
RMAN> LIST FAILURE;

データベース・ロール: PRIMARY

データベース障害のリスト
=========================

障害ID 優先度ステータス    検出時間 サマリー
------ -------- --------- -------- -------
262    HIGH     OPEN      18-01-17 SYSTEM以外のデータファイルが1つ以上見つかりません
202    HIGH     OPEN      18-01-17 データファイル6: '/u01/app/oracle/oradata/orcl/users01.dbf'には破損したブロックが1つ以上含まれています

# 障害を分析し、修復オプションを決定
RMAN> ADVISE FAILURE;

データベース・ロール: PRIMARY

データベース障害のリスト
=========================

障害ID 優先度ステータス    検出時間 サマリー
------ -------- --------- -------- -------
262    HIGH     OPEN      18-01-17 SYSTEM以外のデータファイルが1つ以上見つかりません
202    HIGH     OPEN      18-01-17 データファイル6: '/u01/app/oracle/oradata/orcl/users01.dbf'には破損したブロックが1つ以上含まれています

自動修復オプションを分析中です。これには少し時間がかかる場合があります
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=22 デバイス・タイプ=DISK
自動修復オプションの分析が完了しました

必須の手動アクション
========================
使用可能な手動アクションがありません

オプションの手動アクション
=======================
1. 意図せずにファイル/u01/app/oracle/oradata/orcl/users01.dbfの名前の変更または移動が行われていた場合リストアします

自動修復オプション
========================
オプション 修復 説明
------ ------------------
1      データファイル6をリストアおよびリカバリします
  計画: 修復には、データが損失しない完全なメディア・リカバリが含まれます
  修復スクリプト: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_3115036620.hm

# データリカバリアドバイザが推奨する復旧手順を確認
RMAN> REPAIR FAILURE PREVIEW;

計画: 修復には、データが損失しない完全なメディア・リカバリが含まれます
修復スクリプト: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_3115036620.hm

修復スクリプトの内容:
   # restore and recover datafile
   restore ( datafile 6 );
   recover datafile 6;
   sql 'alter database datafile 6 online';


# データリカバリアドバイザが推奨する復旧手順を実行
RMAN> REPAIR FAILURE;

計画: 修復には、データが損失しない完全なメディア・リカバリが含まれます
修復スクリプト: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_3115036620.hm

修復スクリプトの内容:
   # restore and recover datafile
   restore ( datafile 6 );
   recover datafile 6;
   sql 'alter database datafile 6 online';

この修復を実行しますか(YESまたはNOを入力してください)。 YES
修復スクリプトを実行しています   
restoreが開始されました(開始時間: 18-01-17)
チャネルORA_DISK_1の使用

チャネルORA_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_DISK_1: データファイル00006を/u01/app/oracle/oradata/orcl/users01.dbfにリストアしています
チャネルORA_DISK_1: バックアップ・ピース/u01/app/oracle/fast_recovery_area/ORCL/backupset/2018_01_16/o1_mf_nnndf_TAG20180116T155906_f5v8ot8q_.bkpから読取り中です
チャネルORA_DISK_1: ピース・ハンドル=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2018_01_16/o1_mf_nnndf_TAG20180116T155906_f5v8ot8q_.bkp タグ=TAG20180116T155906
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:01
restoreが完了しました(完了時間: 18-01-17)

recoverが開始されました(開始時間: 18-01-17)
チャネルORA_DISK_1の使用

メディア・リカバリを開始しています

スレッド1 (順序9)のアーカイブ・ログは、ファイル/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2018_01_16/o1_mf_1_9_f5vhrqkw_.arcとしてディスクに存在します
スレッド1 (順序10)のアーカイブ・ログは、ファイル/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2018_01_17/o1_mf_1_10_f5xhb85l_.arcとしてディスクに存在します
スレッド1 (順序11)のアーカイブ・ログは、ファイル/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2018_01_17/o1_mf_1_11_f5xqvoml_.arcとしてディスクに存在します
アーカイブ・ログ・ファイル名=/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2018_01_16/o1_mf_1_9_f5vhrqkw_.arc スレッド=1 順序=9
メディア・リカバリが完了しました。経過時間: 00:00:00
recoverが完了しました(完了時間: 18-01-17)

SQL文: alter database datafile 6 online
障害の修復が完了しました

データベースをオープンしますか(YESまたはNOを入力してください)。 YES
データベースがオープンしました。

# すべての障害が修復されているかを確認
RMAN> LIST FAILURE;

データベース・ロール: PRIMARY

指定に一致する障害が見つかりません

フラッシュバックデータベースの使用

フラッシュバックデータベースを使うと、データベース全体を過去の状態に戻すことができます。不完全リカバリよりも高速に実行できる利点がありますが、別途フラッシュバックログが必要です。この節では、フラッシュバックデータベースの特徴と、フラッシュバックロギングの有効化を用いたフラッシュバックデータベースについて説明します。

誤ってTRUNCATE TABLEを実行してデータを失った表を復元するため、時刻を指定してフラッシュバックデータベースを実行する例を示します。

# 誤ってTRUNCATE TABLEを実行した後。これから表を復元する。
RMAN> SELECT count(*) FROM scott.emp;

  COUNT(*)
----------
         0

# MOUNTモードで再起動
RMAN> SHUTDOWN IMMEDIATE
データベースがクローズしました
データベースがディスマウントされました。
Oracleインスタンスがシャットダウンしました
RMAN> STARTUP MOUNT
ターゲット・データベースに接続しました(起動していません)。
Oracleインスタンスが起動しました
データベースがマウントされました。
 (略)

# 誤削除実行前の日時を指定してフラッシュデータベースを実行
RMAN> FLASHBACK DATABASE TO TIME "TO_DATE('2018/02/19 16:56:50','YY/MM/DD HH24:MI:SS')";

flashbackが開始されました(開始時間: 18-02-19)
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=22 デバイス・タイプ=DISK
メディア・リカバリを開始しています
メディア・リカバリが完了しました。経過時間: 00:00:01
flashbackが完了しました(完了時間: 18-02-19)

# 一旦読み取り専用モードでオープンし、誤削除実行前の状態に戻っているか確認
RMAN> ALTER DATABASE OPEN READ ONLY;
文が処理されました

RMAN> SELECT count(*) FROM scott.emp;

  COUNT(*)
----------
        12

# インスタンスを停止して、あらためてRESETLOGSオプション付きでOPEN
RMAN> SHUTDOWN IMMEDIATE

データベースがクローズしました
データベースがディスマウントされました。
Oracleインスタンスがシャットダウンしました

RMAN> STARTUP MOUNT
ターゲット・データベースに接続しました(起動していません)。
Oracleインスタンスが起動しました
データベースがマウントされました。
 (略)
RMAN> ALTER DATABASE OPEN RESETLOGS;
文が処理されました

表のリカバリ

表リカバリは過去のある時点の表を復元できるOracle Database 12cからの新機能です。

ソースデータベース(表を復元したいデータベース)でRECOVER TABLEを実行すると、RMANはソースデータベースのバックアップとオンラインログファイル、 アーカイブログファイルを用いて、復元ターゲット日時の状態の補助インスタンスを作成します。そして、リカバリ対象表を補助インスタンスからエクスポートし、ソースデータベースへインポートすることで、復元ターゲット日時の状態の表を復元します(検証してみると、実際には2つの補助インスタンスが起動するようですが、機能説明の観点では説明不要なので割愛します)。RECOVER TABLE実行時の動作イメージを以下の図に示します。

jpoug_ac2019_rman_009.png

なお、補助インスタンスの作成や、インポート、エクスポートはRECOVER TABLE実行の中で自動的に行われ、別途コマンドなどを実行する必要はありません。

データ転送と複製

トランスポータブル表領域

トランスポータブル表領域は、異なるデータベース間で高速にデータを転送する方法です。データを含むデータファイルそのものをコピーしてデータを転送するため、データの量が非常に多い場合、一旦データをダンプファイルにエクスポートしてからインポートする方法に比べて、データを高速に転送できます。

jpoug_ac2019_rman_010.png トランスポータブル表領域には2つの方法があります。

  • データポンプ・トランスポータブル表領域
  • RMANトランスポータブル表領域

データポンプ・トランスポータブル表領域は、転送対象の表領域を読み取り専用にする必要があるため、転送対象の表領域への更新処理が一時的にできなくなります。

jpoug_ac2019_rman_011.png

RMANトランスポータブル表領域は、転送対象の表領域を読み取り専用にする必要がありません。その代わりに、ソースデータベースにおけるデータファイルおよびメタデータ作成のため、補助インスタンスが作成され、バックアップとアーカイブログファイルを用いてリカバリ処理が実行されます。このため処理負荷が発生します。また、作業用のディスク領域も必要です。

jpoug_ac2019_rman_012.png

データベースの複製

RMANのDUPLICATEコマンドを使用することで、既存のデータベースをコピーした複製データベースを簡単に作成できます。構造やデータがまったく同じ複製データベースは、アプリケーションの開発/テストなどに使用できます。

  • バックアップベースの複製 : ソースデータベースのバックアップを元にデータベースを複製
  • アクティブデータベース複製 : ソースデータベースにTARGETとして接続し、ソースデータベースを直接複製。ソースデータベースのバックアップは不要

バックアップベースの複製では、ソースデータベースのバックアップを元にデータベースを複製します。あらかじめデータベースのバックアップが取得されている必要があります。

jpoug_ac2019_rman_013.png

アクティブデータベースでは、データファイルやアーカイブログファイルは直接ソースデータベースから複製先ホストにコピーされます。

jpoug_ac2019_rman_014.png

RMANは凄い! もっとRMANを使いましょう!

ご紹介したように、RMANには多彩なバックアップ方法や復旧方法に加えて、データ転送やデータベース複製に関する機能があります。RMANは凄いツールです! みなさん、もっとRMANを使いましょう!

2019年11月21日

12/4 #JPOUG in 15 minutes #9 やりますよ

渡部です。JPOUGのイベント告知です。

in15m9.png

2019年12月4日(水)19:00 から JPOUG in 15 minutes #9 をやります。 JPOUG in 15 minutesはさまざまな内容の15分のショートセッションで構成されるイベントです。

Session # Organizer Title & Abstract
1 Guutara
ライセンスのラビリンス/サフラの迷宮 貴方は、オラクルライセンスから無事に抜け出すことができるでしょうか? ライセンスを購入した時から、あなたは、サフラの作ったライセンス契約の迷宮へ入り込むことになります。抜け出すには数々の迷路をくぐり抜けなければなりません。さて、この話は、あなたへの道しるべとなるのでしょうか...
2 石堂伶佳
flywayマイグレーション管理の体験記 flywayを使ったDBマイグレーション管理。何ができるの?何が便利なの?Oracleで実運用できるの?flywayをかじった体験談を交えつつ15分で概要を掴めるようお話したいと思います。
3 原田拓朗
"超"現実的に考える! Oracle CloudへのDB移行ガイド DBのクラウド化にはコスト、性能など多数の考慮点があり運用も変わります。 聞こえの良い言葉に惑わされず、現実的に安全な選択をするにはどうすれば良いか、他社クラウドとの比較や自律型DBの評価を交えながらノウハウをお伝えします。
4 畔勝 洋平
Linux Performance Analysis in 15 minutes dstat、htop などモダンなツールや strace、sysdig、perf など深掘りするツールを使わずに mpstat、top、free、pmap、iostat など古典的なツールを使った基本的な Linux パフォーマンス分析手法を紹介します。
モダンなツールを使った分析や深堀りの仕方はまた機会がありましたらご紹介します。
5 Kentaro Kitagawa(@keny_lala)
もしOracleDBAがMySQLを管理することになったときの注意点など Oracle Database管理者がもしMySQLも運用することになったときに、たぶん嵌まると思いますが、少しでも嵌まるポイントを減らせるように注意点など紹介したいと思います。
6 柴田 歩(@ora_gonsuke777)
Autonomous Database で味わう Oracle Database 19c新機能! 新機能、良いですよね。エンジニアは新しもの好き。でも 19c で注目度が高い新機能は軒並み Exadata専用......しかし Autonomous Database が有るじゃないか! Always Free で Oracle Cloud も益々盛り上がる中、「Automatic Indexing」「Hybrid Partition」「Real-Time Statistics」辺りをAutonomous Database で試してみた結果を、Feedback してみようかと思います。
7 内田裕一
Oracle Data Safe でデータを匿名化 検証、開発目的で業務データを取り扱う場合、機密データの匿名化が必要です。また、漏れなく匿名化できていることを確認する必要があります。 今回は Oracle Data Safe を使用した Oracle Cloud 上のデータベースにおける機密データの抽出と匿名化について、ご紹介したいと思います。

掲載順は実施順とは異なります。最新の情報は、http://www.jpoug.org/?p=2436 からご確認ください。

  • 時間と場所 : 2019年12月4日(水)19:00~20:30(開場および受付開始: 18時30分)
    東京都中央区月島1-15-7 パシフィックマークス月島1階
    エヌ・ティ・ティ・データ先端技術株式会社コラボレーションルーム
  • 申し込み: https://jpoug.doorkeeper.jp/events/100297

ご参加をお待ちしております!

2019年11月11日

#JPOUG Advent Calendar 2019で記事を書きませんか?

渡部です。JPOUG Advent Calendar 2019 のお誘いです。

ITエンジニアにとっての年末の風物詩といえば、Advent Calendarです。 Advent Calendarの本来の意味は、

アドベントカレンダー(Advent calendar)は、クリスマスまでの期間に日数を数えるために使用されるカレンダーである。アドベントの期間(イエス・キリストの降誕を待ち望む期間)に窓を毎日ひとつずつ開けていくカレンダーである。すべての窓を開け終わるとクリスマスを迎えたことになる。

なのですが、ココから転じて、ITコミュニティにおけるAdvent Calendarは、みんなで分担して1日1記事ずつ記事を書いてゆく活動として、広く認知され、市民権を得ています。というわけで、今年はJPOUG Advent Calendarやりますよ! :-)

ぜひ https://adventar.org/calendars/4154からエントリしてくださいませ。 2019年11月11日時点では、まだ空きはあります!

jpoug_advent2019.png

やることはシンプルで、

  1. https://adventar.org/calendars/4154 から担当日を指定して、エントリする。
  2. 担当日に自分のブログに記事を書き、公開する
  3. https://adventar.org/calendars/4154 に記事のURLを入力する

だけです!

個人的には

Oracle Database経験者が他RDBMS製品やサービスを使用したときに感じた、Oracle Databaseの好きなところと嫌いなところ

の記事が読みたいなぁ :-)

投稿内容は個人の意見であり、所属企業・部門見解を代表するものではありません。

プロフィール

Ryota WATABE / 渡部 亮太

100x100.jpg

  • Oracle ACE
  • AWS Certified Solutions Architect - Associate
  • ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数
  • プロフィール詳細はこちら

Norio Morita / 守田 典男

Norio Morita

  • 新しもの好きな Oracle Fighter。
  • 保有資格 : ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数