Amazon RDS Custom for Oracle DB インスタンスのバックアップと復元 - Amazon Relational Database Service

Amazon RDS Custom for Oracle DB インスタンスのバックアップと復元

Amazon RDS 同様、RDS Custom は、DB インスタンスのバックアップ中に RDS Custom for Oracle DB インスタンスの自動バックアップを作成して保存します。また、手動で DB インスタンスをバックアップすることもできます。

手順は、Amazon RDS DB インスタンスのスナップショット取得と同じです。 RDS Custom DB インスタンスの初期のスナップショットには、フル DB インスタンスのデータが含まれています。その後のスナップショットは増分です。

AWS Management Console または AWS CLI を使用して DB スナップショットを復元します。

RDS Custom for SQL Server スナップショットの作成

RDS Custom for Oracle は DB インスタンスのストレージボリュームのスナップショットを作成し、個々のデータベースだけではなく、DB インスタンス全体をバックアップします。DB インスタンスにコンテナデータベース (CDB) が含まれている場合、インスタンスのスナップショットにはルート CDB とすべての PDB が含まれます。

RDS Custom for Oracle スナップショットを作成するときに、バックアップする RDS Custom DB インスタンスを指定します。次に、スナップショットに名前を付けて、後でそこから復元できるようにします。

スナップショットを作成すると、RDS Custom for Oracle は DB インスタンスに添付されたすべてのボリュームに対して Amazon EBS スナップショットを作成します。RDS Custom for Oracle は、ルートボリュームの EBS スナップショットを使用して新しい Amazon マシンイメージ (AMI) を登録します。特定の DB インスタンスと簡単に関連付けられるように、スナップショットには DBSnapshotIdentifierDbiResourceIdVolumeType のタグが付けられています。

DB スナップショットを作成すると、短時間の I/O が発生します。この一時停止は、DB インスタンスのサイズとクラスに応じて、数秒から数分続く場合があります。スナップショットの作成時間は、データベースのサイズによって異なります。スナップショットにはストレージボリューム全体が含まれており、テンポラリファイルなどのファイルサイズも、スナップショットの作成時間に影響します。スナップショットの作成の詳細については、「シングル AZ DB インスタンスの DB スナップショットの作成」を参照してください。

コンソールまたはAWS CLIを使用して RDS Custom for Oracle スナップショットを作成します。

RDS Custom スナップショットを作成するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. RDS Custom DB インスタンスのリストで、スナップショットを取得する DB インスタンスを選択します。

  4. アクション で、スナップショットの取得 を選択します。

    [Take DB snapshot] (DB スナップショットの取得) ウィンドウが表示されます。

  5. [スナップショット名] に、スナップショットの名前を入力します。

  6. スナップショットの取得 を選択します。

create-db-snapshot AWS CLIコマンドを使用して、RDS Custom DB インスタンスのスナップショットを作成します。

以下のオプションを指定します。

  • --db-instance-identifier - バックアップする RDS Custom DB インスタンスを指定します。

  • --db-snapshot-identifier - RDS Custom スナップショットに名前を付けて、後でそこから復元できるようにします。

この例では、my-custom-instance という RDS Custom DB インスタンスの、my-custom-snapshot という DB スナップショットを作成します。

Linux、macOS、Unix の場合:

aws rds create-db-snapshot \ --db-instance-identifier my-custom-instance \ --db-snapshot-identifier my-custom-snapshot

Windows の場合:

aws rds create-db-snapshot ^ --db-instance-identifier my-custom-instance ^ --db-snapshot-identifier my-custom-snapshot

RDS Custom for Oracle DB スナップショットからの復元

RDS Custom for Oracle DB インスタンスを復元するときは、DB スナップショットの名前と新しいインスタンスの名前を指定します。スナップショットから既存の RDS Custom DB インスタンスに復元することはできません。復元するときに新しい RDS Custom for Oracle DB インスタンスが作成されます。

