22.1.1 バックアップの取得方法とデータベースの回復方法(AWS環境の場合)
AWS環境でデータベースのバックアップを取得する手順,およびバックアップを使用したデータベースの回復手順を説明します。
(1) バックアップの取得方法(AWS環境の場合)
AWS環境でデータベースのバックアップを取得する手順を説明します。
- メモ
-
バックアップを取得する前に,「10.3.1 バックアップの取得方法」の「(1) バックアップを取得するタイミング」を参照して,バックアップ取得時の留意事項を確認してください。
手順
-
HADBサーバの稼働モードを静止モードに変更する
adbchgsrvmode --quiescence
-
バックアップを取得する
次の表に示すファイルとDBエリアのデータを格納しているS3オブジェクトのバックアップを取得してください。
表22‒1 バックアップを取得するファイルおよびS3オブジェクト 格納先のストレージ種別
バックアップを取得するファイルおよびS3オブジェクト
EBS
コマンド用ステータスファイル
$DBDIR/ADBSYS/ADBUTLに格納されているファイル
システムログファイル
$DBDIR/ADBSYS/ADBSLGに格納されているファイル
ステータスファイル
$DBDIR/ADBSYS/ADBSTS/ADBSTS
Amazon S3
マスタディレクトリ用DBエリア
S3バケット※内の全S3オブジェクト
ディクショナリ用DBエリア
システム表用DBエリア
データ用DBエリア
- 注※
-
バケットタイプによって,S3オブジェクトのバックアップの取得方法が異なります。
- ■EBS内のファイルのバックアップの取得方法
-
次のどちらかの方法でバックアップを取得します。
-
バックアップ対象ファイルが格納されているすべてのEBSのEBSスナップショットを取得する
EBSスナップショットを取得する方法については,AWSのドキュメントのAmazon EBSスナップショットを参照してください。
-
バックアップ対象ファイルをコピーする
ファイルをコピーする場合は,スパースファイルにしないでください。
- 重要
-
バックアップ対象ファイルがシンボリックリンクの場合,リンク先のファイルのバックアップを取得してください。
-
- ■S3オブジェクトのバックアップの取得方法(S3バケットが汎用バケットの場合)
-
汎用バケット内のS3オブジェクトのバックアップを取得する場合は,AWSが提供している機能のAWS Backupまたはオブジェクトのレプリケーションを使用してください。
-
AWS Backupを使用してバックアップを取得する場合
Amazon S3用のAWS Backupを使用して,汎用バケット内の全S3オブジェクトのバックアップを取得してください。AWS Backupの使用方法については,AWSのドキュメントのAmazon S3用のAWS Backupの使用を参照してください。
なお,AWS BackupでS3オブジェクトのバックアップを取得する場合は,事前にAmazon S3のバージョニング機能を有効にしておく必要があります。バージョニング機能を有効にする方法については,AWSのドキュメントのバケットでのバージョニングの有効化を参照してください。
- 重要
-
バージョニング機能を有効にした場合,S3オブジェクトに格納しているデータを更新するたびに,そのS3オブジェクトのバージョンが取得されます(更新前のS3オブジェクトの複製が作成されます)。取得したバージョンごとにAmazon S3のストレージ料金が発生するため,Amazon S3の利用料金を抑えたい場合は,次のことを検討してください。
-
S3オブジェクトのライフサイクルを適切に設定し,保存するバージョン数を制限する
-
オブジェクトのレプリケーションを使用してバックアップを取得する
S3オブジェクトのライフサイクルの設定方法については,AWSのドキュメントのストレージのライフサイクルの管理を参照してください。
-
-
オブジェクトのレプリケーションを使用してバックアップを取得する場合
オブジェクトのレプリケーションを使用して,汎用バケット内の全S3オブジェクトのコピーを取得してください。オブジェクトのレプリケーションの使用方法については,AWSのドキュメントのオブジェクトのレプリケーションを参照してください。
-
- ■S3オブジェクトのバックアップの取得方法(S3バケットがディレクトリバケットの場合)
-
ディレクトリバケット内のS3オブジェクトのバックアップを取得する場合は,ディレクトリバケット内の全S3オブジェクトを,バックアップ用に別途用意した空の汎用バケットにフォルダごとコピーしてください。その際,コピー先の汎用バケットに書き込むためのs3:PutObjectアクセス許可が必要となります。必要に応じて「21.1.4 AWS環境でのHADBサーバの構築」の「(6) Amazon S3へのアクセスに必要な認証情報の設定」の「(a) IAMロールを使用した認証情報の設定」で作成したIAMロールを修正してください。
-
HADBサーバの稼働モードを元に戻す
adbchgsrvmode --normal
1.で変更した稼働モードを元に戻します。上記は,稼働モードを通常モードに戻す場合の例です。
(2) データベースの回復方法(AWS環境の場合)
AWS環境でバックアップを使用したデータベースの回復手順を説明します。
- メモ
-
データベースの回復をする前に,「10.3.2 バックアップからの回復方法」の内容も確認してください。
手順
-
HADBサーバを正常終了する
adbstop
-
バックアップを使用してデータベースを回復する
EBS内のファイルと,S3バケット内のS3オブジェクトを回復してください。
- ■EBS内のファイルの回復方法
-
-
EBSスナップショットでバックアップを取得した場合
EBSスナップショットを使用してEBSを復元してください。復元方法については,AWSのドキュメントのスナップショットからのAmazon EBSボリュームの復元およびAmazon EBSボリュームの初期化を参照してください。
-
バックアップ対象ファイルをコピーした場合
コピーしたファイルを元の位置に戻してください。
-
- ■S3オブジェクトの回復方法(S3バケットが汎用バケットの場合)
-
-
AWS Backupでバックアップを取得した場合
S3バケット内の全S3オブジェクトを削除して,S3バケットを空にしてください。S3バケットを空にする方法については,AWSのドキュメントのバケットを空にするを参照してください。
次に,AWS Backupで取得したバックアップを使用して,S3オブジェクトを復元してください。復元方法については,AWSのドキュメントのS3データの復元を参照してください。
-
オブジェクトのレプリケーションを使用してバックアップを取得した場合
オブジェクトのレプリケーションでコピーしたS3オブジェクトの格納先のS3バケット名とリージョン名を,サーバ定義のadb_sys_cld_aws_bucketオペランドとadb_sys_cld_aws_regionオペランドに指定してください。
-
- ■S3オブジェクトの回復方法(S3バケットがディレクトリバケットの場合)
-
次の手順でS3オブジェクトを回復してください。
- 1.ディレクトリバケットを空にする
-
回復対象のディレクトリバケット内の全S3オブジェクトを削除して,ディレクトリバケットを空にしてください。ディレクトリバケットを空にする方法については,AWSのドキュメントのバケットを空にするを参照してください。
- 2.ディレクトリバケットにS3オブジェクトをコピーする
-
バックアップの取得時にS3オブジェクトをコピーした汎用バケットに格納されている全S3オブジェクトを,1.で空にしたディレクトリバケットにフォルダごとコピーしてください。その際,コピー元の汎用バケットを読み取るためのs3:GetObjectアクセス許可が必要となります。必要に応じて「21.1.4 AWS環境でのHADBサーバの構築」の「(6) Amazon S3へのアクセスに必要な認証情報の設定」の「(a) IAMロールを使用した認証情報の設定」で作成したIAMロールを修正してください。
-
HADBサーバを開始する
adbstart
-
HADBサーバの稼働モードを変更する
HADBサーバの稼働モードを静止モードにした状態でバックアップを取得した場合,データベースを回復したあとにHADBサーバを開始すると,HADBサーバの稼働モードは静止モードになります。この場合,必要に応じてadbchgsrvmodeコマンドを実行し,HADBサーバの稼働モードをデータベースを回復する前の状態に戻してください。
adbchgsrvmode --normal
上記は,稼働モードを通常モードに戻す場合の例です。
- メモ
-
データベースを回復した直後のHADBサーバの開始後の場合,キャッシュファイルの再利用はできません。