• 検索結果がありません。

Microsoft Word - nvsi_020032jpr3_oracle9i_rac_ doc

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft Word - nvsi_020032jpr3_oracle9i_rac_ doc"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

Article ID: NVSI-020032JPr3 Created: 2003/04/07 Revised: 2003/09/12

Linux Oracle9i Real Application Clusters 動作検証

目次

1. はじめに 2. 検証環境 2.1 構成図 2.2 ハードウェア構成 2.3 ソフトウェア構成 2.4 ディスク構成 2.5 Oracle 構成 3. NetVault の Install および設定 3.1 NetVault Install 3.2 Device 登録

3.3 Oracle Online APM および Oracle RMAN APM インストール

3.4 Oracle Online APM および Oracle RMAN APM の設定 4. バックアップ運用方式について 5. オフライン・バックアップ/リストア 5.1 バックアップ 5.2 リストア 6. オンライン・バックアップ/リストア (Oracle Online APM 使用)

6.1 バックアップ 6.2 リストア

7. オンライン・バックアップ/リストア (Oracle RMAN APM 使用)

7.1 バックアップ

7.2 バックアップ・オプション 7.3 リストア

7.4 RMAN 差分バックアップ

8. Oracle Online APM を使用したリカバリ

8.1 特定表領域のリカバリ

8.2 SYSTEM 表領域を含むリカバリ 8.3 init ファイルのリカバリ

8.4 制御ファイルのリカバリ

9. Oracle RMAN APM を使用したリカバリ

9.1 特定表領域のリカバリ 9.2 SYSTEM 表領域を含むリカバリ 9.3 init ファイルのリストア 9.4 制御ファイルのリカバリ 10. 検証結果について バックボーン・ソフトウエア株式会社 〒163-0711 東京都新宿区西新宿2-7-1 新宿第一生命ビル11階 Phone: (03) 5908-3511 Fax: (03) 5908-3512 www.bakbone.co.jp

(2)

ETERNUS GR710 DDS4 Single GP5SDT401 PRIMERGY L100E Ethernet Switch PRIMERGY H450 PRIMERGY H450 1. はじめに

Linux 上で稼動する Oracle9i Real Application Clusters(以下 Oracle9i RAC)にて NetVault の動作検証作業を 実施しました。本ドキュメントでは検証作業や検証結果についてまとめたものです。また、本ドキュメントに記載さ れている内容はバックボーン・ソフトウエア株式会社が保証するものではありません。Oracle の Restore に関し てはその状況により、その順序、方法が異なりますので詳細に関しては Oracle の文献等をご確認いただくようお 願いいたします。 2. 検証環境 2.1 構成図 2.2 ハードウェア構成 (1) DB サーバ 表 2-1 ハードウェア構成(DB サーバ) [DB1:Node1] メーカー Fujitsu 機種 PRIMERGY H450

CPU Intel Xeon MP 1.6Ghz x4

メモリ 4GB 内蔵ディスク容量 36GB(U160,10000rpm) x3 FC Card PG-FC102 表 2-2 ハードウェア構成(DB サーバ) [DB2:Node2] メーカー Fujitsu 機種 PRIMERGY H450

CPU Intel Xeon MP 1.6Ghz x4

メモリ 4GB 内蔵ディスク容量 36GB(U160,10000rpm) x3 FC Card PG-FC102 (2) バックアップ・サーバ 表 2-3 ハードウェア構成(バックアップ・サーバ) [nvserver] メーカー Fujitsu 機種 PRIMERGY L100

CPU Intel Xeon 2.4Ghz

メモリ 256MB 内蔵ディスク容量 80GB(E-IDE,7200rpm) x2 SCSI Card PG-128 (3) ディスク 表 2-4 ハードウェア構成(ディスク) [GR710] メーカー Fujitsu 機種 ETERNUS GR710 I/F FC

(3)

(4) テープ 表 2-5 ハードウェア構成(テープ装置) [DDS4] メーカー Fujitsu 機種 GP5SDT401 (外付け DDS4 シングルドライブ) I/F SCSI 2.3 ソフトウェア構成 表 2-6 ソフトウェア構成 [DB1] ホスト db1

OS RedHat Linux Advanced Server2.1

DB Software Oracle9i R9.2.0.2 :ORACLE_SID=rac1

Cluster Software Oralce Cluster Manager R9.2.0.2

Backup Software NetVault 7.0.0 R030517 Client Oracle Online APM v3.9 Oracle RMAN APM v3.0

表 2-7 ソフトウェア構成 [DB2]

ホスト db2

OS RedHat Linux Advanced Server2.1

DB Software Oracle9i R9.2.0.2 :ORACLE_SID=rac2

Cluster Software Oracle Cluster Manager R9.2.0.2

Backup Software NetVault 7.0.0 R030517 Client Oracle Online APM v3.9 Oracle RMAN APM v3.0

表 2-8 ソフトウェア構成 [nvserver]

ホスト nvserver

OS RedHat Linux Advanced Server2.1

Backup Software NetVault 7.0.0 R030517 Server

2.4 ディスク構成

表 2-9 パーティション構成 [DB1]

パーティション Type マウントポイント/Raw Device 使用

/dev/sda1 Internal:File /boot

/dev/sda2 Internal:File /var

/dev/sda3 Internal:File /

/dev/sda5 Internal:File /opt

/dev/sda6 Internal:File /var/crash

/dev/sda8 Internal:File /usr

/dev/sda9 Internal:File /home

/dev/sda10 Internal:File /var/opt

/dev/sda11 Internal:File /etc/opt

/dev/sdb1 Shared:Raw /dev/raw/raw1 <- Oracle: quorum

/dev/sdb2 Shared:Raw /dev/raw/raw2 <- Oracle: control_1

/dev/sdb3 Shared:Raw /dev/raw/raw3 <- Oracle: system

/dev/sdb5 Shared:Raw /dev/raw/raw4 <- Oracle: temp

/dev/sdb6 Shared:Raw /dev/raw/raw5 <- Oracle: redo1_1

/dev/sdb7 Shared:Raw /dev/raw/raw6 <- Oracle: redo1_2

/dev/sdb8 Shared:Raw /dev/raw/raw7 <- Oracle: redo2_1

/dev/sdb9 Shared:Raw /dev/raw/raw8 <- Oracle: redo2_2

/dev/sdb10 Shared:Raw /dev/raw/raw9 <- Oracle: undo_1

/dev/sdb11 Shared:Raw /dev/raw/raw10 <- Oracle: undo_1

/dev/sdb12 Shared:Raw /dev/raw/raw11 <- Oracle: rman_repository

/dev/sdb13 Shared:Raw /dev/raw/raw12 <- Oracle: sptbs

/dev/sdb14 Shared:Raw /dev/raw/raw14 <- Oracle: data1

/dev/sdc1 Shared:File $ORACLE_HOME/archive/db1

(4)

表 2-10 パーティション構成 [DB2]

パーティション Type マウントポイン/Raw Device 使用

/dev/sda1 Internal:File /boot

/dev/sda2 Internal:File /var

/dev/sda3 Internal:File /

/dev/sda5 Internal:File /opt

/dev/sda6 Internal:File /var/crash