復元プロセスは、Amazon RDS での復元とは以下の点が異なります。

  • スナップショットを復元する前に、RDS Custom for Oracle は既存の設定ファイルをバックアップします。これらのファイルは、ディレクトリ/rdsdbdata/config/backup内の復元したインスタンスで使用できます。RDS Custom for Oracle は、DB スナップショットをデフォルトのパラメータで復元し、以前のデータベース設定ファイルを既存のもので上書きします。そのため、復元したインスタンスは、カスタムパラメータとデータベース設定ファイルの変更を保持しません。

  • 復元したデータベースの名前は、スナップショットと同じです。必要に応じて、別の名前を指定できます。(RDS Custom for Oracle の場合、デフォルトはORCLです。)

DB スナップショットから RDS Custom DB インスタンスを復元するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインで、[Snapshots] を選択します。

  3. 復元の元にする DB スナップショットを選択します。

  4. [アクション] で、[スナップショットの復元] を選択します。

  5. DB インスタンスの復元 ページで、DB インスタンス識別子 に、復元した RDS Custom DB インスタンスの名前を入力します。

  6. DB インスタンスの復元 を選択します。

RDS Custom DB スナップショットを復元するには、DBスナップショットからDBインスタンスを復元する AWS CLI コマンドを使用します。

復元元のスナップショットがプライベート DB インスタンスの場合、db-subnet-group-nameno-publicly-accessible の両方を正しく指定してください。そうでなければ、DB インスタンスはデフォルトでパブリックアクセスに設定されます。以下のオプションは必須です。

  • db-snapshot-identifier - 復元元のスナップショットを識別します。

  • db-instance-identifier - DB スナップショットから作成する RDS Custom DB インスタンスの名前を指定します。

  • custom-iam-instance-profile — RDS Custom DB インスタンスの基盤となる Amazon EC2 インスタンスに関連付けられているインスタンスプロファイルを指定します。

次のコードは、my-custom-instancemy-custom-snapshot という名前のスナップショットを復元します。

Linux、macOS、Unix の場合:

aws rds restore-db-instance-from-db-snapshot \ --db-snapshot-identifier my-custom-snapshot \ --db-instance-identifier my-custom-instance \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --no-publicly-accessible

Windows の場合:

aws rds restore-db-instance-from-db-snapshot ^ --db-snapshot-identifier my-custom-snapshot ^ --db-instance-identifier my-custom-instance ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --no-publicly-accessible

RDS Custom for Oracle インスタンスをポイントインタイムに復元する

DB インスタンスを特定の時点に復元し (PITR)、新しい DB インスタンスを作成できます。PITR をサポートするには、DB インスタンスのバックアップ保持がゼロ以外の値に設定されている必要があります。

RDS Custom for Oracle DB インスタンスの最新の復元可能時間はいくつかの要因によって異なりますが、通常は現在時間から 5 分以内です。DB インスタンスの復元可能な直近の時間を確認するには、AWS CLI の describe-db-instances コマンドを使用し、DB インスタンスの [LatestRestorableTime] フィールドに返される値を確認します。Amazon RDS コンソールで各 DB インスタンスの復元可能な直近の時間を表示するには、[自動バックアップ] をクリックします。

バックアップ保持期間の任意の時点に復元できます。各 DB インスタンスの復元可能な最も早い時間を表示するには、Amazon RDS コンソールで [自動バックアップ] をクリックします。

PITR の一般情報については、「特定の時点への DB インスタンスの復元」を参照してください。

RDS Custom for Oracle の PITR に関する考慮事項

