Amazon RDS for Oracle DB インスタンスの RMAN バックアップを取得する方法を教えてください。
Recovery Manager (RMAN) を使用して Amazon Relational Database Service (Amazon RDS) for Oracle DB インスタンスのバックアップを取得したいです。
解決策
Amazon RDS for Oracle DB インスタンスの RMAN バックアップを作成する前に、次の制限事項に注意してください。
- DB インスタンスで RMAN バックアップを実行すると、そのインスタンスに割り当てられたストレージの容量を消費します。Amazon Elastic File System (Amazon EFS) 統合を使用して、DB インスタンスの全体的なストレージサイズを増やすことなく、バックアップファイルを拡張ストレージに保存することもできます。
- バックアップの並列オプション、バックアップ圧縮、データベース検証、ブロック変更追跡などの機能は、Oracle Enterprise Edition ユーザーのみが使用できます。詳細については、Oracle のウェブサイトで「Oracle Databse のエディション」を参照してください。
- RMAN 機能は RDS for Oracle のリードレプリカではサポートされていませんが、リードレプリカではブロック変更追跡を使用できます。
- RMAN バックアップを実行する前に、DB インスタンスの自動バックアップを有効にする必要があります。RMAN バックアップはオンライン操作であるため、アーカイブログを有効にする必要があります。インスタンスで自動バックアップを有効にすると、DB インスタンスもアーカイブログモードに設定されます。
DB インスタンスの RMAN バックアップを実行する
DB インスタンスの RMAN バックアップを実行するには、次のいずれかの方法を使用します。
- デフォルトの DATA_PUMP_DIR ディレクトリを使用してください。
- RDS インスタンスの割り当てられたストレージに、バックアップファイルを保存するための新しいディレクトリを作成します。
- Amazon EFS 統合を使用すると、DB インスタンスに割り当てられたストレージの使用を回避できます。
ディレクトリが消費するストレージの量を監視するには、次のクエリを実行します。
SELECT round(SUM(filesize)/1024/1024/1024, 3) SIZE_IN_GB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>'));
DB インスタンスのデータベースの完全バックアップを実行する
データベースの完全バックアップを実行すると、DB インスタンス内のすべてのデータファイルがバックアップされます。これには、制御ファイルとストアドプロシージャファイルが含まれます。
デフォルトのタスクパラメータを使用し、Full_DB_BACKUP というタグ名で DATA_PUMP_DIR 内のデータベースを完全にバックアップするには、次のクエリを実行します。
BEGIN rdsadmin.rdsadmin_rman_util.backup_database_full( p_owner => 'SYS', p_directory_name => 'DATA_PUMP_DIR', p_tag => 'FULL_DB_BACKUP', p_rman_to_dbms_output => FALSE); END; /
DB インスタンスのインクリメンタルデータベースバックアップを実行する
インクリメンタルバックアップでは、p_level という追加パラメータを使用します。完全インクリメンタルバックアップを実行するには、p_level を 0 に設定します。インクリメンタル差分バックアップを実行するには、p_level を 1 に設定します。詳細については、Oracle のウェブサイトで「RMANインクリメンタルバックアップについて」を参照してください。
完全バックアップと同様に、RDS for Oracle DB インスタンスの増分バックアップには、バックアップを開始する前に設定できる共通パラメータがあります。
デフォルトのタスクパラメータを使用し、MY_INCREMENTAL_BACKUP というタグ名で DATA_PUMP_DIR 内のインクリメンタルバックアップを行うには、次のクエリを実行します。
BEGIN rdsadmin.rdsadmin_rman_util.backup_database_incremental( p_owner => 'SYS', p_directory_name => 'DATA_PUMP_DIR', p_level => 1, p_tag => 'MY_INCREMENTAL_BACKUP', p_rman_to_dbms_output => FALSE); END; /
DB インスタンスのアーカイブログをバックアップする
Amazon RDS for Oracle の rdsadmin_rman_util パッケージを使用して、SCN 範囲、シーケンス番号範囲、日付範囲に基づいてアーカイブログをバックアップします。
次の手順を実行し、LOG_BACKUP というタグ名で ARCHIVE_LOG_BACKUP ディレクトリ内のインスタンスに関するアーカイブログをバックアップします。アーカイブログのバックアップ設定を変更するには、「Oracle DB インスタンスに一般的な RMAN タスクを実行する」を参照してください。
--creating a directory to store archive log backups EXEC rdsadmin.rdsadmin_util.create_directory(p_directory_name => 'ARCHIVE_LOG_BACKUP'); --performing archive log backup BEGIN rdsadmin.rdsadmin_rman_util.backup_archivelog_all( p_owner => 'SYS', p_directory_name => 'ARCHIVE_LOG_BACKUP', p_tag => 'LOG_BACKUP', p_rman_to_dbms_output => FALSE); END; /
DB インスタンスのテーブルスペースをバックアップする
「テーブルスペースのバックアップ」に記載されている共通パラメータを使用して、DB インスタンスの個別のテーブルスペースをバックアップします。次のコマンド例では、カスタムディレクトリ TB_BACKUP 内の USERS1 テーブルスペースを、タグ名 MYTABLESPACE_BACKUP でバックアップします。
BEGIN rdsadmin.rdsadmin_rman_util.backup_tablespace( p_owner => 'SYS', p_directory_name => 'TB_BACKUP', p_tablespace_name => 'USERS1', p_tag => 'MYTABLESPACE_BACKUP', p_rman_to_dbms_output => FALSE); END; /
注: rdsadmin_rman_util プロシージャを使用して制御ファイルのバックアップを実行することもできます。詳細については、「制御ファイルのバックアップ」を参照してください。
RMAN バックアップジョブを監視する
RMAN バックアップを監視するには、SQL クエリを使用するか、RMAN タスク用に生成されたログファイルを確認します。
次の方法で、RMAN バックアップジョブのログファイルにアクセスします。
-
実行する RMAN タスクで、p_rman_to_dbms_output を TRUE に設定します。rdsadmin_rman_util パッケージを実行する前に、serveroutput を on に設定する必要があります。
-
RMAN タスクログファイルを一覧表示するには、Amazon RDS コンソールでログとイベントのセクションを確認します。
-
RMAN バックアップタスクが完了している場合は、次の SQL クエリを実行して RMAN タスクログを一覧表示することもできます。次に、rdsadmin.rds_file_util.read_text_file プロシージャを使用してログを読み取ります。詳細については、「ファイルの一覧表示」を参照してください。
column filename format a70 set linesize 200 SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP')) where filename like '%rman%';
-
RMAN バックアップが保存されているディレクトリのサイズを確認するには、まず次のクエリを実行します。次に、ストレージ消費量を監視します。
SELECT round(SUM(filesize)/1024/1024, 3) SIZE_IN_MB FROM TABLE(rdsadmin.rds_file_util.listdir('<DIRECTORY_NAME>'));
-
バックアップジョブのステータスと RMAN バックアップジョブの完了にかかった時間を一覧表示するには、次のクエリを実行します。
set linesize 500 pagesize 2000 col Hours format 9999.99 col STATUS format a10 select SESSION_KEY, INPUT_TYPE, STATUS, to_char(START_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_start_time, to_char(END_TIME,'mm-dd-yyyy hh24:mi:ss') as RMAN_Bkup_end_time, elapsed_seconds/3600 Hours from V$RMAN_BACKUP_JOB_DETAILS order by session_key;
関連情報
Oracle DB インスタンスに関するその他のタスクを実行する
関連するコンテンツ
- 質問済み 7年前lg...
- 質問済み 3ヶ月前lg...
- AWS公式更新しました 1年前
- AWS公式更新しました 1年前