/dev/sda8 Internal:File /usr

/dev/sda9 Internal:File /home

/dev/sda10 Internal:File /var/opt

/dev/sda11 Internal:File /etc/opt

/dev/sdb1 Shared:Raw /dev/raw/raw1 <- Oracle: quorum

/dev/sdb2 Shared:Raw /dev/raw/raw2 <- Oracle: control_1

/dev/sdb3 Shared:Raw /dev/raw/raw3 <- Oracle: system

/dev/sdb5 Shared:Raw /dev/raw/raw4 <- Oracle: temp

/dev/sdb6 Shared:Raw /dev/raw/raw5 <- Oracle: redo1_1

/dev/sdb7 Shared:Raw /dev/raw/raw6 <- Oracle: redo1_2

/dev/sdb8 Shared:Raw /dev/raw/raw7 <- Oracle: redo2_1

/dev/sdb9 Shared:Raw /dev/raw/raw8 <- Oracle: redo2_2

/dev/sdb10 Shared:Raw /dev/raw/raw9 <- Oracle: undo_1

/dev/sdb11 Shared:Raw /dev/raw/raw10 <- Oracle: undo_1

/dev/sdb12 Shared:Raw /dev/raw/raw11 <- Oracle: rman_repository

/dev/sdb13 Shared:Raw /dev/raw/raw12 <- Oracle: sptbs

/dev/sdb14 Shared:Raw /dev/raw/raw14 <- Oracle: data1

/dev/sdc2 Shared:File $ORACLE_HOME/archive/db2

db1:$ORACLE_HOME/archive/db1 NFS:File $ORACLE_HOME/archive/db1

※Oracle での Raw Device はすべて直接ではなく、/opt/app/oracle/oradata 以下からシンボリック・リンクを /dev/raw/rawX に対して行うことにより使用しています。

※それぞれの$ORACLE_HOME は/opt/app/oracle/product/9.2.0 になります。

表 2-11 パーティション構成 [DBBACKUP]

パーティション Type マウントポイン/Raw Device 使用

/dev/sda1 Internal:File /boot

/dev/sda2 Internal:File /var

/dev/sda3 Internal:File /

/dev/sda5 Internal:File /opt

/dev/sda6 Internal:File /var/crash

/dev/sda8 Internal:File /usr

/dev/sda9 Internal:File /home

/dev/sda10 Internal:File /var/opt

/dev/sda11 Internal:File /etc/opt

2.5 Oracle 構成 (1) アーカイブ・ログ格納方法 各ノードのアーカイブ・ログ・ボリュームを NFS により相互マウント (表 2-9 および 2-10 パーティション構成参照) initrac1.ora/initrac2.ora 設定内容(抜粋) ### Archive Log log_archive_start=true rac1.log_archive_dest_1="location=/opt/app/oracle/product/9.2.0/archive/db2 MANDATORY" rac1.log_archive_dest_2="location=/opt/app/oracle/product/9.2.0/archive/db1 MANDATORY " rac2.log_archive_dest_1="location=/opt/app/oracle/product/9.2.0/archive/db1 MANDATORY " rac2.log_archive_dest_2="location=/opt/app/oracle/product/9.2.0/archive/db2 MANDATORY " log_archive_format=archive_%t_%s.log ※今回の構成では SPFILE は使用しておりません。SPFILE 使用時も設定は準拠します。 ※rac1 および rac2 は、各マシンの ORACLE_SID を示しています。

(5)

(2) テスト・データ作成

tablespace DATA_TS として約 12 万件のテスト・データを登録。

(3) Archive Log モードの設定および確認

※オフライン・バックアップの場合には、必要ありません。Oracle Online APM および Oracle RMAN APM を使 用時には設定が必須です。

3. NetVault の Install および設定

3.1 NetVault Install

通常の手順に従って、db1 および db2 には、NetVault Client、nvserver には NetVault Server のインストールを 実行します。その後、NetVault Server の Client Management より db1 および db2 各ノードのマシンを登録しま す。

図 3-1 NetVault Client Management 登録

3.2 Device 登録

NetVault Device Management より、テープデバイスの登録を行います。

(6)

3.3 Oracle Online APM および Oracle RMAN APM インストール

Client Management -> NetVault Machine 名で右クリックします。Install Software を選択して、必要な APM を インストールします。

図 3-3 Oracle Online APM Install 図 3-4 Oracle RMAN APM Install

RMAN については、APM インストール後、モジュールと一緒に含まれているドキュメントに従い、インスタンスを停 止後、Oracle の実行ファイルをコンパイルして再作成する必要があります。

また、クライアント側の CLI から rman を使用して、バックアップやリストアを実行するためには、NetVault サーバ 側で nvpluginaccess コマンドを使用して、クライアントに対する許可の設定を行う必要があります。また、この作 業はインストールを行ったノード数分実行する必要があります。

[root@nvserver util]# ./nvpluginaccess -remove -client db1 Removed client stanza 'db1'

[root@nvserver util]# ./nvpluginaccess -client db1 -account default Please select a plugin you wish to allow client 'db1' to access: 1) Informix plugin

2) Oracle RMAN plugin

3) Informix and Oracle RMAN plugins 4) Specify plugin name

2

Please enter the password for the account 'default': password Successfully added client 'db1'

3.4 Oracle Online APM および Oracle RMAN APM の設定

各項目に Oracle の設定に合わせて登録します。

図 3-5 Oracle Online APM 設定

表 3-1 Oracle Online APM 設定項目

項目 内容

SID インスタンス毎の SID

Home ORACLE_HOME

Owner Oracle User

Group Oracle Group

(7)

Init Files Init<SIDname>.ora ファイル

Control File Save Location Oracle ユーザーが権限のある Backup された制御ファイル保存先

Archive Directories アーカイブログディレクトリ

Archive File Pattern アーカイブログ形式

※複数ノードの Archive Log を取得するには”,”にてディレクトリ指定を区切り、複数指定が可能。 ※今回の NLS_LANG は Oracle 側の設定として日本語を使用しませんでした。

実際の環境に合わせる必要があります。

図 3-6 Oracle RMAN APM 設定

表 3-1 Oracle RMAN APM 設定項目

項目 内容

SID インスタンス毎の SID

Home ORACLE_HOME

RMAN RMAN 実行ファイルパス

Owner Oracle User

Group Oracle Group

Select NLS_LANG NLS_LANG

4. バックアップ運用方式について (1) バックアップ取得方法 1 つのノードから NetVault Server に接続されたテープ装置にネットワーク経由にてバックアップを実行。 (2) バックアップ対象ファイル データファイル [共有ストレージ] アーカイブログファイル [ローカル -> NFS 経由により共有化] 制御ファイル [共有ストレージ] 初期化パラメータファイル [ローカル] オンライン REDO ログ [共有ストレージ] (オフラインの場合のみ取得) その他必要に応じて取得(プログラムファイル等) [ローカル] (3) バックアップ運用方式 オフラインバックアップ

