Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド 11g リリース1(11.1) E05700-03 |
|
この章では、ユーザー管理バックアップおよびリカバリ計画(Recovery Managerを必要としない計画)でOracle Databaseをバックアップする方法について説明します。
この章の内容は、次のとおりです。
バックアップを作成する前に、データベース内のすべてのファイルを確認して、バックアップするファイルを決定する必要があります。V$
ビューを使用すると、この情報を取得できます。
データベースのデータファイルおよび制御ファイルを確認するには、V$DATAFILE
およびV$CONTROLFILE
を使用します。次に示す手順は、これらのファイルの名前を手動で付けた場合も、Oracle Managed Filesで付けた場合も、同様に使用できます。
V$DATAFILE
を問い合せてデータファイルのリストを取得します。たとえば、次のように入力します。
SELECT NAME FROM V$DATAFILE;
V$TABLESPACE
ビューとV$DATAFILE
ビューを結合して、データファイルのリストと、関連する表領域のリストを取得することもできます。
SELECT t.NAME "Tablespace", f.NAME "Datafile" FROM V$TABLESPACE t, V$DATAFILE f WHERE t.TS# = f.TS# ORDER BY t.NAME;
V$CONTROLFILE
ビューを問い合せて、現行の制御ファイルのファイル名を取得します。たとえば、次の問合せを発行します。
SELECT NAME FROM V$CONTROLFILE;
多重制御ファイルの場合は、バックアップする必要があるのは1つのコピーのみです。
ALTER
DATABASE
BACKUP
CONTROLFILE
TO
'
filename
'
文を使用して制御ファイルのバックアップを作成する場合には、制御ファイルのバックアップとともに、すべてのデータファイルおよびオンラインREDOログ・ファイルのリストを保存します。現在のデータベース構造は、制御ファイルの特定のバックアップが作成された時点のデータベース構造とは異なる場合があるため、バックアップ制御ファイルに記録されたファイルのリストを保存しておくと、リカバリを行う際に便利です。
データファイルが現行のオンライン表領域のバックアップの一部であるかどうかを確認するには、V$BACKUP
ビューを問い合せます。
このビューはユーザー管理のオンライン表領域バックアップでのみ有効です。Recovery Managerのバックアップおよびオフライン表領域のバックアップでは、表領域のデータファイルをバックアップ・モードに設定する必要がないためです。一部のユーザー管理バックアップ手順では、分裂ブロックの発生を防ぐため、表領域をバックアップ・モードにする必要があります。ただし、バックアップ・モードでは、データベースへの更新によって通常より多くのREDOが作成されます。
V$BACKUP
ビューは、データベースがオープンしている場合に特に有効です。また、障害時のファイルのバックアップ・ステータスも表示されるため、インスタンス障害の直後にも有効です。この情報を使用して、バックアップ・モードのままになっている表領域があるかどうかを確認します。
現在使用されている制御ファイルが、リストアされたバックアップか、メディア障害の発生後に作成された新しい制御ファイルの場合には、V$BACKUP
は役に立ちません。リストアされた制御ファイルまたは再作成された制御ファイルには、データベースがV$BACKUP
を正確に移入するために必要とする情報が含まれていません。また、ファイルのバックアップをリストアした場合には、V$BACKUP
の中のこのファイルのSTATUS
は、最新のバージョンではなく、ファイルの古いバージョンのバックアップ・ステータスを反映したものになります。このため、このビューにはリストアされたファイルに関して誤解を招くデータが表示される場合があります。
たとえば、次の問合せを実行して、バックアップ・モードに設定された表領域に現在どのようなデータファイルが含まれているかを表示するとします。
SELECT t.name AS "TB_NAME", d.file# as "DF#", d.name AS "DF_NAME", b.status FROM V$DATAFILE d, V$TABLESPACE t, V$BACKUP b WHERE d.TS#=t.TS# AND b.FILE#=d.FILE# AND b.STATUS='ACTIVE';
次の出力例は、tools
およびusers
表領域が現在ACTIVE
ステータスであることを示しています。
TB_NAME DF# DF_NAME STATUS ---------------------- ---------- -------------------------------- ------ TOOLS 7 /oracle/oradata/trgt/tools01.dbf ACTIVE USERS 8 /oracle/oradata/trgt/users01.dbf ACTIVE
STATUS
列にNOT
ACTIVE
が表示されている場合、ファイルが現在バックアップ・モードではない(ALTER
TABLESPACE
...
BEGIN
BACKUP
またはALTER DATABASE BEGIN BACKUP
文を実行していない)ことを意味します。ACTIVE
が表示されている場合、ファイルが現在バックアップ・モードであることを意味します。
NORMAL
、IMMEDIATE
またはTRANSACTIONAL
オプションを使用してデータベースを停止した後で、データベース全体のバックアップを実行し、データベース内のすべてのファイルのバックアップを作成できます。データベースのオープン中、またはインスタンス障害やSHUTDOWN
ABORT
の後に作成されたデータベース全体のバックアップは一貫性のないものになります。この場合のファイルは、データベース・チェックポイントSCNに対して一貫性がありません。
データベースをARCHIVELOG
モードまたはNOARCHIVELOG
モードのどちらで実行していても、データベース全体のバックアップを作成できます。ただし、データベースをNOARCHIVELOG
モードで実行する場合は、バックアップ前にデータベースを正しく停止して、一貫性のあるバックアップを作成する必要があります。
一貫性のあるデータベース全体のバックアップによって作成されたバックアップ・ファイルのセットでは、すべてのファイルで同じSCNにチェックポイントが設定されているため、一貫性があります。一貫性のあるデータベースのバックアップは、リカバリを実行せずにリストアできます。データベースをARCHIVELOG
モードで実行している場合は、バックアップ・ファイルをリストアした後で、追加のリカバリ手順を実行してデータベースをより新しい時点までリカバリできます。また、データベースがARCHIVELOG
モードの場合には、一貫性のないデータベース全体のバックアップを作成することもできます。
制御ファイルは、データベースのリストアおよびリカバリに重要な役割を果たします。ARCHIVELOG
モードで実行しているデータベースの場合には、ALTER
DATABASE
BACKUP
CONTROLFILE
TO
'
filename'
文を使用して、制御ファイルをバックアップしておくことをお薦めします。
この項では、オペレーティング・システム・ユーティリティを使用してデータベースをバックアップする方法を説明します。
NORMAL
、IMMEDIATE
またはTRANSACTIONAL
オプションを指定してデータベースを停止します。
CONTROL_FILES
パラメータで指定されたすべての制御ファイルのバックアップを作成します。また、初期化パラメータ・ファイルおよびその他のOracle製品の初期化ファイルもバックアップします。これらのファイルを検索するには、*.ora
を使用して、Oracleホーム・ディレクトリから開始してすべてのサブディレクトリを再帰的に検索します。たとえば、次に示すとおり、データファイル、制御ファイルおよびアーカイブ・ログを/disk2/backup
にバックアップできます。
% cp $ORACLE_HOME/oradata/trgt/*.dbf /disk2/backup % cp $ORACLE_HOME/oradata/trgt/arch/* /disk2/backup/arch
STARTUP
コマンドを使用して、データベースを再起動します。表領域およびデータファイルのユーザー管理バックアップを作成する方法は、ファイルがオフラインかオンラインかによって異なります。
オフライン表領域のバックアップを行うときには、次のガイドラインに注意してください。
SYSTEM
表領域またはアクティブなUNDOセグメントを含む表領域をオフラインにすることはできません。このような表領域では、次の方法は使用できません。
Primary
内に表があり、その索引が表領域Index
にあるとします。表領域Index
をオフラインにし、表領域Primary
をオンラインのままにしておくと、Primary
内にある索引付きの表に対してDMLが発行されたときにエラーが発生する可能性があります。この問題は、オプティマイザによって選択されたアクセス方法で、Index
表領域内の索引へのアクセスが必要となった場合にのみ発生します。
DBA_DATA_FILES
ビューを問い合せて、表領域のデータファイルを確認します。たとえば、users
表領域をバックアップするとします。SQL*Plusで次の文を入力します。
SELECT TABLESPACE_NAME, FILE_NAME FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME = 'USERS'; TABLESPACE_NAME FILE_NAME ------------------------------- -------------------------------- USERS /oracle/oradata/trgt/users01.dbf
この例の/oracle/oradata/trgt/users01.dbf
は、users
表領域の中のデータファイルに対応する完全指定のファイル名です。
SQL> ALTER TABLESPACE users OFFLINE NORMAL;
% cp /oracle/oradata/trgt/users01.dbf /d2/users01_'date "+%m_%d_%y"'.dbf
ALTER TABLESPACE users ONLINE;
ALTER SYSTEM ARCHIVE LOG CURRENT;
データベースのオープン中は、オンライン表領域のすべてのデータファイルまたは特定のデータファイルをバックアップできます。オンライン表領域が読取り/書込みか読取り専用かによって手順は異なります。
表領域がオンラインで、データベースがオープンしているときに、データファイルのユーザー管理バックアップを作成するには、読取り/書込み表領域をバックアップ・モードに設定する必要があります。ALTER
TABLESPACE
...
BEGIN
BACKUP
文を使用すると、表領域をバックアップ・モードに設定できます。バックアップ・モードでは、変更されたデータ・ブロック全体がREDOストリームにコピーされます。ユーザーがALTER
TABLESPACE
...
END
BACKUP
またはALTER
DATABASE
END
BACKUP
文を使用して表領域のバックアップ・モードを終了すると、データファイル・チェックポイントSCNが現在のデータベース・チェックポイントSCNまで進みます。
この方法でバックアップされたデータファイルをリストアすると、リカバリが必要な場合は、REDOログ・ファイルの適切なセットを適用するように求められます。REDOログには、データファイルをリカバリし、データファイルを一貫性のある状態にするために必要なすべての変更が含まれています。
DBA_DATA_FILES
データ・ディクショナリ・ビューを使用して、表領域内のすべてのデータファイルを確認します。たとえば、users
表領域をバックアップするとします。次のように入力します。
SELECT TABLESPACE_NAME, FILE_NAME FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME = 'USERS'; TABLESPACE_NAME FILE_NAME ------------------------------- -------------------- USERS /oracle/oradata/trgt/users01.dbf USERS /oracle/oradata/trgt/users02.dbf
users
のオンライン・バックアップの開始をマークします。
SQL> ALTER TABLESPACE users BEGIN BACKUP;
注意:
|
% cp /oracle/oradata/trgt/users01.dbf /d2/users01_'date "+%m_%d_%y"'.dbf % cp /oracle/oradata/trgt/users02.dbf /d2/users02_'date "+%m_%d_%y"'.dbf
END
BACKUP
オプションを指定したSQL文ALTER
TABLESPACE
を実行します。たとえば、次の文は、表領域users
のオンライン・バックアップを終了します。
SQL> ALTER TABLESPACE users END BACKUP;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
複数のオンライン表領域をバックアップする場合には、シリアルまたはパラレルにバックアップできます。必要に応じて、次のいずれかの手順を使用してください。
バックアップが必要な複数の表領域のデータファイルのコピーを、同時にバックアップ・モードで作成できます。ただし、すべての表領域を一度にオンライン・モードに設定すると、それらの表領域で多くの更新が実行されている場合は、大規模なREDOログが生成される可能性があります。REDOには、変更された各データファイルの変更された各データ・ブロックのコピーを含める必要があるためです。次に示す手順を実行する前に、生成されるREDOのサイズを検討してください。
ALTER
TABLESPACE
文を一度に発行して、オンライン表領域でバックアップの準備をします。たとえば、次のように表領域users
、tools
およびindx
をバックアップ・モードにします。
SQL> ALTER TABLESPACE users BEGIN BACKUP; SQL> ALTER TABLESPACE tools BEGIN BACKUP; SQL> ALTER TABLESPACE indx BEGIN BACKUP;
すべての表領域をバックアップするには、次のコマンドを使用します。
SQL> ALTER DATABASE BEGIN BACKUP;
*.dbf
という接尾辞を持つデータファイルをバックアップできます。
% cp $ORACLE_HOME/oradata/trgt/*.dbf /disk2/backup/
SQL> ALTER TABLESPACE users END BACKUP; SQL> ALTER TABLESPACE tools END BACKUP; SQL> ALTER TABLESPACE indx END BACKUP;
すべてのデータファイルを一度に処理する場合は、ALTER TABLESPACE
のかわりにALTER DATABASE
コマンドを使用できます。
SQL> ALTER DATABASE END BACKUP;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
オンライン・バックアップが必要なすべての表領域を、1つずつバックアップ・モードに設定できます。ALTER
TABLESPACE
...
BEGIN/END
BACKUP
文の間の間隔が最小化されるため、シリアル・バックアップ・オプションをお薦めします。データ・ブロック全体がREDOログにコピーされるため、オンライン・バックアップ中は表領域に関してさらにREDO情報が生成されます。
users
をバックアップ・モードにするには、次のように入力します。
SQL> ALTER TABLESPACE users BEGIN BACKUP;
この場合は、すべての表領域を同時にバックアップ・モードに設定するALTER DATABASE BEGIN BACKUP
は使用しません。オンライン・モードの表領域に関する不要なREDOログ情報が生成されるためです。
% cp /oracle/oradata/trgt/users01.dbf /d2/users01_'date "+%m_%d_%y"'.dbf
SQL> ALTER TABLESPACE users END BACKUP;
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
次の場合には、表領域のバックアップが失敗し、不完全になることがあります。
ALTER
TABLESPACE
...
END
BACKUP
文を実行していない場合。
SHUTDOWN
ABORT
によってバックアップが中断された場合。
クラッシュ・リカバリが必要なときに、バックアップ・モードのデータファイルをオープンしようとした場合、リカバリ・コマンドが発行されるか、またはデータファイルのバックアップ・モードが終了するまでは、データベースはオープンされません。
たとえば、起動時に次のようなメッセージが表示される場合があります。
ORA-01113: file 12 needs media recovery ORA-01110: data file 12: '/oracle/dbs/tbs_41.f'
ユーザーが表領域のオンライン・バックアップを終了しなかったために、複数の表領域のデータファイルでメディア・リカバリが必要であると表示された場合、データベースがマウントされているかぎり、ALTER
DATABASE
END
BACKUP
文を実行して、すべてのデータファイルで同時にバックアップ・モードを終了できます。
高可用性が必要な場合およびDBAがデータベースを監視していない場合は、ユーザーの介入を必要とする事態は回避する必要があります。このために、次の内容のクラッシュ・リカバリ・スクリプトを作成しておくことができます。
ALTER
DATABASE
END
BACKUP
を含む自動化されたクラッシュ・リカバリ・スクリプトは、次の場合に特に有効です。
また、表領域がバックアップ・モードのときに発生したシステム障害後に、次の手動の方法を使用することもできます。
END
BACKUP
文を発行せずに済ませる。
ALTER
TABLESPACE
...
END
BACKUP
を実行する。
複数の表領域がバックアップ・モードのままになっているときには、ALTER
DATABASE
END
BACKUP
文を実行できます。このコマンドの主な目的は、DBAの介入なしに、クラッシュ・リカバリ・スクリプトで障害の発生したシステムを再起動することです。また、次の手順を手動で実行することもできます。
SQL> STARTUP MOUNT
V$BACKUP
ビューを問い合せて、データベースが再起動される前にバックアップされていた表領域のデータファイルのリストを表示します。
SQL> SELECT * FROM V$BACKUP WHERE STATUS = 'ACTIVE'; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- --------- 12 ACTIVE 20863 25-NOV-02 13 ACTIVE 20863 25-NOV-02 20 ACTIVE 20863 25-NOV-02 3 rows selected.
ALTER
DATABASE
END
BACKUP
文を発行し、現在バックアップ・モードになっているすべてのデータファイルでバックアップ・モードを終了します。たとえば、次のように入力します。
SQL> ALTER DATABASE END BACKUP;
この文を使用できるのは、データベースがマウントされているが、オープンされていない場合のみです。データベースがオープンしている場合には、影響を受ける各表領域またはデータファイルに対して、ALTER
TABLESPACE
...
END
BACKUP
またはALTER
DATABASE
DATAFILE
...
END
BACKUP
を使用します。
オンライン・バックアップが失敗した場合の対処方法は、ALTER
DATABASE
END
BACKUP
文を発行する以外に、SQL*PlusのRECOVER
コマンドを実行することもできます。他のユーザーがバックアップをリストアしているかどうかがわからない場合は、この方法が有効です。他のユーザーが実際にバックアップをリストアしていた場合に、RECOVER
コマンドによってバックアップが最新に更新されるためです。ALTER
DATABASE
END
BACKUP
またはALTER
TABLESPACE
...
END
BACKUP
文は、ファイルが現行のものであることが確実な場合にのみ実行してください。
SQL> STARTUP MOUNT
SQL> RECOVER DATABASE
V$BACKUP
ビューを使用して、アクティブなデータファイルがないことを確認します。
SQL> SELECT * FROM V$BACKUP WHERE STATUS = 'ACTIVE'; FILE# STATUS CHANGE# TIME ---------- ------------------ ---------- --------- 0 rows selected.
オンラインの読取り専用表領域をバックアップする場合は、オンライン・データファイルをバックアップするのみで実行できます。データベースではデータファイルに対する変更が許可されないため、表領域をバックアップ・モードに設定する必要はありません。
読取り専用表領域のセットが自己完結型の場合には、オペレーティング・システム・コマンドを使用して表領域をバックアップする他に、トランスポータブル表領域機能を使用して、表領域のメタデータをエクスポートすることもできます。メディア・エラーまたはユーザー・エラー(読取り専用表領域の表を誤って削除するなど)が発生した場合、表領域を元のデータベースに戻すことができます。
DBA_TABLESPACES
ビューを問い合せて、読取り専用の表領域を確認します。たとえば、次の問合せを実行します。
SELECT TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES WHERE STATUS = 'READ ONLY';
DBA_DATA_FILES
データ・ディクショナリ・ビューを問い合せて、表領域のすべてのデータファイルを確認します。たとえば、history
表領域をバックアップする場合、次の問合せを実行します。
SELECT TABLESPACE_NAME, FILE_NAME FROM SYS.DBA_DATA_FILES WHERE TABLESPACE_NAME = 'HISTORY'; TABLESPACE_NAME FILE_NAME ------------------------------- -------------------- HISTORY /oracle/oradata/trgt/history01.dbf HISTORY /oracle/oradata/trgt/history02.dbf
% cp $ORACLE_HOME/oradata/trgt/history*.dbf /disk2/backup/
history
のメタデータをエクスポートします。
% expdp DIRECTORY=dpump_dir1 DUMPFILE=hs.dmp TRANSPORT_TABLESPACES=history LOGFILE=tts.log
ARCHIVELOG
モードで実行中のデータベースの構造変更を行った後で、データベースの制御ファイルをバックアップします。データベースの制御ファイルをバックアップするには、ALTER
DATABASE
システム権限が必要です。
制御ファイルをバックアップする第一の手段は、SQL文を使用してバイナリ・ファイルを生成する方法です。バイナリ・バックアップにはアーカイブ・ログ履歴、読取り専用およびオフライン表領域のオフライン範囲、バックアップ・セットとコピー(Recovery Managerを使用する場合)などの追加情報が含まれるため、トレース・ファイル・バックアップよりもバイナリ・バックアップを使用することをお薦めします。COMPATIBLE
が10.2以上の場合、制御ファイルのバイナリ・バックアップには、一時ファイル・エントリが含まれます。
CREATE TABLESPACE tbs_1 DATAFILE 'file_1.f' SIZE 10M;
/disk1/backup/cf.bak
に制御ファイルをバックアップします。
ALTER DATABASE BACKUP CONTROLFILE TO '/disk1/backup/cf.bak' REUSE;
REUSE
を指定すると、新規の制御ファイルで既存の制御ファイルを上書きできます。
制御ファイルは、CREATE CONTROLFILE
文が含まれるテキスト・ファイルにバックアップできます。トレース・ファイルを編集し、トレース・ファイルの作成時点で現行のものであった制御ファイルに基づいて、新しい制御ファイルを作成するスクリプトを作成することができます。
SQL文でRESETLOGS
オプションもNORESETLOGS
オプションも指定しなかった場合は、トレース・ファイルにRESETLOGS
とNORESETLOGS
の両方のオプション用の制御ファイルが含まれます。ALTER TABLESPACE ... ADD TEMPFILE
文を使用すると、出力に一時ファイル・エントリが含まれます。
NORMALモードでオフラインにされた表領域または読取り専用表領域をリカバリしないように、CREATE
CONTROLFILE
文を編集してそれらを除外してください。再作成された制御ファイルを使用してデータベースをオープンすると、データベースではこれらの省略されたファイルはMISSING
としてマークされます。ALTER
DATABASE
RENAME
FILE
文を実行すると、それらのファイルを元のファイル名に戻すことができます。
CREATE CONTROLFILE
文を含むトレース・ファイルは、DIAGNOSTIC_DEST
初期化パラメータに指定されたサブディレクトリに格納されます。CREATE CONTROLFILE
文が書き込まれるトレース・ファイルの名前および場所については、データベースのアラート・ログで確認できます。アラート・ログの場所を確認する方法については、『Oracle Database管理者ガイド』を参照してください。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
参照:
|
プライマリのアーカイブ場所のディスク領域を節約するために、アーカイブ・ログをテープまたは代替のディスクの場所にバックアップできます。複数の場所にアーカイブするときには、各ログ順序番号の1つのコピーのみバックアップします。
V$ARCHIVED_LOG
を問い合せて、データベースから生成されたアーカイブREDOログ・ファイルを確認します。たとえば、次の問合せを実行します。
SELECT THREAD#,SEQUENCE#,NAME FROM V$ARCHIVED_LOG;
% cp $ORACLE_HOME/oracle/trgt/arch/* /disk2/backup/arch
この項の内容は、次のとおりです。
サード・パーティ・ツールには、ディスクまたは論理デバイスのセットをミラー化(プライマリ・データの正確な複製を別の場所に保持)し、後でミラーを分割できるものがあります。ミラーの分割では、コピーが分離されるため、それぞれを別々に使用できます。
SUSPEND
/RESUME
の機能を使用すると、データベースに対するI/Oを一時停止した後、ミラーを分割し、分割されたミラーのバックアップを作成できます。バックアップ・モード機能を補完するこの機能によって、I/Oが新しく実行されないように、データベースI/Oを一時停止できます。その後、一時停止中のデータベースにアクセスし、I/Oに影響を受けずにバックアップを作成できます。
ほとんどの場合は、ミラーの分割によるバックアップを作成するためにSUSPEND
/RESUME
を使用する必要はありませんが、使用しているシステムで、ボリュームを分割する前にデータベース・キャッシュの使用済バッファを排除しておく必要がある場合には、このコマンドが必要になります。RAIDデバイスの中には、分割操作の実行中に書込みを一時停止できるものがあります。使用しているシステムでこの機能を使用できるかどうかは、RAIDのベンダーに確認してください。
ALTER
SYSTEM
SUSPEND
文は、データファイル・ヘッダー、データファイルおよび制御ファイルに対するI/Oを停止して、データベースを一時停止します。データベースが一時停止すると、既存のすべてのI/O操作は完了できますが、データベースに対する新規のI/Oアクセスの試行はキューされます。
ALTER
SYSTEM
SUSPEND
文およびALTER
SYSTEM
RESUME
文は、インスタンスのみではなく、データベースに対して実行されます。ALTER
SYSTEM
SUSPEND
文がRAC構成中の1つのシステムで入力された場合は、内部のロッキング・メカニズムによって全インスタンスに停止要求が伝播され、クラスタ内のすべてのアクティブなインスタンスでI/O操作が一時停止されます。
データベースが正常に一時停止した後、ディスクにデータベースをバックアップするか、ミラー化を解除できます。データベースを一時停止してもI/Oがすぐに終了されるとはかぎらないため、ALTER
SYSTEM
SUSPEND
文の前にBEGIN
BACKUP
文を使用して、表領域をバックアップ・モードにすることをお薦めします。
分割されたミラーをバックアップするには、従来のユーザー管理バックアップ方式を使用する必要があります。データファイル・ヘッダーの読取りが必要になるため、Recovery Managerはデータベースのバックアップまたはコピーを作成できません。データベースのバックアップが終了するか、ミラーを復元した後、ALTER
SYSTEM
RESUME
文を使用して、通常のデータベース操作を再開できます。
ミラーを分割せずに一時停止中のデータベースをバックアップすると、バックアップ中はデータベースにアクセスできなくなるため、データベースが長期間停止する可能性があります。ミラーを分割してバックアップを実行すると、停止は短時間で済みます。停止時間は、フラッシュするキャッシュのサイズ、データファイルの数、およびミラー化の解除に必要な時間によって異なります。
SUSPEND/RESUME
機能には次の制限があります。
ALTER
SYSTEM
SUSPEND
文またはALTER
SYSTEM
RESUME
文からはチェックポイントは開始されません。
IMMEDIATE
、NORMAL
またはTRANSACTIONAL
オプションを指定してSHUTDOWN
コマンドを発行できません。
SHUTDOWN
ABORT
を発行すると、データベースが再度アクティブになります。この操作で、メディア・リカバリまたはクラッシュ・リカバリのハングアップを回避します。
users
をバックアップ・モードにするには、次のように入力します。
ALTER TABLESPACE users BEGIN BACKUP;
データベースのすべての表領域をバックアップする場合は、かわりに次のコマンドを使用できます。
ALTER DATABASE BEGIN BACKUP;
ALTER SYSTEM SUSPEND;
V$INSTANCE
を問い合せて、データベースが一時停止されていることを確認します。たとえば、次のように入力します。
SELECT DATABASE_STATUS FROM V$INSTANCE; DATABASE_STATUS ----------------- SUSPENDED
ALTER SYSTEM RESUME;
V$INSTANCE
を問い合せて、データベースがアクティブであることを確認します。たとえば、次のように入力します。
SELECT DATABASE_STATUS FROM V$INSTANCE; DATABASE_STATUS ----------------- ACTIVE
users
のバックアップ・モードを終了するには、次のように入力します。
ALTER TABLESPACE users END BACKUP;
参照:
SUSPEND
/RESUME
機能の詳細は、『Oracle Database管理者ガイド』を参照してください。
RAWデバイスとは、ファイル・システムを持たないディスクまたはパーティションです。つまり、RAWデバイスに保管できるファイルは1つのみです。RAWデバイスにファイルをバックアップする場合は、オペレーティング・システム固有の問題が発生します。後続の項では、UNIX、LinuxおよびWindowsでのこれらの問題の一部について説明します。
RAWデバイスとの間でバックアップを行う場合は、LinuxおよびUNIXのdd
コマンドが最も一般的なバックアップ・ユーティリティになります。このユーティリティの詳細は、オペレーティング・システムのマニュアルを参照してください。
dd
を効率的に使用するには、ご使用のデータベースに基づいて適切なオプションを指定する必要があります。表27-1に、dd
に使用するオプションに影響を及ぼすデータベースの詳細を示します。
表27-1の情報を使用して、表27-2に示すdd
オプションを設定できます。
RAWデバイスはバックアップの入力または出力デバイスに使用できるため、4つのバックアップ・シナリオを想定できます。dd
で選択できるオプションは、表27-3に示すように、どのシナリオを選択するかによって異なります。
バックアップ元 | バックアップ先 | ddコマンドで指定されるオプション |
---|---|---|
RAWデバイス |
RAWデバイス |
|
RAWデバイス |
ファイル・システム |
|
ファイル・システム |
RAWデバイス |
|
ファイル・システム |
ファイル・システム |
|
この項で示すdd
ユーティリティの使用方法の例では、次のように想定しています。
dd
ブロック・サイズを8KBに設定します。
次の例では、1つのRAWデバイスから別のRAWデバイスにバックアップします。
% dd if=/dev/rsd1b of=/dev/rsd2b bs=8k skip=8 seek=8 count=3841
次の例では、RAWデバイスからファイル・システムにバックアップします。
% dd if=/dev/rsd1b of=/backup/df1.dbf bs=8k skip=8 count=3841
次の例では、ファイル・システムからRAWデバイスにバックアップします。
% dd if=/backup/df1.dbf of=/dev/rsd2b bs=8k seek=8
次の例では、ファイル・システムからファイル・システムにバックアップします。このため、ブロック・サイズに大きい値を設定して、I/Oパフォーマンスを高めることができます。
% dd if=/oracle/dbs/df1.dbf of=/backup/df1.dbf bs=1024k
WindowsはLinuxおよびUNIXと同じようにRAWディスク・パーティションをサポートするため、データファイル、オンライン・ログおよび制御ファイルをこの中に格納できます。各RAWパーティションにはドライブ文字または物理ドライブ番号が割り当てられます。ファイル・システムは含まれません。LinuxおよびUNIXの場合と同じように、Windowsでも各RAWパーティションは1つのファイルにマップされます。
Windowsでは、Oracleファイルのネーミング規則はLinuxおよびUNIXの場合と異なります。Windowsの場合、RAWデータファイル名は次のような形式になります。
¥¥.¥drive_letter: ¥¥.¥PHYSICALDRIVEdrive_number
たとえば、次の名前はRAWファイル名として使用できます。
¥¥.¥G: ¥¥.¥PHYSICALDRIVE3
また、RAWファイル名の別名も作成できます。Oracle Databaseの標準インストールでは、別名(ファイル名¥¥.¥PHYSICALDRIVE3
をポイントする¥¥.¥Datafile12
など)を作成できるSETLINKS
ユーティリティが提供されます。
RAWデータファイルのユーザー管理バックアップを作成する手順は、Windowsで提供されるcopy.exe
またはntbackup.exe
ユーティリティのかわりにOracleのOCOPY
ユーティリティを使用する必要があることを除いて、Windowsファイル・システムでのファイルのコピーと基本的に同じです。OCOPY
は64ビットのファイルI/O、物理RAWドライブおよびRAWファイルをサポートします。OCOPY
はテープに直接バックアップできません。
OCOPY
のオンライン・マニュアルを表示するには、WindowsプロンプトにOCOPY
とのみ入力します。出力例を次に示します。
Usage of OCOPY: ocopy from_file [to_file [a | size_1 [size_n]]] ocopy -b from_file to_drive ocopy -r from_drive to_dir
次の表に、OCOPY
の重要なオプションを示します。
オプション | 処理 |
---|---|
|
入力ファイルを複数の出力ファイルに分割します。このオプションは、入力ファイルよりも小さいデバイスにバックアップする場合に有効です。 |
|
複数の入力ファイルを組み合せて、1つの出力ファイルに書き込みます。このオプションは、 |
この例では、次のように想定しています。
RAWパーティション¥¥.¥G:
上のデータファイルをローカル・ファイル・システムにバックアップするには、データファイル12
をバックアップ・モードにした後で、プロンプトで次のコマンドを実行します。
OCOPY "¥¥.G:" C:¥backup¥datafile12.bak
この例では、次のように想定しています。
データファイルをドライブE:
にバックアップするには、データファイル7をバックアップ・モードにした後で、Windowsプロンプトで次のコマンドを実行します。
# first argument is filename, second argument is drive OCOPY -b "¥¥.¥G:" E:¥
ドライブE:
が一杯になると、別のディスクを使用できます。この方法で、データファイル7のバックアップを複数のファイルに分割できます。
同様に、バックアップをリストアするときには、データファイル7を含む表領域をオフラインにし、次のコマンドを実行します。
# first argument is drive, second argument is directory OCOPY -r E:¥ "¥¥.¥G:"
Volume Shadow Copy Service(VSS)は、アプリケーションでシャドウ・コピーと呼ばれる一貫性のあるスナップショットの作成を可能にするWindows APIのセットです。Oracle VSSライターは、Windowsシステム上でのサービスとして実行され、VSS対応アプリケーションと統合されます。これらのアプリケーションを使用すると、Oracleインスタンスによって管理されているデータベース・ファイルのスナップショットを作成できます。たとえば、Oracle Databaseを読取り/書込みでオープンしている場合は、そのOracleデータベースのシャドウ・コピーを作成できます。
バックアップがリカバリに使用可能なものであることを確認するために、バックアップを定期的に検証する必要があります。
データファイル・バックアップの有効性を確認する最適な方法は、別のホストにバックアップをリストアして、必要に応じてメディア・リカバリを実行し、データベースのオープンを試行する方法です。このオプションでは、リストア手順のために別のホストを使用できる必要があります。
DBVERIFYプログラムは、オフライン・データファイルに対して物理的なデータ構造の整合性チェックを実行する、外部のコマンドライン・ユーティリティです。DBVERIFYは主に、リストア前にデータファイルのユーザー管理バックアップが有効かどうかを確認する必要がある場合や、データ破損の問題が発生した場合の診断ツールとして使用します。
DBVERIFYの名前と位置はオペレーティング・システムごとに異なります。たとえば、LinuxまたはUNIX上でデータファイルusers01.dbf
の整合性チェックを実行する場合は、次のようにdbv
コマンドを実行します。
% dbv file=users01.dbf
dbv
の出力例を次に示します。
DBVERIFY - Verification starting : FILE = users01.dbf DBVERIFY - Verification complete Total Pages Examined : 250 Total Pages Processed (Data) : 1 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 2 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 247 Total Pages Marked Corrupt : 0 Total Pages Influx : 0
|
![]() Copyright © 2003, 2008, Oracle Corporation. All Rights Reserved. |
|