RDS Custom for Oracle では、PITR は Amazon RDS の PITR と以下の重要な点で異なります。

  • 復元されたデータベースの名前は、出典 DB インスタンスと同じです。必要に応じて、別の名前を指定できます。デフォルト: ORCL

  • AWSRDSCustomIamRolePolicy は新しいアクセス許可を必要とします。詳細については、「ステップ 2: AWSRDSCustomInstanceRoleForRdsCustomInstance にアクセスポリシーを追加します。」を参照してください。

  • すべての RDS Custom for Oracle DB インスタンスのバックアップ保持は、ゼロ以外の値に設定されている必要があります。

  • OSまたは DB インスタンスのタイムゾーンを変更すると、PITR が機能しない可能性があります。タイムゾーンの変更については、「Oracle のタイムゾーン」を参照してください。

  • オートメーションを ALL_PAUSED に設定すると、RDS Custom は最新の復元可能時間 (LRT) の前に作成されたログを含む、アーカイブされた REDO ログファイルのアップロードを一時停止します。オートメーションは短期間、一時停止することをお勧めします。

    説明のために、LRT が 10 分前だと仮定します。オートメーションを一時停止します。一時停止中は、RDS Custom はアーカイブされた REDO ログをアップロードしません。DB インスタンスがクラッシュした場合、一時停止時に存在していた LRT 以前の時間までしか回復できません。オートメーションを再開すると、RDS Custom はログのアップロードを再開します。LRT は進みます。通常の PITR のルールが適用されます。

  • RDS Custom では、アップロード後に RDS Custom がアーカイブした REDO ログを削除する前に、アーカイブされた REDO ログを保持する時間数をマニュアルで指定できます。時間数を次のように指定します。

    1. /opt/aws/rdscustomagent/config/redo_logs_custom_configuration.json という名前のテキストファイルを作成します。

    2. 以下の形式の JSON オブジェクトを追加します: {"archivedLogRetentionHours" : "num_of_hours"}。数値は 1 ~ 840 の範囲の整数である必要があります。

  • 非 CDB を PDB としてコンテナデータベース (CDB) に接続し、PITR を試みると仮定します。このオペレーションは、以前に PDB をバックアップしている場合のみ成功します。PDB を作成または変更した後は、常にバックアップすることをお勧めします。

  • データベースの初期化パラメータはカスタマイズしないことをお勧めします。例えば、次のパラメータを変更すると PITR に影響します。

    • CONTROL_FILE_RECORD_KEEP_TIMEは、ログのアップロードと削除のルールに影響します。

    • LOG_ARCHIVE_DEST_nでは、複数の復元先をサポートしていません。

    • ARCHIVE_LAG_TARGET は最新の復元可能時間に影響します。目標復旧時点 (RPO) が 5 分であるため、ARCHIVE_LAG_TARGET300 に設定されています。この目標を達成するために、RDS はオンラインの REDO ログを 5 分ごとに切り替えて、Amazon S3 バケットに保存します。ログの切り替え頻度が RDS Custom for Oracle データベースのパフォーマンス上の問題を引き起こす場合は、DB インスタンスとストレージを IOPS およびスループットの高いものにスケーリングできます。リカバリプランに必要な場合は、ARCHIVE_LAG_TARGET 初期化パラメータの設定を 60~7200 の値に調整できます。

  • データベース初期化パラメータをカスタマイズする場合は、以下のカスタマイズのみを強くお勧めします。

    • COMPATIBLE

    • MAX_STRING_SIZE

    • DB_FILES

    • UNDO_TABLESPACE

    • ENABLE_PLUGGABLE_DATABASE

    • CONTROL_FILES

    • AUDIT_TRAIL

    • AUDIT_TRAIL_DEST

    その他の初期化パラメータについては、RDS Custom がデフォルト値を復元します。上記のリストにないパラメータを変更すると、PITR に悪影響を及ぼし、予期しない結果につながる可能性があります。例えば、CONTROL_FILE_RECORD_KEEP_TIMEはログのアップロードと削除のルールに影響します。

AWS Management Console、AWS CLI、またはRDS API を使用して、 RDS Custom DB インスタンスをあるポイントに復元することができます。

特定の時点に RDS Custom DB インスタンスを復元するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインで、「自動バックアップ」を選択します。

  3. 復元する RDS Custom DB インスタンスを選択します。

  4. アクション」 で、「特定時点への復元」 を選択します。

    [特定時点への復元] ウィンドウが表示されます。

  5. Latest restorable time」 を選択してできるだけ最新の時点に復元するか、「カスタム」 を選択して時刻を選択します。

    カスタム」 を選択した場合、インスタンスクラスターを復元する日時を入力します。

    時刻は、協定世界時 (UTC) からのオフセットとしてローカルタイムゾーンで表示されます。例えば、UTC-5 は東部スタンダード時/中部夏時間です。

  6. DB インスタンス識別子」 に、ターゲットが復元された RDS Custom DB インスタンスの名前を入力します。名前は一意である必要があります。

  7. 必要に応じて、DB インスタンスクラスなどの他のオプションを選択します。

  8. [Restore to point in time] (特定時点への復元) を選択します。