オンラインバックアップ (Oracle Online APM 使用) オンラインバックアップ (Oracle RMAN APM 使用) (4) Oracle9i RAC に関する注意 RAC は共有されたストレージ上にあるデータ、ローカルにあるデータ、NFS 経由等によりどこからも参照でき るデータ等があり、それらを不足なくバックアップすることが必要です。また、RMAN 使用時にリカバリカタロ グを使用する際には、リカバリカタログ自身を RAC 構成とは異なる Oracle サーバに保持したり、そのバック アップを行うことが必要となります。その他一般的なバックアップに関する注意事項は、通常のスタンドアロン の Oracle 環境と違いはありません。

(8)

5. オフラインバックアップ

すべてのノードにて Oracle のインスタンスをすべて停止した状態にて、オフラインバックアップを実行。ノード毎に 固有のファイルについては、個別に取得を行います。バックアップ終了後、再びインスタンスを起動します。

5.1 バックアップ

(1) データファイル、制御ファイル、オンライン REDO ログファイル

今回の検証では Oracle9i RAC では、共有ディスク上の Raw Device を使用しました。そのため NetVault で バックアップを行う際には、Raw Device プラグインを使用し、ブロックデバイス指定を行う必要があります。 Oracle 側では Raw マッピングされたデバイスファイルを使用しますが、そのマッピングを raw コマンドを使用 して確認するようにしてください。

※ Raw デバイス以外に OCFS(Oracle Cluster File System)や NAS を使用する方法もあります。その場合に は、File System Plugin を使用します。

図 5-1 NetVault Raw Device バックアップ

アーカイブログファイル、初期化パラメータファイル、プログラムファイルに関しては File System 上に作成される ため、File System Plugin にて取得します。

(9)

5.2 リストア

リストア時は、Oracle であることを意識せずに単なるファイルや Raw Device イメージとしてのリストアを実行する だけです。その際には、必ずすべてのノードでインスタンスを停止している必要があります。

各リストアを行う際に、リストアするディレクトリやデバイスファイルを変更することが可能です。

図 5-3 NetVault Raw Device リストア

(10)

6. オンラインバックアップ (Oracle Online APM 使用)

6.1 バックアップ

Oracle Online APM を使用して対象をすべて選択し、バックアップを実行します。[Backup Options]タブでは、 Read Only および Offline の表領域もバックアップするオプションがデフォルトでオンになっています。

図 6-1 Oracle Online バックアップ 6.2 リストア データベースに障害が発生した際に、必要なリカバリに応じて各種データのリストアを実行します。リストアの際に は、インスタンスを停止、または特定表領域のみオフラインにする必要があります。 図 6-2 全ての表領域リストア 図 6-3 特定の表領域のみリストア 図 6-4 アーカイブログリストア 図 6-5 バックアップされた制御ファイルのリストア

(11)

7. オンライン・バックアップ (Oracle RMAN APM 使用)

7.1 バックアップ

Oracle RMAN APM を使用して対象をすべて選択し、バックアップを実行します。初期化パラメータファイルにつ いては、通常の File System Plugin を使用して別途取得する必要があります。

図 7-1 Oracle RMAN バックアップ

7.2 バックアップ・オプション

すべてのオプションは、RMAN のオプションに準拠しており、運用形態に合わせて選択を行います。

リカバリカタログ使用の有無の選択、アーカイブログバックアップ後の削除指定、複数チャネル使用によるパラレ ルバックアップ、差分・増分等の指定が可能です。(詳細は Oracle RMAN APM マニュアルをご参照ください。) 次の例は、2ch 割り当てることにより、パラレルにバックアップが行われていることが示されています。

複数チャネル使用する場合には、同数以上のドライブが必要であり、ハード以上の割り当てを行うとエラーになり ます。

(12)

図 7-3 2ch によるパラレルバックアップが行われている様子(Job Monitor)

図 7-4 Oracle RMAN backup Options [Tablespace]

図 7-5 Oracle RMAN backup Options [Archive Logs]

(13)

7.3 リストア

RMAN のリストアはすべて、Oracle 側の Recovery Manager から操作を行います。NetVault の Restore 画面 からは、Backup Piece Name を確認することが可能です。

図 7-7

また RMAN の list backup によっても、詳細なバックアップの結果を確認することが可能です。

RMAN> list backup;

List of Backup Sets ===================

BS Key Type LV Size Device Type Elapsed Time Completion Time --- ---- -- --- --- --- ---

25 Full 193M SBT_TAPE 00:01:49 09-MAY-03

BP Key: 26 Status: AVAILABLE Tag: NV_CATALOG_DDS_FULL Piece Name: nvserver:#172:db1:RACDB_1_493581179

Controlfile Included: Ckp SCN: 134595 Ckp time: 09-MAY-03 List of Datafiles in backup set 25

File LV Type Ckp SCN Ckp Time Name ---- -- ---- --- --- ----

1 Full 134596 09-MAY-03 /opt/app/oracle/oradata/system 2 Full 134596 09-MAY-03 /opt/app/oracle/oradata/undo_1 3 Full 134596 09-MAY-03 /opt/app/oracle/oradata/undo_2

4 Full 134596 09-MAY-03 /opt/app/oracle/oradata/rman_repository 5 Full 134596 09-MAY-03 /opt/app/oracle/oradata/sptbs

6 Full 134596 09-MAY-03 /opt/app/oracle/oradata/data1

BS Key Size Device Type Elapsed Time Completion Time --- --- --- --- ---

49 25M SBT_TAPE 00:00:16 09-MAY-03

BP Key: 50 Status: AVAILABLE Tag: TAG20030509T175510 Piece Name: nvserver:#172:db1:RACDB_2_493581310

List of Archived Logs in backup set 49

Thrd Seq Low SCN Low Time Next SCN Next Time ---- --- --- --- --- --- 1 1 127478 09-MAY-03 127744 09-MAY-03 1 2 127744 09-MAY-03 134567 09-MAY-03 1 3 134567 09-MAY-03 134707 09-MAY-03 1 4 134707 09-MAY-03 134722 09-MAY-03 2 1 127478 09-MAY-03 127742 09-MAY-03

(14)

2 2 127742 09-MAY-03 134570 09-MAY-03 2 3 134570 09-MAY-03 134705 09-MAY-03 2 4 134705 09-MAY-03 134720 09-MAY-03

BS Key Type LV Size Device Type Elapsed Time Completion Time --- ---- -- --- --- --- ---

68 Full 2M SBT_TAPE 00:00:15 09-MAY-03

BP Key: 69 Status: AVAILABLE Tag: NV_CATALOG_DDS_FULL Piece Name: nvserver:#172:db1:RACDB_3_493581338

Controlfile Included: Ckp SCN: 134760 Ckp time: 09-MAY-03

7.4 RMAN 差分バックアップ

まず、現在の状況の確認を行います。

表領域 DATA_TS 内に Trousers という 12 万件の登録があるテーブルが作成されています。

SQL> select count(*) from trousers;

COUNT(*) --- 127440 現在は、127440 件であることが確認できました。 次に、更新のためのデータを INSERT します。 SQL> @orcl_change1.sql

SQL> select count(*) from trousers; COUNT(*)

--- 127455

これにより 15 件追加されたことが確認できます。

