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> |