特定のポイントに DB インスタンスを復元するには、restore-db-instance-to-point-in-time AWS CLIコマンドを使用して、RDS Custom DB インスタンスを作成します。

次のいずれかのオプションを使用して、復元元のバックアップを指定します。

  • --source-db-instance-identifier mysourcedbinstance

  • --source-dbi-resource-id dbinstanceresourceID

  • --source-db-instance-automated-backups-arn backupARN

custom-iam-instance-profile オプションは必須です。

次の例は、指定された時刻に my-custom-db-instancemy-restored-custom-db-instance という新しい DB インスタンスに復元します。

Linux、macOS、Unix の場合:

aws rds restore-db-instance-to-point-in-time \ --source-db-instance-identifier my-custom-db-instance\ --target-db-instance-identifier my-restored-custom-db-instance \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \ --restore-time 2022-10-14T23:45:00.000Z

Windows の場合:

aws rds restore-db-instance-to-point-in-time ^ --source-db-instance-identifier my-custom-db-instance ^ --target-db-instance-identifier my-restored-custom-db-instance ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^ --restore-time 2022-10-14T23:45:00.000Z

RDS Custom for Oracle スナップショットの削除

RDS Custom for Oracle で管理しているDBスナップショットは、不要になったら削除することができます。削除手順は、Amazon RDS および RDS Custom DB インスタンスのどちらでも同じです。

バイナリボリュームとルートボリュームの Amazon EBS スナップショットは、アカウントで実行されているいくつかのインスタンスや、他の RDS Custom for Oracle スナップショットにリンクされている可能性があるため、長期間アカウントに残ります。これらの EBS スナップショットは、既存の RDS Custom for Oracle リソース (DB インスタンスまたはバックアップ) に関連しなくなった後に自動的に削除されます。

RDS Custom DB インスタンスのスナップショットを削除するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインで、「Snapshots」 を選択します。

  3. 削除する DB スナップショットを選択します。

  4. アクション」 で、「スナップショットの削除」 を選択します。

  5. 確認ページで、「削除」 を選択します。

RDS Custom スナップショットを削除するには、AWS CLIコマンドdelete-db-snapshotを使用します。

以下のような必須オプションがあります。

  • --db-snapshot-identifier - 削除するスナップショット

以下の例では、DB スナップショット my-custom-snapshot を削除します。

Linux、macOS、Unix の場合:

aws rds delete-db-snapshot \ --db-snapshot-identifier my-custom-snapshot

Windows の場合:

aws rds delete-db-snapshot ^ --db-snapshot-identifier my-custom-snapshot

RDS Custom for Oracle 自動バックアップの削除

RDS Custom for Oracle の保持された自動バックアップは、不要になったら削除できます。手順は、Amazon RDS バックアップの削除と同じです。

保持されている自動バックアップを削除するには
  1. AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/ を開きます。

  2. ナビゲーションペインで、[Automated backups] (自動バックアップ) を選択します。

  3. [Retained] (保持) を選択します。

  4. 削除する保持された自動バックアップを選択します。

  5. アクション」 で、「削除」 を選択します。

  6. 確認ページで、delete me を入力し、[Delete] (削除) を選択します。

AWS CLI コマンド delete-db-instance-automated-backup を使用して、保持されている自動バックアップを削除できます。

保持されている自動バックアップを削除するには、以下のオプションを使用します。

  • --dbi-resource-id - 出典 RDS Custom DB インスタンスのリソース識別子です。

    AWS CLI コマンド describe-db-instance-automated-backups を使用すると、保持された自動バックアップの出典 DB インスタンスのリソース識別子を見つけることができます。

次の例では、ソース DB インスタンスのリソース識別子 custom-db-123ABCEXAMPLE を持つ保持された自動バックアップを削除します。

Linux、macOS、Unix の場合:

aws rds delete-db-instance-automated-backup \ --dbi-resource-id custom-db-123ABCEXAMPLE

Windows の場合:

aws rds delete-db-instance-automated-backup ^ --dbi-resource-id custom-db-123ABCEXAMPLE