次に NetVault の GUI を使用して、Oracle RMAN APM のプラグインを開き対象となる表領域等を指定したあと、 Backup Option の Backup Type の所で、”Incremental”を選択し Level を入力します。(例では 2 に設定しまし た。)

(15)

バックアップ終了後、RMAN の list backup により、Type が”Incr”および LV が”2”になっていることが確認できま す。

RMAN> list backup;

BS Key Type LV Size Device Type Elapsed Time Completion Time --- ---- -- --- --- --- ---

100 Incr 2 189M SBT_TAPE 00:01:22 12-MAY-03

BP Key: 101 Status: AVAILABLE Tag: TAG20030512T184221 Piece Name: nvserver:#281:db1:RACDB_4_493843341

Controlfile Included: Ckp SCN: 93333 Ckp time: 12-MAY-03 List of Datafiles in backup set 100

File LV Type Ckp SCN Ckp Time Name ---- -- ---- --- --- ----

1 0 Incr 93334 12-MAY-03 /opt/app/oracle/oradata/system 2 0 Incr 93334 12-MAY-03 /opt/app/oracle/oradata/undo_1 3 0 Incr 93334 12-MAY-03 /opt/app/oracle/oradata/undo_2

4 0 Incr 93334 12-MAY-03 /opt/app/oracle/oradata/rman_repository 5 0 Incr 93334 12-MAY-03 /opt/app/oracle/oradata/sptbs

6 0 Incr 93334 12-MAY-03 /opt/app/oracle/oradata/data1

BS Key Size Device Type Elapsed Time Completion Time --- --- --- --- ---

130 39M SBT_TAPE 00:00:20 12-MAY-03

BP Key: 131 Status: AVAILABLE Tag: TAG20030512T184352 Piece Name: nvserver:#281:db1:RACDB_5_493843433

List of Archived Logs in backup set 130

Thrd Seq Low SCN Low Time Next SCN Next Time ---- --- --- --- --- --- 1 1 85993 12-MAY-03 86453 12-MAY-03 1 2 86453 12-MAY-03 86457 12-MAY-03 1 3 86457 12-MAY-03 93210 12-MAY-03 1 4 93210 12-MAY-03 93216 12-MAY-03 1 5 93216 12-MAY-03 93367 12-MAY-03 1 6 93367 12-MAY-03 93373 12-MAY-03 2 1 85993 12-MAY-03 86451 12-MAY-03 2 2 86451 12-MAY-03 86454 12-MAY-03 2 3 86454 12-MAY-03 86457 12-MAY-03 2 4 86457 12-MAY-03 93208 12-MAY-03 2 5 93208 12-MAY-03 93210 12-MAY-03 2 6 93210 12-MAY-03 93214 12-MAY-03 2 7 93214 12-MAY-03 93216 12-MAY-03 2 8 93216 12-MAY-03 93365 12-MAY-03 2 9 93365 12-MAY-03 93367 12-MAY-03 2 10 93367 12-MAY-03 93370 12-MAY-03 2 11 93370 12-MAY-03 93373 12-MAY-03

BS Key Type LV Size Device Type Elapsed Time Completion Time --- ---- -- --- --- --- ---

167 Full 2M SBT_TAPE 00:00:14 12-MAY-03

BP Key: 168 Status: AVAILABLE Tag: TAG20030512T184419 Piece Name: nvserver:#281:db1:RACDB_6_493843460

(16)

8. Oracle Online APM を使用したリカバリ

各メディア障害を実際に発生させ、そのリカバリ手順について確認します。ここでは、実際のファイルのリストアに Oracle Online APM の機能を使用します。ファイルのリストア方法については、項目 6.2 を参照してください。

メディア障害の種類について下記の内容をテストします。 ① 特定表領域 ② SYSTEM 表領域(データベース全体) ③ 制御ファイル 8.1 特定表領域のリカバリ ① テストとして作成した DATA_TS のボリュームに故意にファイルシステムを作成し、使用できない状態にしま す。 はじめに、破壊前の状態を確認します。 SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 85748 09-MAY-03 2 NOT ACTIVE 85822 09-MAY-03 3 NOT ACTIVE 85899 09-MAY-03 4 NOT ACTIVE 85718 09-MAY-03 5 NOT ACTIVE 85733 09-MAY-03 6 NOT ACTIVE 85690 09-MAY-03

6 rows selected.

② DATA_TS が格納されているボリュームに mkfs をかけてデータを破壊します。

[root@db1 oradata]# mkfs -j /dev/sdb14 もう一度、確認します。

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 85748 09-MAY-03 2 NOT ACTIVE 85822 09-MAY-03 3 NOT ACTIVE 85899 09-MAY-03 4 NOT ACTIVE 85718 09-MAY-03 5 NOT ACTIVE 85733 09-MAY-03 6 WRONG FILE TYPE 0

6 rows selected.

③ FILE#6 が WRONG FILE TYPE として使用できない状態になります。 そのため、DATA_TS を強制的に offline の状態にします。

SQL> alter tablespace DATA_TS offline immediate;

Tablespace altered.

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 85748 09-MAY-03 2 NOT ACTIVE 85822 09-MAY-03 3 NOT ACTIVE 85899 09-MAY-03 4 NOT ACTIVE 85718 09-MAY-03

(17)

5 NOT ACTIVE 85733 09-MAY-03

④ NetVault により特定表領域のリストアを行います。(図 6-2 参照)

⑤ リストア後、テーブルスペースのリカバリを行います。AUTO により自動的に必要なアーカイブログが適用さ れます。また、両方のノードのアーカイブログが必要な事に注意が必要です。

SQL> recover tablespace DATA_TS;

ORA-00279: change 85690 generated at 05/09/2003 14:36:19 needed for thread 1 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_1_5.log ORA-00280: change 85690 for thread 1 is in sequence #5

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto

ORA-00279: change 85690 generated at 05/09/2003 14:26:12 needed for thread 2 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_2_5.log ORA-00280: change 85690 for thread 2 is in sequence #5

Log applied.

Media recovery complete.

⑥ メディアリカバリが完了したことを確認します。 その後、表領域を online にして状態を確認します。

SQL> alter tablespace DATA_TS online;

Tablespace altered.

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 85748 09-MAY-03 2 NOT ACTIVE 85822 09-MAY-03 3 NOT ACTIVE 85899 09-MAY-03 4 NOT ACTIVE 85718 09-MAY-03 5 NOT ACTIVE 85733 09-MAY-03 6 NOT ACTIVE 85690 09-MAY-03

6 rows selected. 8.2 SYSTEM 表領域を含むリカバリ ① SYSTEM 表領域に障害が発生したとします。 Oracle では一般的に SYSTEM 表領域はオフラインにできないため、そのリストア時はシステムを停止する必要 があります。SYSTEM 表領域のリストアを行った後、データベース全体のリカバリを行う必要があります。 ② SYSTEM を mkfs により破壊

[root@db1 oradata]# mkfs -j /dev/sdb3

③ また、アーカイブログについても障害が発生したとします。

[oracle@db1 oracle]$ cd /opt/app/oracle/product/9.2.0/archive/db1 [oracle@db1 db1]$ ls

