

RMANでのバックアップとリカバリーを検証しています。

実現したいことはRMANバックアップした状態に戻したいのですが、下記のようにリストアするとバックアップ後に変更した状態にレコードの内容が反映してしまいます。

バックアップ直後レコード5件  
truncateした後にリストア

想定ではレコード5件のはずが、truncateした状態(レコード0件）になってしまう。

私の理解不足と思いますが、rmanでバックアップ＆リストアをすると 元のバックアップ前の状態に戻るものだと思っていましたが、 何か認識が違うのでしょうか？  
ご教示お願いいたします。

**実行環境:**  
RHEL 7.3  
Oreacle 12C

* * *

やったことは以下の通りです。

  1. テーブルの内容を表示

[code]

    SQL> select * from emp;
    
    EMP_ID NAME                  TYPE
    ---------- --------------------- -----
    1 sawa                  5
    2 yoko                  0
    3 matu                  0
    4 seki                  1
    5 ike                   1
    
[/code]

  2. フルバックアップを取得

[code]

    [oracle@study02 ~]$ rman target /
    
    Recovery Manager: Release 12.2.0.1.0 - Production on 月 9月 6 18:11:54 2021
    
    Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
    
    ターゲット・データベース: ORCL (DBID=1596608629)に接続されました
    
    RMAN>
    RMAN> backup incremental level 0 database;
    ・
    ・
    ・
    backupを21-09-06で開始しています
    リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
    Control File and SPFILE Autobackupを21-09-06で終了しました。
    
[/code]

  3. 表を一旦削除してみる。

[code]

    sqlplus TEST01/xxxxx@ORCL
    
    SQL*Plus: Release 12.2.0.1.0 Production on 月 9月 6 18:17:36 2021
    
    Copyright (c) 1982, 2016, Oracle.  All rights reserved.
    
    最終正常ログイン時間: 月 9月  06 2021 18:05:56 +09:00
    
    SQL> truncate table emp;
    
    表が切り捨てられました。
    
    SQL> set lin 100
    SQL> select * from emp;
    
    レコードが選択されませんでした。
    
    SQL>
    
[/code]

  4. インスタンスを落とし

[code]

    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    に接続されました。
    SQL> shutdown immediate
    データベースがクローズされました。
    データベースがディスマウントされました。
    ORACLEインスタンスがシャットダウンされました。
    SQL> startup mount
    データベースがマウントされました。
    SQL>
    
[/code]

  5. 先ほど取得したバックアップからリストア

[code]

    rman target /
    [oracle@study02 ~]$ rman target /
    
    Recovery Manager: Release 12.2.0.1.0 - Production on 月 9月 6 18:23:21 2021
    
    Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
    
    ターゲット・データベース: ORCL (DBID=1596608629、未オープン)に接続されました
    
    RMAN> restore database;
    
    restoreを21-09-06で開始しています
    リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
    チャネル: ORA_DISK_1が割り当てられました
    set/2021_09_06/o1_mf_nnnd0_TAG20210906T181307_jmcpx3yv_.bkp タグ=TAG20210906T181307
    チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
    チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:25
    restoreを21-09-06で終了しました
    
    RMAN> recover database;
    
    recoverを21-09-06で開始しています
    チャネルORA_DISK_1の使用
    
    メディア・リカバリを開始しています
    メディア・リカバリが完了しました。経過時間: 00:00:01
    ・
    ・
    ・
    recoverを21-09-06で終了しました
    
[/code]

  6. インスタンスを上げる

[code]

    SQL> alter database open;
    
    データベースが変更されました。
    
    SQL> exit
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionとの接続が切断されました。
    
    sqlplus TEST01/xxxxx@ORCL
    Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
    に接続されました。
    SQL> set lin 100
    SQL> select * from emp;
    
    レコードが選択されませんでした　←想定ではレコードが5件存在するはず
    
[/code]


CC BY-SA 4.0
2021-09-08T06:02:52.803
82337
2021-09-09T02:24:35.423
2021-09-09T02:24:35.423
3060
46812
question
oracle
rmanでバックアップした後に一部レコードを変更してリストアをするとバックアップ直後の状態に戻らない