10.3.1 バックアップの取得方法
ここでは,バックアップを取得するタイミング,バックアップの種類,およびバックアップを取得する手順について説明します。
- メモ
-
-
マルチノード機能を使用している場合のバックアップの取得方法については,「18.9 データベースのバックアップ(マルチノード機能の使用時)」を参照してください。
-
コールドスタンバイ構成の場合のバックアップの取得方法については,「19.6 データベースのバックアップ(コールドスタンバイ構成の場合)」を参照してください。
-
クラウドストレージ機能を使用している場合のバックアップの取得方法については,「22.1 バックアップの取得とデータベースの回復」を参照してください。
-
(1) バックアップを取得するタイミング
原則として,障害発生時などにデータベースを回復するために,定期的にバックアップを取得するようにしてください。特に,次に示す運用項目を実施する前には,必ずバックアップを取得してください。
-
adbmodareaコマンドを実行する場合
-
HADBサーバのバージョンアップを実施する場合
- 重要
-
データベースのバックアップを取得する際は,データ用DBエリアファイルを含む必要なファイルすべてのバックアップを取得してください。このバックアップをフルバックアップといいます。
(2) バックアップを取得する手順
データベースのバックアップを取得する手順を次に示します。
図中の各手順の詳細を次で説明します。なお,図中の番号は,次に示す各手順の番号と対応しています。
なお,手順2.のデータベースの更新を抑止するで,HADBサーバの稼働モードを静止モードに変更するを選択する場合は,手順1.を飛ばして手順2.から開始してください。
-
更新不可状態の実表の有無を確認する
データベースのバックアップを取得する前に,更新不可状態の実表がないことを確認する必要があります。adbdbstatusコマンドに,-c tableオプションを指定して実行してください。なお,手順2.でHADBサーバの稼働モードを静止モードに変更する場合は,手順1.の実施は不要です。手順2.に進んでください。
すべての実表の状態を調べる場合の指定例を次に示します。
adbdbstatus -c table
出力結果のNon-updatable列に,non-updatableが出力されていないことを確認してください。non-updatableが出力されている場合,実表が更新不可状態になっています。「16.8.1 実表が更新不可状態になった場合」を参照して,更新不可状態を解除してください。
- 重要
-
更新不可状態の実表がある状態でバックアップを取得し,そのバックアップからデータベースを回復してしまうと,実表の更新不可状態を解除できなくなるおそれがあります。実表が更新不可状態の場合,検索処理や更新処理を実行できません。
-
データベースの更新を抑止する
データベースのバックアップを取得する前に,データベースの更新を抑止する必要があります。次に示すどちらかを必ず実施してください。
-
HADBサーバを正常終了する
HADBサーバを終了しても問題ない場合は,adbstopコマンドを実行して,HADBサーバを正常終了してください。
-
HADBサーバの稼働モードを静止モードに変更する
HADBサーバが稼働中で終了できない場合は,adbchgsrvmode --quiescenceコマンドを実行して,稼働モードを静止モードに変更してください。
- 重要
-
稼働モードを静止モードにしてバックアップを取得した場合,データベースの回復後にHADBサーバを開始すると,HADBサーバは再開始します。この場合,バックアップ取得後にサーバ定義を変更していると,取得したバックアップから回復したあとでHADBサーバを再開始できないことがあります。そのため,静止モードにしてバックアップを取得する場合は,手順6.でサーバ定義ファイルのバックアップをあわせて取得することを推奨します。なお,サーバ定義の変更によって再開始できない場合は,KFAA50024-EメッセージおよびKFAA50025-Eメッセージを基に対策してください。
-
-
HADBサーバの状態を確認する
手順2.が完了したら,HADBサーバの状態を確認します。次に示すコマンドを実行して,データベースの更新を抑止できていることを確認してください。
adbls -d srv
実行結果のSTATUSの項目を確認してください。
-
HADBサーバを正常終了した場合
出力項目のSTATUSが,STOPになっていることを確認してください。確認したら,手順5.に進んでください。
-
HADBサーバの稼働モードを静止モードに変更した場合
出力項目のSTATUSが,QUIESCEになっていることを確認してください。確認したら,手順4.に進んでください。
-
-
更新不可状態の実表の有無を確認する
データベースのバックアップを取得する前に,更新不可状態の実表がないことを確認する必要があります。adbdbstatusコマンドに,-c tableオプションを指定して実行してください。
なお,手順2.でHADBサーバを正常終了した場合は,手順5.に進んでください。
すべての実表の状態を調べる場合の指定例を次に示します。
adbdbstatus -c table
出力結果のNon-updatable列に,non-updatableが出力されていないことを確認してください。non-updatableが出力されている場合,実表が更新不可状態になっています。「16.8.1 実表が更新不可状態になった場合」を参照して,更新不可状態を解除してください。
-
データベースのバックアップを取得する
データベースの更新を抑止したら,バックアップを取得できます。バックアップを取得する必要があるファイルは,すべてバックアップを取得してください。一部のファイルだけバックアップを取得すると,バックアップから回復するときにデータベースの整合性が取れなくなり,その後の動作を保証できません。
対象のファイルがシンボリックリンクファイルの場合は,リンク先のファイルおよびブロックスペシャルファイルについても,バックアップを取得してください。なお,バックアップを取得するファイルは,スパースファイルにしないでください。
バックアップを取得する必要があるファイルを次の表に示します。
表10‒6 バックアップを取得する必要があるファイルの一覧 項番
バックアップを取得する必要があるファイル
ファイルの格納先
ファイルの種類
1
コマンドステータスファイル
$DBDIR/ADBSYS/ADBUTL
レギュラーファイル
2
システムログファイル
$DBDIR/ADBSYS/ADBSLG
レギュラーファイル
3
ステータスファイル
$DBDIR/ADBSYS/ADBSTS
レギュラーファイル
4
マスタディレクトリ用DBエリアファイル
$DBDIR/ADBMST
レギュラーファイル,またはブロックスペシャルファイル
5
ディクショナリ用DBエリアファイル
$DBDIR/ADBDIC
レギュラーファイル,またはブロックスペシャルファイル
6
システム表用DBエリアファイル
$DBDIR/ADBSTBL
レギュラーファイル,またはブロックスペシャルファイル
7
データ用DBエリアを構成するすべてのファイル
$DBDIR/DBAREA※1
レギュラーファイル,またはブロックスペシャルファイル
8
アーカイブファイル
アーカイブディレクトリ※2
レギュラーファイル
9
同義語辞書ファイル
同義語辞書ファイルの格納ディレクトリ※3
レギュラーファイル
- 注※1
-
adbinitコマンドまたはadbmodareaコマンドで,ユーザが指定した名称になります。
- 注※2
-
CREATE TABLE文のチャンクアーカイブ指定のARCHIVEDIRで指定したディレクトリです。
- 注※3
-
サーバ定義のadb_syndict_storage_pathオペランドに指定したディレクトリです。
同義語辞書ファイルは,同義語一覧定義ファイルから再作成できるため,同義語一覧定義ファイルを保管している場合は,同義語辞書ファイルをフルバックアップの取得対象に含める必要はありません。ただし,この場合,データベースの回復時,データベースと同義語辞書ファイルの同期は取られません。そのため,フルバックアップの取得後に同義語辞書を更新した場合,次の検索結果が異なることがあります。
・フルバックアップ取得時点の同義語検索の検索結果
・データベースをフルバックアップ取得時点に回復したときの同義語検索の検索結果
- メモ
-
次に示すディレクトリ下のファイルについては,バックアップの取得は不要です。
-
作業用ディレクトリ下($DBDIR/ADBWORK)のファイル
-
障害情報(コアファイル)の出力先ディレクトリ下($DBDIR/SPOOL)のファイル
サーバ定義adb_core_pathオペランドを指定した場合は,adb_core_pathオペランドに指定したディレクトリになります。
なお,これらのファイルも,上記の表に示すファイルと一緒にバックアップを取得して,バックアップから回復しても問題はありません。
-
- メモ
-
監査証跡の出力先ディレクトリ(サーバ定義のadb_audit_log_pathオペランドに指定したディレクトリ)下の監査証跡ファイルのバックアップを取得する必要はありません。監査証跡の出力先ディレクトリ下の監査証跡ファイルは,バックアップを取得するのではなく,監査証跡の保存先ディレクトリに移動してください。運用の詳細については,「12.3.1 監査証跡ファイルの移動(監査証跡の保存先ディレクトリへの移動)」を参照してください。
-
サーバディレクトリなどのバックアップを取得する
ディスク障害などのトラブルが発生し,サーバディレクトリまたはクライアントディレクトリの回復が必要になった場合に備えて,次に示すファイルもあわせてバックアップを取得してください。これらのファイルは,データベースの回復には直接は使用しません。
HADBサーバの場合
-
サーバディレクトリ下($ADBDIR/conf)に格納されているすべての定義ファイル
-
サーバディレクトリ下($ADBDIR)にユーザがファイルを作成している場合,作成したすべてのファイル
HADBクライアントの場合
-
クライアントディレクトリ下(Windows版の場合は%ADBCLTDIR%\conf,Linux版の場合は$ADBCLTDIR/conf)に格納されている定義ファイル
-
クライアントディレクトリ下(Windows版の場合は%ADBCLTDIR%,Linux版の場合は$ADBCLTDIR)にユーザがファイルを作成している場合,作成したすべてのファイル
-
-
データベースの更新抑止を解除する
バックアップの取得が完了したら,データベースの更新抑止を解除します。
-
手順2.でHADBサーバを正常終了した場合
adbstartコマンドを実行して,HADBサーバを開始してください。
-
手順2.でHADBサーバの稼働モードを静止モードに変更した場合
adbchgsrvmode --normalコマンドを実行して,稼働モードを通常モードに変更してください。
これで,バックアップの取得は完了です。
-