UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

Oracleのオープンバックアップを試してみる 〜オンラインREDOログからの復旧〜

Oracleのオープンバックアップを試してみる

〜オンラインREDOログからの復旧〜


0.更新履歴

  • 2001.10.14 新規作成

1.はじめに

 このドキュメントでは,Oracle8i R8.1.7 Personal Editionを使い,Oracleのオープンバックアップを実行して取得したバックアップで,リカバリを行ってみる.

 オープンバックアップとは,データベース稼動中にバックアップを行うものである.

2.今回の作業の計画

 今回のバックアップ&リカバリでは,次のような順序で確認してみる.

  • データベースは,ARCHIVELOGモードで稼働している.
  • 新規に表領域BK_TESTを作成する.
  • BK_TESTに表を作成して,データを登録する.
  • オンラインバックアップモードにする.
  • BK_TEST表領域を,別のファイルに複写する.
  • 複写後,再度データを登録する.
  • Oracleを停止して,表領域BK_TESTをOSから消す.
  • バックアップしたデータファイルBK_TESTを戻す.
  • リカバリを実行する.
  • データがどこまで復旧しているか確認する.

3.テスト用表領域を作成する.

  • コマンドプロンプトを起動する.
  • 次のように,SQL*Plusで接続して,テーブルスペースBK_TESTを作成する.

C:\>sqlplus system/manager

SQL*Plus: Release 8.1.7.0.0 - Production on 日 Oct 14 02:47:15 2001

(c) Copyright 2000 Oracle Corporation.  All rights reserved.


Personal Oracle8i Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
に接続されました。
SQL> create tablespace "BK_TEST"
  2  datafile 'D:\oracle\oradata\vaio\bk_test.dbf'
  3  size 5m
  4  ;

表領域が作成されました。

SQL>

  • 表領域bk_testに表testを作成する.
  • 作成した表testにデータを入れておく.

SQL> create table test (t1 char(1)) tablespace bk_test;

表が作成されました。

SQL> insert into test values('a');

1行が作成されました。

SQL> insert into test values('b');

1行が作成されました。

SQL> select t1 from test;

T
-
a
b

SQL>

4.オープンバックアップの実施

  • bk_test表をオープンバックアップモードにする.

SQL> alter tablespace bk_test begin backup;

表領域が変更されました。

SQL>

  • コマンドプロンプトに戻り,データファイルをOS上で複写する.

SQL> quit
Personal Oracle8i Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Productionとの接続が切断されました。

C:\>copy d:\oracle\oradata\vaio\bk_test.dbf d:\bk_test.dbf.bak
        1 個のファイルをコピーしました。

C:\>

  • 再度SQL*Plusで接続し,オープンバックアップを終了する.

C:\>sqlplus system/manager

SQL*Plus: Release 8.1.7.0.0 - Production on 日 Oct 14 03:04:21 2001

(c) Copyright 2000 Oracle Corporation.  All rights reserved.


Personal Oracle8i Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production
に接続されました。
SQL> alter tablespace bk_test end backup;

表領域が変更されました。

SQL>

  • test表のデータを追加する.

SQL> insert into test values('c');

1行が作成されました。

SQL> select t1 from test;

T
-
a
b
c

SQL>

5.データベースを壊す

  • データベースを停止する

SQL> connect internal
接続されました。
SQL> shutdown
データベースがクローズされました。
データベースがアンマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> quit
Personal Oracle8i Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Productionとの接続が切断されました。
C:\>

  • OSコマンドでデータファイルをリネームする.

C:\>ren d:\oracle\oradata\vaio\bk_test.dbf bk_test1.dbf

C:\>dir d:\oracle\oradata\vaio\
 ドライブ D のボリューム ラベルは DOCUMENT です
 ボリューム シリアル番号は 151C-1D09 です

 d:\oracle\oradata\vaio のディレクトリ

2001/10/08  13:31       <DIR>          .
2001/10/08  13:31       <DIR>          ..
2001/10/08  13:31       <DIR>          archive
2001/10/14  03:15            1,073,152 CONTROL01.CTL
2001/10/14  03:15            1,073,152 CONTROL02.CTL
2001/10/14  03:15            1,073,152 CONTROL03.CTL
2001/10/13  15:34            1,049,088 REDO01.LOG
2001/10/13  15:34            1,049,088 REDO02.LOG
2001/10/14  03:15            1,049,088 REDO03.LOG
2001/10/14  03:15          276,832,256 SYSTEM01.DBF
2001/10/14  03:15          268,443,648 RBS01.DBF
2001/10/14  03:15           52,436,992 USERS01.DBF
2001/10/14  03:15           75,505,664 TEMP01.DBF
2001/10/14  03:15           10,493,952 TOOLS01.DBF
2001/10/14  03:15           52,436,992 INDX01.DBF
2001/10/14  03:15            5,251,072 bk_test1.dbf
              13 個のファイル         747,767,296 バイト
               3 個のディレクトリ   3,780,657,152 バイトの空き領域
C:\>

  • Oracleを起動する.

C:\>sqlplus internal

SQL*Plus: Release 8.1.7.0.0 - Production on 日 Oct 14 03:21:13 2001

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

アイドル・インスタンスに接続しました。

SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area   15980572 bytes
Fixed Size                    75804 bytes
Variable Size               7634944 bytes
Database Buffers            8192000 bytes
Redo Buffers                  77824 bytes
データベースがマウントされました。
ORA-01157: ???????? 7???/?????????DBWR???????????????????
ORA-01110: ???????? 7 : D:\ORACLE\ORADATA\VAIO\BK_TEST.DBF

SQL>

  • データベースファイルが全てオープンできなかったのでシャットダウンする.
  • SQL*Plusも終了する.

SQL> shutdown
ORA-01109: ???????????????????

データベースがアンマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> quit
切断しました。
C:\>

6.データベースを治す

  • オープンバックアップを行っていたバックアップファイルを,下の場所に戻す.

C:\>copy d:\bk_test.dbf.bak d:\oracle\oradata\vaio\bk_test.dbf
        1 個のファイルをコピーしました。

C:\>

  • 再度,Oracleを起動する.

C:\>sqlplus internal

SQL*Plus: Release 8.1.7.0.0 - Production on 日 Oct 14 03:21:13 2001

(c) Copyright 2000 Oracle Corporation.  All rights reserved.

アイドル・インスタンスに接続しました。

SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area   15980572 bytes
Fixed Size                    75804 bytes
Variable Size               7634944 bytes
Database Buffers            8192000 bytes
Redo Buffers                  77824 bytes
データベースがマウントされました。
ORA-01157: ???????? 7???/?????????DBWR???????????????????
ORA-01110: ???????? 7 : D:\ORACLE\ORADATA\VAIO\BK_TEST.DBF

SQL>

  • データベースリカバリを実行する.

SQL> recover database
メディア・リカバリが完了しました。
SQL>

  • メッセージがこれだけの場合,オンラインREDOログファイルを使用して復旧したことになる.
  • データベースを再起動する.

SQL> shutdown
ORA-01109: データベースがオープンされていません。

データベースがアンマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL> startup
ORACLEインスタンスが起動しました。

Total System Global Area   15980572 bytes
Fixed Size                    75804 bytes
Variable Size               7634944 bytes
Database Buffers            8192000 bytes
Redo Buffers                  77824 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>

  • testテーブルの内容が復旧されているか確認する.

SQL> connect system/manager
接続されました。
SQL> select t1 from test;

T
-
a
b
c

SQL>



広告スペース
Google