archive_1_1.log archive_1_4.log archive_2_1.log archive_2_4.log archive_1_2.log archive_1_5.log archive_2_2.log archive_2_5.log archive_1_3.log archive_1_6.log archive_2_3.log archive_2_6.log [oracle@db1 db1]$ rm ./*log

(18)

[oracle@db1 db1]$ ls [oracle@db1 db1]$

④ SYSTEM 表領域に障害が発生したためオフラインにはできません。その旨のメッセージが表示されます。

SQL> alter tablespace system offline immediate; alter tablespace system offline immediate *

ERROR at line 1:

ORA-01541: system tablespace cannot be brought offline; shut down if necessary

⑤ 両方のノードでシャットダウンを実行します。SYSTEM 表領域が破損した場合には、正常に終了処理を行う ことができないため、強制終了を行います。

SQL> shutdown abort

ORACLE instance shut down.

⑥ NetVault によりすべての表領域のリストアを実行します。(図 6-2 参照) ※アーカイブログのリストアについては、そのアーカイブログ先の指定方法、バックアップ方法によってリスト ア手順が異なります。下記内容はすべて同一ディレクトリにてすべてのノードのログが参照できるようになっ ていると仮定します。 ⑦ mount 状態で起動します。 SQL> startup mount ORACLE instance started.

Total System Global Area 319795432 bytes Fixed Size 450792 bytes

Variable Size 100663296 bytes Database Buffers 218103808 bytes Redo Buffers 577536 bytes Database mounted.

SQL>

⑧ データベースのリカバリを試みますが、アーカイブログがないため失敗します。

SQL> recover database;

ORA-00279: change 85690 generated at 05/09/2003 14:36:19 needed for thread 1 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_1_5.log ORA-00280: change 85690 for thread 1 is in sequence #5

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto

ORA-00308: cannot open archived log

'/opt/app/oracle/product/9.2.0/archive/db1/archive_1_5.log' ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory Additional information: 3

⑨ NetVault によりアーカイブログのリストアを実行します。(図 6-4 参照)

リカバーデータベースを実行

SQL> recover database;

ORA-00279: change 85690 generated at 05/09/2003 14:36:19 needed for thread 1 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_1_5.log ORA-00280: change 85690 for thread 1 is in sequence #5

(19)

auto

ORA-00279: change 85690 generated at 05/09/2003 14:26:12 needed for thread 2 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_2_5.log ORA-00280: change 85690 for thread 2 is in sequence #5

Log applied.

Media recovery complete.

⑩ データベースのリカバリを実行した後、データベースをオープンして確認します。

SQL> alter database open;

Database altered.

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 85748 09-MAY-03 2 NOT ACTIVE 85822 09-MAY-03 3 NOT ACTIVE 85899 09-MAY-03 4 NOT ACTIVE 85718 09-MAY-03 5 NOT ACTIVE 85733 09-MAY-03 6 NOT ACTIVE 85690 09-MAY-03

6 rows selected.

⑪ もう一つのノードも起動します。

8.3 init ファイルのリカバリ

Oracle のシステムパラメータが格納されている init ファイルは、Oracle のデータベース起動に必要不可欠な重要 なファイルです。

① init ファイルの確認と削除を行います。

[oracle@db1 oracle]$ cd $ORACLE_HOME/dbs [oracle@db1 dbs]$ ls -al initrac1.ora

-rw-r--r-- 1 oracle dba 1545 5 月 8 17:27 initrac1.ora [oracle@db1 dbs]$ rm ./initrac1.ora

[oracle@db1 dbs]$ ls -al initrac1.ora

ls: initrac1.ora: そのようなファイルやディレクトリはありません

② rac1 インスタンスをシャットダウンします。

SQL> shutdown Database closed. Database dismounted. ORACLE instance shut down.

③ rac1 インスタンスを起動しようとしますが、init ファイルがないため、失敗します。

SQL> startup

ORA-01078: failure in processing system parameters

LRM-00109: could not open parameter file '/opt/app/oracle/product/9.2.0/dbs/init rac1.ora'

④ バックアップされた init ファイルのリストアを NetVault の GUI を使用して実行します。

(20)

[oracle@db1 dbs]$ cd $ORACLE_HOME/dbs [oracle@db1 dbs]$ ls -al initrac1.ora

-rw-r--r-- 1 oracle dba 1545 5 月 9 15:49 initrac1.ora

SQL> startup

ORACLE instance started.

Total System Global Area 319795432 bytes Fixed Size 450792 bytes

Variable Size 100663296 bytes Database Buffers 218103808 bytes Redo Buffers 577536 bytes Database mounted. Database opened. 正常に起動することが確認できました。 8.4 制御ファイルのリカバリ 通常は、異なるディスク装置に振り分けられて多重化された制御ファイルを使用しますが、そのすべての制御ファ イルが使用できない状態になった際には、バックアップされた制御ファイルを使用してリカバリを行います。 ① 制御ファイルの確認をします。

SQL> select * from v$controlfile;

STATUS --- NAME --- /opt/app/oracle/oradata/control_1 ② コントロールファイルを破壊して、表示の確認を行います。

[root@db1 root]# mkfs -j /dev/sdb2

SQL> select * from v$controlfile; select * from v$controlfile *

ERROR at line 1:

ORA-03113: end-of-file on communication channel

③ この状態ではシャットダウンも起動もできないことがわかります。

SQL> shutdown abort;

ORA-24324: service handle not initialized

ORA-01041: internal error. hostdef extension doesn't exist

SQL> startup

ORACLE instance started.

Total System Global Area 319795432 bytes Fixed Size 450792 bytes

Variable Size 100663296 bytes Database Buffers 218103808 bytes Redo Buffers 577536 bytes

ORA-00227: corrupt block detected in controlfile: (block 1, # blocks 1) ORA-00202: controlfile: '/opt/app/oracle/oradata/control_1'

(21)

⑤ リストア後、ファイルとなっているバックアップされた制御ファイルを dd コマンドを使用して Raw Device とし て書き込みを行います。

[oracle@db1 oracle]$ cd $ORACLE_HOME/dbs

[oracle@db1 dbs]$ dd if=./ctrlrac1.sav of=/opt/app/oracle/oradata/control_1 読み込んだブロック数は 4112+0

書き込んだブロック数は 4112+0

⑥ バックアップ制御ファイルを書き込み後、起動を試みるが RESETLOGS が必要である旨が表示されます。

SQL> startup

ORACLE instance started.

Total System Global Area 319795432 bytes Fixed Size 450792 bytes

Variable Size 100663296 bytes Database Buffers 218103808 bytes Redo Buffers 577536 bytes Database mounted.

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

⑦ また、単純なリカバーはできません。

SQL> recover database;

ORA-00283: recovery session canceled due to errors

ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

⑧ リカバーデータベース using backup controlfile until cancel を行って、ログの適用を行います。

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 85971 generated at 05/09/2003 14:29:42 needed for thread 1 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_1_5.log ORA-00280: change 85971 for thread 1 is in sequence #5

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto

ORA-00279: change 85971 generated at 05/09/2003 14:26:12 needed for thread 2 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_2_5.log ORA-00280: change 85971 for thread 2 is in sequence #5

ORA-00308: cannot open archived log

'/opt/app/oracle/product/9.2.0/archive/db1/archive_1_8.log' ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory Additional information: 3

ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent

ORA-01110: data file 1: '/opt/app/oracle/oradata/system'

オンライン REDO ログを適用する必要がある場合(上記の場合 archive_1_8.lo が該当)その時点まで適用される ため、再度 recover database を実行し、オンライン REDO ログのパスを指定します。

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 126699 generated at 05/09/2003 15:42:15 needed for thread 1 ORA-00289: suggestion :

(22)

ORA-00280: change 126699 for thread 1 is in sequence #8

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

#オンライン REDO ログのファイルパスを設定数分入力します。(今回はシンボリックリンクファイルを指定)

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /opt/app/oracle/oradata/redo1_2

Log applied.

Media recovery complete.

⑨ 通常のオープンを試みると RESETLOGS option を使用するメッセージが表示されます。そのため、 RESETLOGS オプション付でオープンします。

SQL> alter database open noresetlogs; alter database open noresetlogs *

ERROR at line 1:

ORA-01588: must use RESETLOGS option for database open

SQL> alter database open resetlogs; Database altered.

⑩ 昔のログはいらないので削除します

[oracle@db1 oracle]$ cd /opt/app/oracle/product/9.2.0/archive/db1 [oracle@db1 db1]$ rm ./*log

[oracle@db1 db1]$ ls [oracle@db1 db1]$

[oracle@db1 db1]$ cd ../db2 [oracle@db1 db2]$ ls

archive_1_1.log archive_1_5.log archive_2_2.log archive_2_6.log archive_1_2.log archive_1_6.log archive_2_3.log archive_2_7.log archive_1_3.log archive_1_7.log archive_2_4.log

archive_1_4.log archive_2_1.log archive_2_5.log [oracle@db1 db2]$ rm ./*log

[oracle@db1 db2]$ ls [oracle@db1 db2]$

⑪ 試しに log switch を強制的に行うと、ログがリセットされ 1 番から作成されていることが確認できます。

SQL> alter system archive log current;

System altered.

[oracle@db1 oracle]$ cd /opt/app/oracle/product/9.2.0/archive/db1 [oracle@db1 db1]$ ls [oracle@db1 db1]$ ls archive_1_1.log archive_2_1.log ⑫ リセットログで起動後はログ順序番号がリセットされる(1 に戻る)ため既存のバックアップデータは利用でき なくなります。そのため、オープン後必ず再度 NetVault を使用してフルバックアップを実行するようにします。 ⑬ バックアップ制御ファイルを使用してリカバリすると、ローカル管理一次表領域から一次ファイルのエントリが 削除されるため再追加をします。

SQL> alter tablespace temp add tempfile '/opt/app/oracle/oradata/temp' size 100m reuse;

(23)

9. Oracle RMAN APM を使用したリカバリ

各メディア障害を実際に発生させ、そのリカバリ手順について確認します。ここでは、実際のファイルのリストアに Oracle RMAN APM の機能を使用します。ファイルのリストア方法については、各項目毎に例が記載されており ますが、詳細な手順につきましては Oracle 社が提供する Recovery Manager のマニュアルをご参照ください。

メディア障害の種類について下記の内容をテストします。 ① 特定表領域 ② SYSTEM 表領域(データベース全体) ③ 制御ファイル 9.1 特定表領域のリカバリ ① まず、状態の確認を行います。

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 86240 12-MAY-03 2 NOT ACTIVE 86309 12-MAY-03 3 NOT ACTIVE 86379 12-MAY-03 4 NOT ACTIVE 86216 12-MAY-03 5 NOT ACTIVE 86228 12-MAY-03 6 NOT ACTIVE 86192 12-MAY-03

6 rows selected.

② テストとして作成した DATA_TS のボリュームに故意にファイルシステムを作成し、使用できない状態にしま す。また、その確認を行います。

[root@db1 oradata]# mkfs -j /dev/sdb14

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 86240 12-MAY-03 2 NOT ACTIVE 86309 12-MAY-03 3 NOT ACTIVE 86379 12-MAY-03 4 NOT ACTIVE 86216 12-MAY-03 5 NOT ACTIVE 86228 12-MAY-03 6 WRONG FILE TYPE 0

6 rows selected.

③ RMAN を使用してのリストアおよびリカバリ処理

RMAN> run {

2> allocate channel ch1 type 'SBT_TAPE';

3> sql "ALTER TABLESPACE DATA_TS OFFLINE IMMEDIATE"; 4> restore tablespace DATA_TS;

5> recover tablespace DATA_TS;

6> sql "ALTER TABLESPACE DATA_TS ONLINE"; 7> }

NetVault --- MMS SBT sbtinit method. allocated channel: ch1

channel ch1: sid=17 devtype=SBT_TAPE channel ch1: MMS Version 0.0.1.0

(24)

Starting restore at 12-MAY-03

channel ch1: starting datafile backupset restore

channel ch1: specifying datafile(s) to restore from backup set restoring datafile 00006 to /opt/app/oracle/oradata/data1 NetVault --- SBT sbtopen method.

NetVault --- SBT sbtclose method. NetVault --- SBT Restore completed. channel ch1: restored backup piece 1

piece handle=nvserver:#281:db1:RACDB_4_493843341 tag=TAG20030512T184221 params=N ULL

channel ch1: restore complete Finished restore at 12-MAY-03

Starting recover at 12-MAY-03

starting media recovery

archive log thread 1 sequence 5 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_1_5.log

archive log thread 2 sequence 8 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_2_8.log

archive log thread 2 sequence 9 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_2_9.log

archive log thread 1 sequence 6 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_1_6.log

archive log thread 2 sequence 10 is already on disk as file /opt/app/oracle/prod uct/9.2.0/archive/db2/archive_2_10.log

archive log thread 2 sequence 11 is already on disk as file /opt/app/oracle/prod uct/9.2.0/archive/db2/archive_2_11.log

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_1_5.log t hread=1 sequence=5

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_2_8.log t hread=2 sequence=8

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_2_9.log t hread=2 sequence=9

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_2_10.log thread=2 sequence=10

media recovery complete Finished recover at 12-MAY-03

sql statement: ALTER TABLESPACE DATA_TS ONLINE released channel: ch1

④ リカバリ後の確認

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 86240 12-MAY-03 2 NOT ACTIVE 86309 12-MAY-03 3 NOT ACTIVE 86379 12-MAY-03 4 NOT ACTIVE 86216 12-MAY-03 5 NOT ACTIVE 86228 12-MAY-03 6 NOT ACTIVE 86192 12-MAY-03

6 rows selected.

SQL> select count(*) from trousers;

COUNT(*) --- 127455

(25)

9.2 SYSTEM 表領域を含むリカバリ

① SYSTEM 表領域に障害が発生したとします。Oracle では一般的に SYSTEM 表領域はオフラインにできな いため、そのリストア時はシステムを停止する必要があります。SYSTEM 表領域のリストアを行った後、デ ータベース全体のリカバリを行う必要があります。

② SYSTEM を mkfs により破壊

[root@db1 oradata]# mkfs -j /dev/sdb3

③ アーカイブログの消失

[oracle@db1 oracle]$ cd /opt/app/oracle/product/9.2.0/archive/db1 [oracle@db1 db1]$ ls

archive_1_1.log archive_1_6.log archive_2_3.log archive_2_8.log archive_1_2.log archive_2_1.log archive_2_4.log archive_2_9.log archive_1_3.log archive_2_10.log archive_2_5.log

archive_1_4.log archive_2_11.log archive_2_6.log archive_1_5.log archive_2_2.log archive_2_7.log [oracle@db1 db1]$ rm ./*log

[oracle@db1 db1]$ ls [oracle@db1 db1]$ ④ 状態の確認

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 WRONG FILE TYPE 0

2 NOT ACTIVE 86309 12-MAY-03 3 NOT ACTIVE 86379 12-MAY-03 4 NOT ACTIVE 86216 12-MAY-03 5 NOT ACTIVE 86228 12-MAY-03 6 NOT ACTIVE 86192 12-MAY-03

6 rows selected.

⑤ システムのシャットダウンを2ノードにて実行

SQL> shutdown

ORA-01122: database file 1 failed verification check ORA-01110: data file 1: '/opt/app/oracle/oradata/system'

ORA-01251: Unknown File Header Version read for file number 1

SQL> shutdown abort

ORACLE instance shut down. ⑥ mount 状態で rac1 を起動

⑦ RMAN を使用してのリストア/リカバリ

[oracle@db1 db1]$ rman target / catalog rman/rman@orcl

Recovery Manager: Release 9.2.0.2.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

connected to target database: RACDB (DBID=491106297) connected to recovery catalog database

(26)

2> allocate channel ch1 type 'SBT_TAPE'; 3> restore tablespace system;

4> recover tablespace system;

5> sql "ALTER DATABSE OPEN"; <- DATABASE の綴り間違いあえてそのまま 6> }

NetVault --- MMS SBT sbtinit method. allocated channel: ch1

channel ch1: sid=20 devtype=SBT_TAPE channel ch1: MMS Version 0.0.1.0

Starting restore at 12-MAY-03

channel ch1: starting datafile backupset restore

channel ch1: specifying datafile(s) to restore from backup set restoring datafile 00001 to /opt/app/oracle/oradata/system NetVault --- SBT sbtopen method.

NetVault --- SBT sbtclose method. NetVault --- SBT Restore completed. channel ch1: restored backup piece 1

piece handle=nvserver:#281:db1:RACDB_4_493843341 tag=TAG20030512T184221 params=N ULL

channel ch1: restore complete Finished restore at 12-MAY-03

Starting recover at 12-MAY-03

starting media recovery

archive log thread 1 sequence 5 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_1_5.log

archive log thread 2 sequence 8 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_2_8.log

archive log thread 2 sequence 9 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_2_9.log

archive log thread 1 sequence 6 is already on disk as file /opt/app/oracle/produ ct/9.2.0/archive/db2/archive_1_6.log

archive log thread 2 sequence 10 is already on disk as file /opt/app/oracle/prod uct/9.2.0/archive/db2/archive_2_10.log

archive log thread 2 sequence 11 is already on disk as file /opt/app/oracle/prod uct/9.2.0/archive/db2/archive_2_11.log

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_1_5.log t hread=1 sequence=5

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_2_8.log t hread=2 sequence=8

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_2_9.log t hread=2 sequence=9

archive log filename=/opt/app/oracle/product/9.2.0/archive/db2/archive_2_10.log thread=2 sequence=10

media recovery complete Finished recover at 12-MAY-03

sql statement: ALTER DATABSE OPEN released channel: ch1

RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of sql command on default channel at 05/12/2003 19:02:40

RMAN-11003: failure during parse/execution of SQL statement: ALTER DATABSE OPEN ORA-00940: invalid ALTER command

(27)

※ALTER 文を間違えたので sqlplus から手動にて open しました。本来は、RMAN から実行可能です。

SQL> alter database open;

Database altered.

⑧ リカバリ後の確認

SQL> select * from v$backup;

FILE# STATUS CHANGE# TIME --- --- --- ---

1 NOT ACTIVE 86240 12-MAY-03 2 NOT ACTIVE 86309 12-MAY-03 3 NOT ACTIVE 86379 12-MAY-03 4 NOT ACTIVE 86216 12-MAY-03 5 NOT ACTIVE 86228 12-MAY-03 6 NOT ACTIVE 86192 12-MAY-03

6 rows selected.

正しいステータスになり、リストア/リカバリが確認できました。

⑨ rac2 ノードを起動します。

9.3 init ファイルのリストア

通常の FileSystemPlugin または、OracleOnline APM を使用してバックアップリストアを実行します。Oracle RMAN 自体にバックアップする機能はありません。

9.4 制御ファイルのリカバリ

通常は、異なるディスク装置に振り分けられて多重化された制御ファイルを使用しますが、そのすべての制御ファ イルが使用できない状態になった際には、バックアップされた制御ファイルを使用してリカバリを行います。

① 制御ファイルの確認をします。

SQL> select * from v$controlfile;

STATUS --- NAME --- /opt/app/oracle/oradata/control_1 ② 制御ファイルを破壊して、表示の確認を行います。

[root@db1 root]# mkfs -j /dev/sdb2

SQL> select * from v$controlfile; select * from v$controlfile *

ERROR at line 1:

ORA-03113: end-of-file on communication channel ③ NetVault による制御ファイルのリストア

とりあえず起動します。(nomount 状態になる)

SQL> startup

(28)

Total System Global Area 319795432 bytes Fixed Size 450792 bytes

Variable Size 100663296 bytes Database Buffers 218103808 bytes Redo Buffers 577536 bytes

ORA-00227: corrupt block detected in controlfile: (block 1, # blocks 1) ORA-00202: controlfile: '/opt/app/oracle/oradata/control_1'

RMAN でリストアを行います。

[oracle@db1 db1]$ rman target / catalog rman/rman@orcl

Recovery Manager: Release 9.2.0.2.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.

connected to target database (not started) connected to recovery catalog database

RMAN> run {

2> allocate channel ch1 type 'SBT_TAPE';

3> restore controlfile to '/opt/app/oracle/product/9.2.0/dbs/ctrlrac1_rman.sav'; 4> }

NetVault --- MMS SBT sbtinit method. allocated channel: ch1

channel ch1: sid=20 devtype=SBT_TAPE channel ch1: MMS Version 0.0.1.0

Starting restore at 12-MAY-03

channel ch1: starting datafile backupset restore channel ch1: restoring controlfile

output filename=/opt/app/oracle/product/9.2.0/dbs/ctrlrac1_rman.sav NetVault --- SBT sbtopen method.

NetVault --- SBT sbtclose method. NetVault --- SBT Restore completed. channel ch1: restored backup piece 1

piece handle=nvserver:#281:db1:RACDB_6_493843460 tag=TAG20030512T184419 params=N ULL

channel ch1: restore complete Finished restore at 12-MAY-03 released channel: ch1

④ リストアしたファイルの確認

[oracle@db1 oracle]$ cd $ORACLE_HOME/dbs [oracle@db1 dbs]$ ls

ctrlrac1.sav init.ora initrac1.ora snapcf_rac1.f ctrlrac1_rman.sav initdw.ora orapwrac1

ctrlrac1_rman.sav があることがわかります。

⑤ リストア後、dd による Raw Device への書き込みを行います。

(両ノードがシャットダウンされている状態であること)

[oracle@db1 oracle]$ cd $ORACLE_HOME/dbs

[oracle@db1 dbs]$ dd if=./ctrlrac1_rman.sav of=/opt/app/oracle/oradata/control_1 読み込んだブロック数は 4112+0

(29)

⑥ rac1 にて起動を試みて見ます。

SQL> startup

ORACLE instance started.

Total System Global Area 319795432 bytes Fixed Size 450792 bytes

Variable Size 100663296 bytes Database Buffers 218103808 bytes Redo Buffers 577536 bytes Database mounted.

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

⑦ リカバーの試み

SQL> recover database;

ORA-00283: recovery session canceled due to errors

ORA-01610: recovery using the BACKUP CONTROLFILE option must be done ⑧ recover database using backup controlfile until cancel の実行

SQL> recover database using backup controlfile until cancel

ORA-00279: change 93383 generated at 05/12/2003 18:43:51 needed for thread 1 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_1_7.log ORA-00280: change 93383 for thread 1 is in sequence #7

ORA-00308: cannot open archived log

'/opt/app/oracle/product/9.2.0/archive/db1/archive_1_8.log' ORA-27037: unable to obtain file status

Linux Error: 2: No such file or directory Additional information: 3

ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent

ORA-01110: data file 1: '/opt/app/oracle/oradata/system'

オンライン REDO ログを適用する必要がある場合(上記の場合 archive_1_8.lo が該当 )その時点まで適用されるため、再度 recover database を実行し、オンライン REDO ログのパスを指定する。

SQL> recover database using backup controlfile until cancel;

ORA-00279: change 133955 generated at 05/12/2003 19:04:49 needed for thread 1 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_1_8.log ORA-00280: change 133955 for thread 1 is in sequence #8

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /opt/app/oracle/oradata/redo1_2

ORA-00279: change 133955 generated at 05/12/2003 18:43:52 needed for thread 2 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_2_12.log ORA-00280: change 133955 for thread 2 is in sequence #12

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /opt/app/oracle/oradata/redo2_2

(30)

ORA-00279: change 134130 generated at 05/12/2003 19:03:54 needed for thread 2 ORA-00289: suggestion :

/opt/app/oracle/product/9.2.0/archive/db1/archive_2_13.log ORA-00280: change 134130 for thread 2 is in sequence #13

ORA-00278: log file '/opt/app/oracle/oradata/redo2_2' no longer needed for this recovery

Specify log: {<RET>=suggested | filename | AUTO | CANCEL} /opt/app/oracle/oradata/redo2_1

Log applied.

Media recovery complete.

最後にメディアリカバリが行われたことを確認します。

⑨ RESETLOGS option 付きでのオープン

SQL> alter database open resetlogs;

Database altered. ⑩ 昔のログはいらないので削除します [oracle@db1 /]$ cd /opt/app/oracle/product/9.2.0/archive/db1 [oracle@db1 db1]$ ls archive_1_7.log archive_2_12.log [oracle@db1 db1]$ rm ./* [oracle@db1 db1]$ ls [oracle@db1 db1]$ [oracle@db1 db1]$ cd ../db2 [oracle@db1 db2]$ ls

archive_1_1.log archive_1_6.log archive_2_12.log archive_2_6.log archive_1_2.log archive_1_7.log archive_2_2.log archive_2_7.log archive_1_3.log archive_2_1.log archive_2_3.log archive_2_8.log archive_1_4.log archive_2_10.log archive_2_4.log archive_2_9.log archive_1_5.log archive_2_11.log archive_2_5.log

[oracle@db1 db2]$ rm ./* [oracle@db1 db2]$ ls [oracle@db1 db2]$ ls

⑪ rac2 ノードを起動します。

⑫ 試しに log switch を強制的に行うと、ログがリセットされ1番から作成されていることが確認できます。

SQL> alter system archive log current;

System altered.

⑬ バックアップ制御ファイルを使用してリカバリすると、ローカル管理一次表領域から一次ファイルのエントリが 削除されるため再追加をします。

SQL> alter tablespace temp add tempfile '/opt/app/oracle/oradata/temp' size 100m reuse;

Tablespace altered.

SQL> select * from v$tempfile;

FILE# CREATION_CHANGE# CREATION_ TS# RFILE# STATUS ENABLED --- --- --- --- --- --- ---

BYTES BLOCKS CREATE_BYTES BLOCK_SIZE --- --- --- ---

NAME

--- 1 0 2 1 ONLINE READ WRITE

(31)

104857600 12800 104857600 8192 /opt/app/oracle/oradata/temp

⑭ reset database により、リカバリカタログをリセットします。

RMAN> reset database;

new incarnation of database registered in recovery catalog starting full resync of recovery catalog

full resync complete

RMAN> list incarnation;

List of Database Incarnations

DB Key Inc Key DB Name DB ID CUR Reset SCN Reset Time --- --- --- --- --- --- ---

14 15 RACDB 491106297 NO 85993 12-MAY-03 14 172 RACDB 491106297 YES 134351 12-MAY-03

Inc Key 15 の Cur が NO になっていることを確認します。。

⑮ オープンできたあとは、必ず再度フルバックアップを実行するようにします。

10. 検証結果について

以上の検証により、NetVault を使用して Oracle9i RAC の環境でオフラインバックアップ、オンラインバックアップ (Oracle Online APM/Oracle RMAN APM)の運用が可能であることが確認できました。なお、本検証において 使用された NetVault のバージョンおよび各 APM のバージョンは、随時アップデートされております。各自検証お よび導入を行われる際には、常に最新のバージョンにてご確認いただきますようお願いいたします。

表 2-7 ソフトウェア構成 [DB2]
表 2-11 パーティション構成 [DBBACKUP]
図 3-1 NetVault Client Management 登録
図 3-3 Oracle Online APM Install  図 3-4 Oracle RMAN APM Install
+7

参照

関連したドキュメント

あらまし MPEG は Moving Picture Experts Group の略称であり, ISO/IEC JTC1 におけるオーディオビジュアル符号化標準の

平成 26 年の方針策定から 10 年後となる令和6年度に、来遊個体群の個体数が現在の水

北海道の来遊量について先ほどご説明がありましたが、今年も 2000 万尾を下回る見 込みとなっています。平成 16 年、2004

のようにすべきだと考えていますか。 やっと開通します。長野、太田地区方面  

概要・目標 地域社会の発展や安全・安心の向上に取り組み、地域活性化 を目的としたプログラムの実施や緑化を推進していきます

当監査法人は、我が国において一般に公正妥当と認められる財務報告に係る内部統制の監査の基準に

Jabra Talk 15 SE の操作は簡単です。ボタンを押す時間の長さ により、ヘッドセットの [ 応答 / 終了 ] ボタンはさまざまな機

タップします。 6通知設定が「ON」になっ ているのを確認して「た めしに実行する」ボタン をタップします。.