ハードウェアエラーまたはデータベースエラーの発生後は、関連するデータベースインスタンスのデータをリストアします。この作業は、そのデータベースインスタンスのデータバックアップとログバックアップ (存在する場合) をインポートすることによって行います。
最初のステップではバックアップ履歴を照会し、最新の完全データバックアップとそれ以降に実行された増分データバックアップを確認します(参照: backup_history_open、backup_history_list)。バックアップの行の情報に注意してください。それぞれのバックアップが実行された時間と格納されているページが表示されています。最新のエントリがファイルの最後に示されています。
次のステップでは完全データバックアップをインポートし、続けて増分データバックアップをインポートします (参照: recover_start)。データバックアップのインポートが完了するたびに、そのデータバックアップのあとにインポートする次ページが示されます。
データバックアップのインポート後、再起動情報を照会し、データベースインスタンスを再起動する準備が完了しているかどうかと、どのページからログ領域のログエントリが存在するかを確認します (参照: db_restartinfo)。
データバックアップ後にインポートする次ページがデータベースインスタンスのログ領域にまだ存在する場合は、ここでデータベースインスタンスを再起動します(参照: db_restart)。ログ領域からログエントリがインポートされるため、データベースインスタンスは直近の整合性のある状態にリストアされます。データベースインスタンスを直近の整合性のある状態にリストアするのではなく、過去のある時点にリストアする場合は、データベースインスタンスの再起動時にその時点をオプションとして入力します。
データバックアップ後にインポートするページがログ領域の最小ページ番号よりも小さい場合は、バックアップ履歴を照会して、そのページが格納されているバックアップを確認します。該当するデータバックアップまたはログバックアップをインポートし、少なくともログ領域の最小ページ番号の先行ページが格納されているバックアップまで、後続のすべてのバックアップを発生順に続けてインポートします (参照: recover_replace)。このページをインポートするとバックアップのインポートが終了し、ログ領域にまだ存在するエントリによってデータベースインスタンスが起動されます (再起動)。
参照:
最初のバックアップは DBM コマンド recover_startを使用してインポートします。後続のすべてのバックアップのインポートには DBM コマンド recover_replace を使用します。
何らかの理由によりバックアップのインポートを中止したり、次のコマンドの入力時にミスを犯したりすると、データベースインスタンスの操作状態は自動的に OFFLINE に切り替わります。
そのため、データベースインスタンスの操作状態を元の ADMIN に切り替えて、データベースセッションを再開する必要があります。この時点で db_restartinfo を再度実行し、インポートしたページですでに永続的にデータ保存されている部分はどれか、どのページを再度インポートする必要があるかについて確認します。この場合は、recover_start を使用してインポートを再開し、再起動情報にもとづいて要求される最初のページをインポートし、recover_replace を使用して後続のすべてのバックアップをインポートします。
前提条件について確認するには、データベースマネージャ CLIの recover_start、recover_replaceを参照してください。
参照:
バックアップのインポートにおける再起動情報とバックアップ履歴の評価
データベースシステムのコンセプト、バックアップとリストア、データベースインスタンスのリストア
用語集、バックアップ履歴
ハードウェアエラーの発生後にデータベースインスタンスをリストアします。
この例をシミュレートするには、データベースインスタンスにデータボリュームが 2 つ以上必要です。DBM コマンド param_getvolsall を使用すると、利用可能なボリュームをすべて照会することができます。必要な場合は、名称 DISKD0002 の追加ボリュームをパス c:\documents and settings\all users\application data\sdb\data\demodb\data に作成します (参照: データベースインスタンスの拡張、シナリオ 3)。
ここで、データベースインスタンスの操作状態を ADMIN に切り替えます。オペレーティングシステムコマンドを使用してデータボリューム DISKD0002 を削除することにより、ハードウェアエラーをシミュレートします。
データベースインスタンスの操作状態は ADMIN のままですが、データ領域に以前格納されていたデータはすべて失われました。データベースインスタンスをリストアする必要があります。
次の例では、出力の関連する値にボールド文字が使用され、出力の説明にはコメントを表す番号記号 (#) が付いています。
最初のステップは、利用可能なバックアップに関する情報を照会および評価することです。
...
1. データベースマネージャCLI をセッションモードで呼び出し、パスワードに MONDAYを指定してユーザ OLEG としてログオンし、データベースインスタンス DEMODBに接続します。
>dbmcli -u OLEG,MONDAY -d DEMODB
dbmcli on DEMODB>
2. バックアップ履歴を開きます。
dbmcli on demodb>backup_history_open
OK
3. バックアップ履歴を照会します。
dbmcli on demodb>backup_history_list
OK
END
…
# DAT_000000002 のラベルの付いたものが最新の完全データバックアップです。このバックアップを最初にインポートする必要があります。
# 次ページは 9531 です。
| |
43C7BBD1000B|DAT_000000002|SAVE WARM|2006-01-13 15:40:17|2006-01-13 15:40:17|200
6-01-13 15:40:17|2006-01-13 15:40:17| 9531| |NO |DemoDataCompl
| 384| 1| 0
# ページ 9531 はラベル LOG_000000007 のログバックアップに含まれています。そのため、完全データバックアップの直後にこのログバックアップをインポートする必要があります。
# このインポートにはページ 9531 から11828 が含まれ、インポートする次ページは 11829 です。
| |
43C7BBE5000C|LOG_000000007|SAVE WARM|2006-01-13 15:40:23|2006-01-13 15:40:37|200
6-01-13 15:40:37|2006-01-13 15:40:38| 9531| 11828| |DemoFileLog
| 2096| 1| 0
# ページ 11829 はラベル LOG_000000008 のログバックアップに含まれています。そのため、このログバックアップは、ラベル LOG_000000007 のログバックアップの直後にインポートする必要があります。
# このインポートにはページ 11829 から14182 が含まれ、インポートする次ページは 14183 です。
| |
43C7BC01000D|LOG_000000008|SAVE WARM|2006-01-13 15:40:42|2006-01-13 15:40:46|200
6-01-13 15:41:05|2006-01-13 15:41:06| 11829| 14182| |DemoFileLog
| 2152| 1| 0
# ページ 14183 はラベル LOG_000000009 のログバックアップに含まれています。そのため、このログバックアップは、ラベル LOG_000000008 のログバックアップの直後にインポートする必要があります。
# このインポートにはページ 14183 から14358 が含まれ、インポートする次ページは 14359 です。
| |
43C7BC01000D|LOG_000000009|SAVE WARM|2006-01-13 15:40:46|2006-01-13 15:41:05|200
6-01-13 15:41:06|2006-01-13 15:41:07| 14183| 14358| |DemoFileLog
| 176| 1| 0
# ページ 14359 はラベル LOG_000000010 のログバックアップに含まれています。そのため、このログバックアップは、ラベル LOG_000000009 のログバックアップの直後にインポートする必要があります。
# このインポートにはページ 14359 から16712 が含まれ、インポートする次ページは 16713 です。
| |
43C7BC24000E|LOG_000000010|SAVE WARM|2006-01-13 15:41:17|2006-01-13 15:41:21|200
6-01-13 15:41:40|2006-01-13 15:41:42| 14359| 16712| |DemoFileLog
| 2152| 1| 0
# それ以降は、ラベル LOG_000000013 のログバックアップを含むすべてのログバックアップを発生順に続けてインポートする必要があります。
| |
43C7BC24000E|LOG_000000011|SAVE WARM|2006-01-13 15:41:21|2006-01-13 15:41:25|200
6-01-13 15:41:42|2006-01-13 15:41:43| 16713| 19065| |DemoFileLog
| 2152| 1| 0
| |
43C7BC24000E|LOG_000000012|SAVE WARM|2006-01-13 15:41:25|2006-01-13 15:41:40|200
6-01-13 15:41:43|2006-01-13 15:41:43| 19066| 19770| |DemoFileLog
| 656| 1| 0
# ラベル LOG_000000013 のログバックアップには、ページ19771 から 22124 が含まれるため、再起動情報で示されているように、ログ領域の最初のページ(21452) の先行ページが含まれます。
# リストアプロセスの実行中に、このログバックアップの全体がインポートされます。以降のログバックアップをインポートする必要はありません。これらのログバックアップに含まれるページはまだログ領域に存在しており、システムによってログ領域からリストアされるからです。
| |
43C7C497000F|LOG_000000013|SAVE WARM|2006-01-13 16:17:14|2006-01-13 16:17:17|200
6-01-13 16:17:43|2006-01-13 16:17:45| 19771| 22124| |DemoFileLog
| 2152| 1| 0
| |
43C7C497000F|LOG_000000014|SAVE WARM|2006-01-13 16:17:17|2006-01-13 16:17:22|200
6-01-13 16:17:45|2006-01-13 16:17:46| 22125| 24478| |DemoFileLog
| 2152| 1| 0
| |
43C7C497000F|LOG_000000015|SAVE WARM|2006-01-13 16:17:22|2006-01-13 16:17:43|200
6-01-13 16:17:46|2006-01-13 16:17:48| 24479| 26748| |DemoFileLog
| 2080| 1| 0
| |
43C7C5240010|LOG_000000016|SAVE WARM|2006-01-13 16:17:45|2006-01-13 16:20:04|200
6-01-13 16:20:04|2006-01-13 16:20:05| 26749| 28510| |DemoFileLog
| 1616| 1| 0
| |
バックアップに関する情報を取得したので、DEMODB をリストアすることができます。
...
1. データベースインスタンスの操作状態を ADMIN に切り替えます。
dbmcli on demodb>db_admin
OK
2. データベースセッションを開きます。
dbmcli on demodb>db_connect
OK
3. 最新の完全データバックアップをインポートします。
dbmcli on demodb>recover_start DemoDataCompl
OK
Returncode 0
Date 20060117
Time 00114627
Server GENUA
Database DEMODB
Kernel Version Kernel 7.6.00 Build 016-123-109-428
Pages Transferred 384
Pages Left 0
Volumes 1
Medianame DemoDataCompl
Location Backups 2005\data\completeDataJan
Errortext
Label DAT_000000002
Is Consistent true
First LOG Page 9531
# 完全データバックアップのあとに、ページ番号 9531 のログページが要求されます。
Last LOG Page
DB Stamp 1 Date 20060113
DB Stamp 1 Time 00154017
DB Stamp 2 Date
DB Stamp 2 Time
Page Count 362
Devices Used 1
Database ID GENUA:DEMODB_20060113_153806
Max Used Data Page 0
4. 再起動情報を照会します。
dbmcli on demodb>db_restartinfo
OK
Used LOG Page 28513
First LOG Page 21452
# ログ領域にはページ 21452 から28513 がまだ存在します。したがって、データベースを再起動するには、ページ 9531 から 21451 をバックアップからインポートする必要があります。
Restartable 1
# データベースインスタンスを再起動する準備が整いました。ログ領域は損傷を受けていません。
Id Restart Record GENUA:DEMODB_20060113_153806
Id LOG Info GENUA:DEMODB_20060113_153806
Consistent 1
5. ログバックアップをインポートします。
a. ラベル LOG_000000007 のログバックアップをインポートします。
dbmcli on demodb>recover_start DemoFileLog LOG 007
OK
Returncode -8020
# リターンコード -8020 は、コマンド recover_replaceを使用して、後続のバックアップを発生順にインポートする必要があることを示しています。
Date 20060117
Time 00143406
Server GENUA
Database DEMODB
Kernel Version Kernel 7.6.00 Build 016-123-109-428
Pages Transferred 2096
Pages Left 0
Volumes 1
Medianame DemoFileLog
Location Backups 2005\data\logBackup.007
Errortext
Label LOG_000000007
Is Consistent
First LOG Page 9531
Last LOG Page 11828
DB Stamp 1 Date 20060113
DB Stamp 1 Time 00154023
DB Stamp 2 Date 20060113
DB Stamp 2 Time 00154037
Page Count 2297
Devices Used 1
Database ID GENUA:DEMODB_20060113_153806
Max Used Data Page
b. コマンド recover_replace を使用して、ラベル LOG_000000008 のログバックアップをインポートします。
dbmcli on demodb>recover_replace DemoFileLog "C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup" 008
OK
Returncode -8020
Date 20060117
Time 00143406
Server GENUA
Database DEMODB
Kernel Version Kernel 7.6.00 Build 016-123-109-428
Pages Transferred 2152
Pages Left 0
Volumes 1
Medianame DemoFileLog
Location C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup.008
Errortext
Label LOG_000000008
Is Consistent
First LOG Page 11829
Last LOG Page 14182
DB Stamp 1 Date 20060113
DB Stamp 1 Time 00154042
DB Stamp 2 Date 20060113
DB Stamp 2 Time 00154046
Page Count 2353
Devices Used 1
Database ID GENUA:DEMODB_20060113_153806
Max Used Data Page
c. コマンド recover_replace を使用して、ラベル LOG_000000009 のログバックアップをインポートします。
dbmcli on demodb>recover_replace DemoFileLog "C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup" 009
OK
Returncode -8020
Date 20060117
Time 00143406
Server GENUA
Database DEMODB
Kernel Version Kernel 7.6.00 Build 016-123-109-428
Pages Transferred 176
Pages Left 0
Volumes 1
Medianame DemoFileLog
Location C:\Documents and Settings\All Users\Application Data\sdb\data\wrk\DEMODB\Backups 2005\Data\logBackup.009
Errortext
Label LOG_000000009
Is Consistent
First LOG Page 14183
Last LOG Page 14358
DB Stamp 1 Date 20060113
DB Stamp 1 Time 00154046
DB Stamp 2 Date 20060113
DB Stamp 2 Time 00154105
Page Count 175
Devices Used 1
Database ID GENUA:DEMODB_20060113_153806
Max Used Data Page
d. コマンド recover_replace を使用して、LOG_000000010 から LOG_000000013 のラベルが付いた残りのログバックアップをインポートします(セクション aから cを参照)。
# 必要とされる最後のログバックアップがインポートされると、データベースシステムはページ番号がログ領域の最初のページよりも小さいすべてのページを取得したことになり、残りのページがログ領域から自動的にインポートされます。最後に、データベースインスタンスの操作状態が ONLINE に切り替えられます。
データベースインスタンス DEMODB がリストアされました。マニュアルで削除したボリュームは、データベースパラメータファイルの情報にもとづいてリストアされ、ハードディスクの元の場所に再度表示されます。
ハードウェアエラーの発生前にデータ領域とログ領域に格納されていたページはすべて、データベースインスタンスに再び取り込まれ、アクセスできるようになりました。
データベースインスタンスは操作の準備が完了し、ONLINE 操作状態になっています。