SAP ERP 6.0 Oracle を IBM に移行する。 Power Virtual Server
ソースシステムでの準備手順
ターゲット・オーディエンスと意図
この文書では、 Oracle Database 管理者(DBA)に2つのオプションを提示します。どちらも Oracle RMANをベースとしたもので、 AIX ベースの Oracle データベースを IBM Powerから IBM Power Virtual Server ( IBM Power Virtual Server )に移行する方法です。
対象となる読者は、ソリューションおよびインフラストラクチャのアーキテクト、 Oracle データベース管理者です。
その意図は、 Oracle データベースの移行を実行するための計画と手順を実行する代表的なステップを示すことであり、各移行シナリオには、展開、構成、および利用可能なリソースの観点で独自の課題があることを認識しています。
本ドキュメントでは、一般的な用語 「ディスカバリー」 は、お客様が所有する Oracle のDBAが、現在の Oracle / SAP インフラストラクチャを調査 し、文書化する責任があることを示します。 これは、お客様が問題を報告するためにインシデントを報告する必要がある場合に役立ちます。
適用範囲
以下の手順ではすべて、ソースシステムとターゲットシステム間のネットワーク接続、およびデータ転送やデータ複製に必要な十分なネットワーク帯域幅が必要です。
オプションのモバイルソリューションやコンテナソリューション (Seagate Lyve Mobile Solution など)と IBM Cloud Object Storage を組み合わせた代替手順や、 IBM Aspera Connect オンプレミス・バックアップ/データベース・ファイルを IBM Power Virtual Server インフラストラクチャに転送するオプションのモバイルまたはコンテナソリューションについて、随時説明します。 本サービスに関する詳細情報は、 IBM Cloud のオンラインドキュメントまたは以下のリンクからご覧いただけます。
実装によって、必要なタスクステップは異なります。 特定のコマンドの実行に関する詳細は、引用された Oracle のドキュメントを参照してください。
この移行手順では、次の文書に記載されているとおり、User Concept - Oracle Standard を使用します。 SAP Link。
SAP にアクセスするには、 SAP のSユーザーアクセスが必要です。 注:
特記事項
これらの手順を実行する試みは、本番環境および/または非本番環境のシステムを運用および維持するためのお客様の確立された手順と併せて実施されるものとします。 お客様は、必要に応じてシステムのメンテナンスや再構成を行うために、また必要に応じてダウンタイムをスケジュールするために、通常の手順に従って行動します。
お客様は、これらの代表的な手順を、お客様の特定の環境に合わせて確認し、必要に応じて調整する責任を負います。
ここで説明されている Oracle Database の移行オプションは、必ずしも IBM Power Virtual Server の移行に限定されるものではありません。 Oracle 技術専門家は、使用されている手順を認識し、すべての技術的詳細や考慮事項が明示的に特定されているわけではないことを理解すべきである。 Oracle Database 手順を実行する管理者は、 Oracle データベースのバックアップおよび復旧方法について、明示的に記載されていない詳細も含めて、その全範囲を理解していることが期待されます。
システムの発見と移行オプションの選択
システム発見プロセス
この文書は、詳細な証拠開示が事前に収集されていることを前提としています
- 移行される Oracle データベースのビジネス、技術、機能、非機能要件(アクセスおよび可用性要件を含む)
- ソースデータベースおよび基盤となるプラットフォームに関連するインストール構成、ハードウェア/ソフトウェアのインベントリ、およびサイズ情報。
- サイズ、変更率、サービスレベル要件、移行時のダウンタイムの許容範囲、ソースからターゲットへのデータ転送をサポートするネットワークの容量など、関連する指標を収集する。
- ターゲット環境は、ディスカバリープロセスで判明したソースシステムの容量/パフォーマンス/可用性と一致するように評価および展開されています。
この文書が対象とする移行オプション
以下のフローチャートは、本書で取り上げる3つのオプションを示している:
- オプション1: ソースからの一貫したRMANバックアップ、生成されたファイルはRMANのDuplicate Database手順で使用し、 IBM Power Virtual Server にリストアする。
- オプション2: ソースからの一貫性のないRMANバックアップ+アーカイブされたREDOログ(またはレベル0+増分バックアップ)で、RMANのRestore/Recover Database手順で使用するバックアップファイルを使用して、 IBM Power Virtual Server にリストアする。
- オプション3 : Oracle Data Guardを活用する。現在研究中であり、同じプラットフォームであれば推奨される方法である。ミラーを作成し、同期が取れ次第、データベースのダウンタイムを数分間確保するだけで切り替えが可能になる。 テストおよび評価段階が完了次第、オンラインドキュメントを更新いたします。

移行オプションの選択
提示されたオプションから選択する決定には、顧客の要件と技術的条件が影響します。
- サービスレベル要件、特に目標復旧時点(RPO)と目標復旧時間(RTO)。
- オプション1: 提示された内容では、ソースデータベースがターゲットデータベースに移行される前に、相当なサービス遅延(RTO = 「日 」)が生じても問題ないことを前提としています。 この期待は、非本番環境の作業負荷の場合にしばしば見られますが、本番データベースの場合はほとんどありません。
- オプション2 :提示された内容では、お客様が 「時間」単位でのサービス中断に問題がないことを前提としています。 この期待は、非本番環境の作業負荷や一部の本番データベースではよくあることです。
- オプション3 :(本書ではまだ紹介されていませんが)、 Oracle Data Guardデータベース同期を組み込むことで、ソースからターゲットへのサービス移行を数分で完了させることが可能です。
- データベースのサイズ、ネットワークのスループット、信頼性。
-
ネットワーク経由で大規模なデータベースのバックアップを転送するには時間がかかります。 利用可能なプロトコルと帯域幅が毎秒80メガバイトのスループットをサポートするエンドツーエンドのネットワーク接続を介した600GBのバックアップの転送例を考えてみましょう。 この速度では、データの転送には約125分かかります。 データベースのバックアップが非常に大きい場合や、ネットワーク接続のスループットが低い場合は、より長い転送時間が必要となります。 信頼性の低いネットワークは転送を中断させる可能性があり、転送プロセスを再起動する必要が生じ、遅延が発生します。
- お客様は、転送前/転送中にデータを圧縮し、高スループットプロトコルを使用し、転送後にデータを解凍する、専門の転送ツールの恩恵を受けることができます。
- IBM の Aspera にアクセスできると、オンプレミスから IBM Power Virtual Server へのデータ転送を大幅に高速化できるという利点があります。
-
- 実行能力の有無。
- 本書で提供されているオプションは、経験豊富なデータベース管理者のスキルと、 Power Virtual Server 内の IBM Power Virtual Server ワークスペースに新しいターゲットデータベースにデータベースコンテンツを移行するためのインフラチームとの連携能力を必要とします。
お客様が選択した移行手順は、詳細かつ十分にリハーサルされた移行およびカットオーバー計画の枠組みの中で実行される必要があります。
バックアップに関する考察と技術的詳細
RMAN BACKUPコマンドは、以下のタイプのファイルのバックアップをサポートしています
- データファイルと制御ファイル。
- サーバーパラメータファイル。
- アーカイブされたREDOログ
- RMANバックアップ
RMANは、 Oracle データベースに関連付けられているこれらのファイルをバックアップしません。
データベースは、ネットワーク構成ファイル、パスワードファイル、 Oracle ホームの内容など、他の種類のファイルに依存していますが、RMANではこれらのファイルをバックアップすることはできません。 同様に、 Oracle Database の一部の機能(外部テーブルなど)は、データファイル、制御ファイル、および RDO ログ以外のファイルに依存している可能性があります。 また、この手順には、ソースデータベースのパラメータファイルと、以下に列挙するファイルが必要です
- Oracle データベースパラメータファイル:
init<SID>.ora
- TNSネットワーク構成ファイル:(例:
listener.ora
、tnsnames.ora
) - Oracle データベースのパスワードファイル(もし存在する場合)
RMANはこれらのファイルをバックアップしません。 したがって、バックアップ/リカバリ作業にこれらを含めるようにする必要があります。 ベストプラクティスとしては、RMANデータベースのバックアップと同じマウントのディレクトリにコピーすることが推奨されます。
RMANでBACKUPコマンドを実行すると、出力は常に1つ以上のバックアップセットまたは1つ以上のイメージコピーのいずれかになります。 バックアップセットはRMAN固有のフォーマットですが、イメージコピーはファイルのビット単位のコピーです。 デフォルトでは、RMANはバックアップセットを作成します。 この文書では、バックアップセットのみを取り扱います。
前提条件
この文書では、以下のことを前提としています
- ソースデータベースが本番システムである場合、フルバックアップのためにシャットダウンすることはまずないでしょう。その場合は、RMAN増分バックアップが使用されます。
- この手順を実行しても、ソースデータベース(スキーマおよび構成)に変更は加えられません。
- Oracle RMANオプションを使用して、ソースからターゲットにデータベースを移行します。オプション:データベースの複製、またはデータベースのバックアップ/リストア/リカバリ。
- ターゲット環境には、移行元のインスタンスに一致するバージョンがプリインストールされた Oracle のホームがあります。
- RMANの複製、リストア/リカバリでは、データベース・データ・ファイルの場所を変更するオプションが提供されていますが、このオプションについては、この文書では説明していません。 データベースファイルの場所( AIX JFS2 ファイルシステムまたは Oracle ASMディスクグループ)は、ソース環境とターゲット環境で同一であるという前提が置かれています。
- 対象OSは次のいずれかです
- mksysb手順を使用して生成されたソースオペレーティングシステムの正確なコピー(OVAまたは「Open Virtual Appliance」アーカイブファイル)、または
- AIX の最新バージョンで、 IBM がサポートし、 Oracle が Oracle のインスタンス化をサポートするバージョンとして認証したもの。
mksysbプロシージャのドキュメントは、次の場所で見つかるかもしれません
準備
ディスカバリーにより、以下の準備段階が確認または特定されました。
ソース・データベースのサイズと構成を文書化する
1つ以上のソース Oracle インスタンスの、コンピューティング、IOPS、ストレージに関する現在のサイズとパフォーマンスの指標を文書化する。
- ターゲットの IBM Power Virtual Server Oracle インスタンスは、少なくとも既存のシステムのサイズに一致するように構築する必要があります。
- IOPS要件を満たすために、ターゲットシステム上でディスクティアとディスク容量を選択することが非常に重要です。
- この発見プロセスには、将来の参照用およびターゲットシステム展開との比較用にメトリクスを収集するための、ソースデータベースに対するパフォーマンステストツールの実行が含まれているべきである。
ソース・データベースの最近の正常なバックアップを提供する
標準的なバックアップツールを使用して、ソース Oracle システムの直近の完全バックアップが正常に完了していることを確認してください。 ソースシステムを完全に復元できる必要があります。
- 確認できない場合は、移行/検出チームがRMANバックアップ手順を確認する必要があります。
- さらに、発見チームは顧客のデータベース管理者やシステム管理者と協力し、データベースの整合性を検証し、既存の破損ブロックやスキーマの問題を特定する必要があります。
ソースデータベースを文書化する
ソースデータベースインスタンスの場所と、DBA管理アクセス用の既知の認証情報を文書化する。
RMAN構成の文書化
バックアップを実行するために使用されている現在の Oracle リカバリマネージャ(RMAN)構成を、インスタンスごとに文書化します。
この情報を入手する簡単な方法は、以下の手順を実行することです
ssh を使って Oracle サーバーに接続する。
ssh oracle@<hostname>
$ORACLE_SID
が設定されているか確認してください。
echo $ORACLE_SID
通常はSID値が表示されます。 最後のコマンドで値が表示されない場合は、次のコマンドで環境変数を手動で設定します
setenv ORACLE_SID <SID value>
<SID value>
をSID値に置き換えてください。
rman
コマンドを使用してソースデータベースに接続します
rman target /
標準的な出力は以下のとおりです。
Recovery Manager: Release 19.0.0.0.0 - Production on Thu May 2 13:24:05 2024
Version 19.22.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
connected to target database: Exx (DBID=xxxxxxxx)
RMAN構成設定を表示するには、以下を使用します
RMAN> SHOW ALL;
ストアおよび/またはドキュメント出力。
次のように入力して、RMAN セッションを終了します
RMAN > exit;
ご参考までに、 SHOW ALL
の典型的な出力は次のようになります
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name EXX are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 8 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/EXX/19/dbs/snapcf_EXX.f'; # default
ディスク容量の確認
圧縮された移行データベースのバックアップセットを受け入れるのに十分なディスク容量が確保され、フォーマットされ、マウントされていることを確認してください。
- バックアップ対象のインスタンスのローカルにディスクスペースがある場合、最高のパフォーマンスが得られます。
- データベースを直接 Cloud Object Storage にバックアップすると、ネットワークの比較的低速度により、バックアップ実行に遅延が生じる可能性があります。
- この手順では、以下の点を考慮して中程度の圧縮を適用してバックアップを実行します
- 圧縮の結果、バックアップファイルの保存に必要な容量は、 Oracle データベースで消費される容量の約25%となります。
- ローカルファイルシステムの容量は、目的の復元ポイントにターゲットデータベースを復元するために必要なバックアップセット(またはセット)全体を保存できるだけの十分な容量が必要です。
- ターゲットシステムは、以下のオプションのいずれかを通じて、バックアップセットへのアクセスを必要とします
- バックアップセットがコピーされるローカルファイルシステム。
- オンプレミス環境への Aspera エージェントのインストール
- NFS を Cloud Object Storage デバイスに直接マウントするか、またはシーゲイトLyve Mobile転送デバイスを使用している場合。 これは最高のパフォーマンスを発揮するものではなく、過去にも他の観測結果が報告されています。
ネットワーク/アクセス速度によっては、 NFS マウントからローカルストレージにファイルをコピーすることが望ましい場合があります。
ソース上のバックアップセットのファイルシステム
移行バックアップセット専用のローカルファイルシステム(例: /backup/rman
)が参照されます。 代替オプションとして、 NFS にマウントされたSeagate Lyve Mobileデバイスからの直接復元/復旧も、 10GbE と100個の GbE を使用して正常にテストされました。
バックアップ用の空き容量を確認するには、以下のコマンドを実行します
df -g /backup/rman
ターゲット上のバックアップセットのファイルシステム
データベースの複製または復元/回復の手順には、以下のオプションのいずれかを通じて、バックアップファイルのセットへのアクセスが必要です
- バックアップセットがコピーされるローカルファイルシステム。
- NFS をシーゲイト Lyve Mobile 転送デバイスにマウントする、または
- NFS を IBM Cloud Object Storage にマウントし、Seagateデバイスからバックアップファイルをすでにコピーした。
RMAN を使用してソース Oracle データベースをバックアップする
このセクションでは、RMANバックアップセットの生成について、2つのオプションを紹介します。
参照資料
詳細については、この文書を参照してください Oracle Database バックアップとリカバリ - 2024年2月
前提条件
- オプション1 の手順では、ソースデータベースの一貫したオフラインバックアップが取得されることを前提としています。
- オプション2 の手順では、バックアップ手順を実行する前に、ソースデータベースが ARCHIVELOGモードになっている必要があります。
考慮事項
顧客は、バックアップが実行されている間、データベースの可用性とパフォーマンスに関する要件と、並列処理および/または圧縮の適用(およびサポートに割り当てられる関連リソース)のバランスを取る必要があります。
セクションサイズをバックアップ構成に適用することを検討してください。 section size
を指定しない場合、膨大な数のバックアップファイルが作成されます。 大きなファイルは扱いが難しく、データ転送中に再起動が必要になった場合、転送エラーが発生する可能性があります。 さらに、バックアップファイルの数が少ないと、並列処理でターゲットデータベースにデータを復元する際の同時処理数が制限されます。
good section size
を指定すると、バックアップファイルのサイズを制御できると同時に、 IBM Power Virtual Server で復元時に並行して処理できるファイルの数にも影響します。
中程度の圧縮には、 Oracle アドバンスド・コンプレッション・ライセンスが必要です。 基本的な圧縮は良いが、大幅に遅くなり、圧縮率も低くなる。 高圧縮は、圧縮側でCPUを非常に多く使用し、中圧縮のみと比較すると圧縮効果は限定的です。 高圧縮もアドバンスド・コンプレッション・ライセンスが必要です。
データベースブロック変更追跡が有効になっていない増分バックアップでは、すべてのデータファイルのフルスキャンが実行され、読み取り負荷が高くなります。 ブロック変更の追跡を有効にしても、稼働中のDBのパフォーマンスに影響を与えることは想定されていませんが、これを検証するためには、お客様の環境でテストを行う必要があります。
標準プロトコルと IBM のネットワーク転送比較 Aspera
データ転送の低速版では、scp/sftpなどの標準プロトコルを使用しています。 バックアップファイルは、 IBM AIX の LPAR がある Power Virtual Server に直接転送するか、 IBM Cloud Object Storage (COS) に転送することができます。 IBM COSでscp/sftpを使用する場合、 IBM FileManage Gatewayサービスを使用しているか、または転送の受信先として、ターゲットの IBM Power Virtual Server 環境内またはその隣にsftpサーバーをインストールして設定しているものと想定しています。
より高速なオプションは、 IBM の高機能データ転送製品である Aspera を使用することです。 多くの状況において、 IBM Aspera は従来の TCP ベースのプロトコルよりも数倍高速にデータを転送することが実証されています。
IBM Aspera のドキュメントはこちら:
このリファレンスには 、高速ネットワーク転送移行ガイドも含まれています。
バックアップ手順のオプション

両方のオプションに共通する手順を以下に示します。
RMANオプション1 - オフラインバックアップ/データベースの複製
以下の手順はデータベースをオフラインにした状態で実行され、完全な整合性のあるバックアップを作成します。
アプリケーションとデータベースのシャットダウン
バックアップ手順を実行する前に、標準操作手順に従って、 SAP システムと Oracle データベースをシャットダウンしてください。
マルチテナントアーキテクチャを使用している場合、ルートコンテナデータベース(CDB)に接続する必要があり、バックアップにはプラグ可能データベース(PDB)が含まれます。
より詳しい情報は
RMANの設定が文書化されていることを確認する
準備セクション の「RMAN構成」 で説明されているように、RMAN構成および関連パラメータを変更する前に、現在のRMAN構成および関連パラメータを必ず保存または文書化してください。
移行のための特別なバックアップが完了した後、通常のスケジュールされたバックアップ操作を継続するには、元のRMAN構成とパラメータが再び必要になります。
バックアップオプション1 - ターゲットディレクトリの作成
oracle
ユーザーとしてログインし、次のセクションで説明するバックアップスクリプトに一致するターゲットバックアップディレクトリを作成するために、以下のコマンドを実行します。
ディレクトリが存在しない場合、RMANスクリプトは失敗します。 また、 NFS マウントを使用している場合は、 oracle
ユーザーが NFS サーバー上の定義ファイル exports
で正しい権限を持っていることを確認する必要があります。 oracle
ユーザーには、読み取りと書き込み(rw
)の権限が必要です。 RMANバックアッププロセスには、 NFS の使用は推奨されません。
JFS2 またはローカルにマウントされたファイルシステムを使用すると、より良い結果が得られます。
次の2つのコマンドは、バックアップの保存先を作成し、環境変数 ORACLE_SID
を <SID>
に設定します。
<SID>
という用語を、お客様のシステムに該当する正しい値に置き換えてください
mkdir -p /backup/rman/<sid>_option1
setenv ORACLE_SID <SID>
Oracleユーザーが書き込みできる場所であれば、もちろん任意の場所をターゲットとして使用できます。次のステップでバックアップスクリプトを変更し、ターゲットディレクトリを使用するようにしてください。
バックアップ・オプション1 - バックアップ・スクリプト
RMANスクリプトは、バックアップオプション1を実行するために使用されます。 このスクリプトで使用されているコマンドについては、スクリプトの後に説明します。 スクリプトをコピー&ペーストし、環境に合わせて必要な調整を行ってください。
RMANの設定とコマンドはすべて、 option1_backup.rman
スクリプトファイルに含まれています
connect target /
SHUTDOWN IMMEDIATE
STARTUP MOUNT
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/<sid>_option1/option1_cmp_%d_%U';
CONFIGURE DEVICE TYPE DISK PARALLELISM 60;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/<sid>_option1/option1_cf_%F';
CONFIGURE COMPRESSION ALGORITHM 'HIGH';
CONFIGURE ENCRYPTION FOR DATABASE ON ;
CONFIGURE ENCRYPTION ALGORITHM 'AES256' ;
SET ENCRYPTION ON IDENTIFIED BY passw0rd ONLY ;
BACKUP AS compressed BACKUPSET section size 6000M DEVICE TYPE DISK DATABASE TAG <YOUR TAG ID HERE> include current controlfile ;
alter database open;
quit;
oracle
ユーザーを使用して、コマンドラインからこのスクリプトを実行します。
rman @option1_backup.rman
RMANは、要求されたバックアップの種類に応じて、構成済みのデフォルトデバイスにデータをバックアップします。 デフォルトでは、RMANはディスク上にバックアップを作成します。 高速リカバリ領域が有効になっており、FORMATパラメータを指定しない場合、RMANはリカバリ領域にバックアップを作成し、自動的に一意の名前を付けます。 これが、この前のパラメータで FORMAT を修正した理由であり、強調するためにここでも繰り返します。
以下は、使用された RMAN スクリプトの主な構成要素です
データベースのシャットダウンとマウントモードでの起動
データベースをきれいにシャットダウンし、オフラインバックアップオプション1の「マウントモード」で起動する必要があります。 バックアップの一貫性を確保するため、データベースは開いてはなりません。 データベースのシャットダウンとマウントモードは、次の2行で実現します
SHUTDOWN IMMEDIATE
STARTUP MOUNT
バックアップ制御ファイル
データベース制御ファイルには、バックアップ・ピースを機能しているデータベースにリストアするために必要なRMANカタログが含まれています。
このコマンドは、コントロールファイルをバックアップに含めます
CONFIGURE CONTROLFILE AUTOBACKUP ON
BACKUP AS compressed BACKUPSET section size 6000M DEVICE TYPE DISK DATABASE TAG EXX_100K_INITV3 include current controlfile ;
前述のスクリプトの CONFIGURE CHANNEL DEVICE TYPE DISK
と CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
の DEVICE TYPE DISK
コマンドには、バックアップファイルシステムの場所が含まれていることに注意してください!
バックアップ並列性
ディスクデバイスの並列処理を設定 - バックアップの高速化とバックアップ時間枠の短縮につながる可能性が高い。 最適な並列度はいくつかの要因に依存する:
- それだけの同時バックアッププロセスを実行するためのCPUリソースの可用性。 選択された圧縮と暗号化により、ストレージ・サブシステムが十分に高速にデータを供給できることを前提として、各RMANプロセスは通常、論理プロセッサのすべてのCPUサイクルを使用します。
- RMANデータファイルの読み取りとバックアップ先への書き込みをサポートするストレージサブシステムの能力 I/Oスループット。
- データの読み込み、圧縮、暗号化を行うバックアッププロセスをサポートするための物理メモリの空き容量。
- 前述のRMANスクリプトで示したように、私たちのテストではParallelism 60を使用しましたが、今回示したParallelism 8は、ディスカバリー中に最適なレベルを見つけるための良い出発点となるかもしれません
CONFIGURE DEVICE TYPE DISK PARALLELISM 8 BACKUP TYPE TO BACKUPSET;
バックアップ圧縮
バックアップファイルの圧縮を設定します。 ほとんどのお客様には、中程度の圧縮をお勧めします。 ただし、HIGHもテストされています。HIGHは特定の状況下では選択肢となり得るからです。 「MEDIUM」および「HIGH」の使用には、 Oracle の高度圧縮ライセンスが必要です!
- テスト済み
CONFIGURE COMPRESSION ALGORITHM 'HIGH' ;
- ライセンスコストの増加を防ぐよう助言した。
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' ;
バックアップ暗号化
バックアップ暗号化をオンにし、必要に応じてアルゴリズムを変更します(デフォルトは AES128 )。使用する暗号化パスワードを指定します。 TDEで暗号化されたデータベースを使用していない限り、すべてのRMANセッションでは暗号化および復号化パスワードの設定が必要です。そうしないと、「財布が開いていない」というエラーでセッションが失敗します
CONFIGURE ENCRYPTION FOR DATABASE ON ;
CONFIGURE ENCRYPTION ALGORITHM 'AES256' ;
SET ENCRYPTION ON IDENTIFIED BY passw0rd ONLY ;
Backup
最後のコマンドにより、データベースの実際のディスクへのバックアップが開始されます。 バックアップは、RMAN固有のバックアップセットを使用します。 各 RMAN プロセスは、バックアップ用としてデータファイルから最大 6000M の連続したデータを読み取り、そのデータを圧縮および暗号化し、宛先ファイルシステムに書き込む。
最後に、データベースを開くように変更します。 識別用に、 ORACLE_SID <SID>
を含む特定のタグを作成します。 section size
を設定してバックアップパーツのサイズを制限すると、宛先環境へのファイル転送が失敗した場合に、再送信が必要になる可能性を改善できます。 RMANカタログ内の複数のバックアップの管理が簡素化されるため、TAGの使用が推奨されます
BACKUP AS compressed BACKUPSET section size 6000M DEVICE TYPE DISK DATABASE TAG <SID>_100K_INITV3 include current controlfile ;
alter database open;
バックアップの検証とクロスチェック
バックアップが完了したら、以下のRMANコマンドの一部を使用して、結果を検証し、相互に照合します。
RMANプロンプトで、以下のコマンドを使用します
RMAN> REPORT SCHEMA;
RMAN> LIST BACKUP SUMMARY;
RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
RMAN> VALIDATE DATAFILE 10;
RMAN> VALIDATE BACKUPSET 3;
RMAN> CROSSCHECK BACKUP;
コマンドの説明:
REPORT SCHEMA ;
- データベースファイル、テーブルスペースなどに関する情報をリスト表示します。LIST BACKUP SUMMARY ;
- 既存のバックアップをすべて表示します。 SUMMARYオプションを使用できます。LIST BACKUP <TAG ID> ;
- TAG IDで特定のバックアップをリストアップします。BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
- バックアップファイルの内容を確認する。VALIDATE DATAFILE 10;
- 特定のデータファイルを検証する。VALIDATE BACKUPSET 3;
- 特定のバックアップセットを検証する。CROSSCHECK BACKUP;
- バックアップおよびコピーの物理的な実態と、RMANリポジトリ内の論理レコードを同期させる。
PFILEを作成する
バイナリ形式のサーバーパラメータファイル(SPFILE)から、プレーンテキスト形式のデータベースパラメータファイル(PFILE)を以下のように作成します。 データベースはマウントされた状態のままです。 コマンドには、 <SID>
を必ず使用してください。
このコマンドをユーザー oracle
として実行します
export ORACLE_SID=<SID>
sqlplus "/ as sysdba";
SQL*Plus内でパラメータファイルを作成します
SQL> create pfile='/backup/rman/init<SID>.ora' from spfile;
作業が完了したら、RMANパラメータをすべて元の発見設定に戻してください。
このオプション1 では、ターゲットシステムに転送し、復元するバックアップを1つ作成しました。 この時点で、移行シナリオとの整合性を保つため、ソースデータベースはシャットダウンし、それ以上使用しないようにします。
RMANオプション2 - オンラインバックアップ
以下のバックアップ手順はデータベースがオンラインの状態で実行され、RMANレベル0が1つとレベル1(増分)バックアップが1つ以上作成されます。 データベースがアーカイブログモードになっていること、および必要なアーカイブログのREDOログがすべてバックアップに含まれていることを確認する必要があります。
RMANの増分レベル0 バックアップはフルバックアップです。 完全なデータベースが含まれています。
RMAN増分レベル1 バックアップは、前回のレベル0またはレベル1バックアップ以降の変更を記録する増分バックアップです。 cummulative
オプションは、この動作を変更します。詳細は、RMANバックアップの概念に関する文書( Oracle )を参照してください。
データベースを正常に復元および回復するには、最後のフルバックアップ以降のフルバックアップ(レベル0)とすべての増分バックアップ(レベル1)が必要であり、アーカイブされたREDOログも含まれます。 データベースを新しいサーバーに移行する際(ソースシステムのサービス終了を含む)には、最後の増分バックアップはオフラインバックアップとなります。
マルチテナントアーキテクチャを使用している場合、ルートコンテナデータベース(CDB)に接続する必要があり、バックアップにはプラグ可能データベース(PDB)が含まれます。
より詳しい情報は CDB/PDBに対する操作の実行
データベース・サイズのチェック
データベースをバックアップできるように、ファイルシステムに十分な容量が割り当てられていることを確認してください。 現在のデータベースのサイズを調べるには、以下のSQL文を使用します
SELECT SUM (bytes)/1024/1024/1024 AS GB FROM dba_segments;
RMANの設定が文書化されていることを確認する
準備セクション の「RMAN構成」 で説明されているように、現在のRMAN構成と関連パラメータを必ず記録してください。 移行のための特別なバックアップを完了した後、通常スケジュールされたバックアップ作業が継続されるように、RMAN構成が以前のまま残っていることを確認したい。
バックアップ・オプション2 - ターゲット・ディレクトリの作成
oracle
ユーザーとして以下のコマンドを実行する。
最初の2つのコマンドは、フルバックアップと増分バックアップの対象となるバックアップディレクトリを作成します。 別のディレクトリを使用する場合は、次のセクションの2つのバックアップスクリプトを適宜変更してください。 3番目のコマンドは環境変数 ORACLE_SID
を設定します。 <SID>
という用語を、お客様のシステムの適切なSID値に置き換えてください
mkdir -p /backup/rman/<sid>_option2
mkdir -p /backup/rman/<sid>_option2_inc1
setenv ORACLE_SID <SID>
バックアップ・オプション2 - バックアップ・スクリプト
フルオンラインバックアップ - レベル0
最初のRMANスクリプト option2_backup_full.rman
は、RMAN環境を設定し、初期レベル0(フル)のオンラインバックアップを作成します。 このスクリプトで完全(レベル0)バックアップを開始するためのキーコマンドは次のとおりです
BACKUP ... incremental level 0 ...
このスクリプトで使用されるコマンドについては、スクリプトの後にこの手順でさらに詳しく説明します。
<sid/SID>
のエントリを、ディレクトリ構造とシステム値に合わせて置き換えることを忘れないでください
フルバックアップ用のすべての RMAN 設定とコマンドは、 option2_backup_full.rman
スクリプトファイルに含まれています
connect target /
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/<sid>_option2/lev0_%d_%U';
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 60;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/<sid>_option2/lev0_cf_%F';
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';
CONFIGURE ENCRYPTION FOR DATABASE ON ;
CONFIGURE ENCRYPTION ALGORITHM 'AES256' ;
SET ENCRYPTION ON IDENTIFIED BY passw0rd ONLY ;
BACKUP tag '<Your TAG Here>' incremental level 0 AS compressed BACKUPSET section size 6000M DEVICE TYPE DISK DATABASE INCLUDE CURRENT CONTROLFILE PLUS ARCHIVELOG;
quit;
ユーザー oracle
と:を使用するコマンドラインから、スクリプトを直接呼び出すことができます
rman @option2_backup_level0.rman
フル(レベル0)バックアップを実行した後の期待される結果は次の通りです
Recovery Manager complete.
RMANは、要求されたバックアップの種類に応じて、構成済みのデフォルトデバイスにデータをバックアップします。 デフォルトでは、 RMANはディスク上にバックアップを作成します。 高速リカバリ領域が有効になっており、FORMATパラメータを指定しない場合、 RMANはリカバリ領域にバックアップを作成し、自動的に一意の名前を付けます。 これが、この前のパラメータで FORMAT を修正した理由であり、強調するためにここでも繰り返します。
RMAN
PLUS ARCHIVELOG
フラグが指定されている場合、デフォルトでは、レベル0またはレベル1のバックアップにすべてのアーカイブログが含まれます。 これにより、連続した増分バックアップのセット内に同じファイルが多数重複して作成される可能性があります。
以下の指示は、RMANに特定のアーカイブログが以前のバックアップにすでに含まれているかどうかを確認し、含まれている場合は、新しい増分バックアップにファイルを含めないよう指示します。
はいの場合、新しい増分バックアップにはファイルを含めないでください。 このオプションは、転送先のデータベースに転送しない他のバックアップがデータベースに存在する場合に使用すべきではないことにご注意ください。 その場合は、このオプションを OFF
に設定してください。
CONFIGURE BACKUP OPTIMIZATION ON;
データベースを復元するには、バックアップされたデータを稼働中のデータベースに復元するために必要なRMANカタログが含まれているデータベース・コントロール・ファイルのコピーが必要です。
CONFIGURE CONTROLFILE AUTOBACKUP ON;
BACKUP AS compressed BACKUPSET section size 6000M DEVICE TYPE DISK DATABASE PLUS ARCHIVELOG TAG ECOM_option1 include current controlfile;
スクリプトには、バックアップの種類とファイルシステムの場所を定義する CONFIGURE CHANNEL DEVICE TYPE DISK
と CONFIGURE CONTROLFILE AUTOBACKUP FORMAT for DEVICE TYPE DISK TO <directory>
コマンドも含まれていることに注意してください。
ディスクデバイスの並列処理を設定 - バックアップを高速化し、バックアップウィンドウを短縮する可能性が高い。
最適な並列度はいくつかの要因に依存する:
- 多数の同時バックアッププロセスを実行するためのCPUリソースの可用性。 選択された圧縮と暗号化により、ストレージ・サブシステムが十分に高速にデータを供給できることを前提として、各RMANプロセスは通常、論理プロセッサのすべてのCPUサイクルを使用します。
- バックアップ先へのRMANデータファイルの読み取りと書き込みをサポートするストレージサブシステムの能力 I/Oスループット。
- データの読み込み、圧縮、暗号化を行うバックアッププロセスをサポートするための物理メモリの空き容量。
- データベースのサイズ。
前述のRMANスクリプトで示したように、私たちのテストではParallelism 60を使用しましたが、ここで示したParallelism 8は、ディスカバリー中に最適なレベルを見つけるための良い出発点となるかもしれません。
CONFIGURE DEVICE TYPE DISK PARALLELISM 8 BACKUP TYPE TO BACKUPSET;
バックアップファイルの圧縮を設定します。 MEDIUMと表示されていますが、状況によってはHIGHというオプションもあり得ます。 「MEDIUM」および「HIGH」を使用するには、 Oracle Advanced Compression license
が必要です!
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM' ;
バックアップ暗号化をオンにし、必要に応じてアルゴリズムを変更します(デフォルトは AES128 )。使用する暗号化パスワードを指定します。 TDEで暗号化されたデータベースを使用していない限り、すべてのRMANセッションでは暗号化および復号化パスワードの設定が必要です。そうしないと、「財布が開いていない」というエラーでセッションが失敗します。
CONFIGURE ENCRYPTION FOR DATABASE ON;
CONFIGURE ENCRYPTION ALGORITHM 'AES256';
SET ENCRYPTION ON IDENTIFIED BY passw0rd ONLY ;
最後のコマンドにより、データベースの実際のディスクへのバックアップが開始されます。 バックアップは、RMAN固有のバックアップセットを使用します。 各 RMAN プロセスは、データファイルから連続したデータを 6000M バックアップ用として読み込み、それを圧縮および暗号化し、宛先ファイルシステムに書き込む。 セクションサイズの目標は、バックアップピースのサイズを制限し、宛先環境へのファイル転送の失敗時に必要となる可能性のある再送信を管理可能な状態にすることです。
以前にも指摘したように、アーカイブログのログファイルをバックアップに含めることが不可欠であり、PLUS ARCHIVELOGフラグは、RMANが既存のアーカイブログを確実に取得することを保証します。 RMANカタログ内の複数のバックアップの管理を簡素化できるため、TAGの使用が強く推奨されます。 「増分レベル0」は、このバックアップをレベル0の増分バックアップとして指定します。つまり、すべてのデータがバックアップに含まれます。
RMANは既存のアーカイブログを取得します。 TAGの使用は、RMANカタログ内の複数のバックアップの管理を簡素化するため、推奨されます。 「増分レベル0」は、このバックアップをレベル0の増分バックアップとして指定し、すべてのデータがバックアップに含まれることを意味します。
BACKUP tag '<Your TAG here>' incremental level 0 AS compressed BACKUPSET section size 6000M DEVICE TYPE DISK DATABASE INCLUDE CURRENT CONTROLFILE PLUS ARCHIVELOG TAG <SID>_LEV0;
追加の増分バックアップについては、以下のバックアップスクリプト内の “inc1 / INC1” を対応する “incN / INCNに置き換えることをお勧めします。 管理を容易にするため、増分バックアップファイルのセットはそれぞれ個別のディレクトリに保存することが推奨されます。
増分オンライン・バックアップ - レベル1
2つ目のRMANスクリプト option2_backup_inc1.rman
は、RMAN環境を設定し、初期レベル0(フル)のオンラインバックアップを作成します。 このスクリプトで増分(レベル1)バックアップを開始するためのキーコマンドは次のとおりです
BACKUP ... incremental level 1 ...
<sid>
という用語を、お客様のシステムから取得したSID値に置き換えてください。また、スクリプトで定義されているターゲットのバックアップディレクトリが、お客様が作成したディレクトリと一致していることを確認してください。
バックアップオプション2 - ターゲットディレクトリの作成。
option2_backup_inc1.rman
台本
connect target /
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/<sid>_option2_inc1/inc1_%d_%U';
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEVICE TYPE DISK PARALLELISM 60;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/rman/<sid>_option2_inc1/inc1_cf_%F';
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';
CONFIGURE ENCRYPTION FOR DATABASE ON ;
CONFIGURE ENCRYPTION ALGORITHM 'AES256' ;
SET ENCRYPTION ON IDENTIFIED BY passw0rd ONLY ;
BACKUP TAG `<SID>`_INC1 incremental level 1 AS compressed BACKUPSET section size 6000M DEVICE TYPE DISK DATABASE INCLUDE CURRENT CONTROLFILE PLUS ARCHIVELOG;
quit;
ユーザー oracle
が、お客様のシステムのSID値を ORACLE_SID
という環境変数に設定しました
setenv ORACLE_SID <SID>
増分バックアップスクリプトを実行します
rman @option2_backup_inc1.rman
レベル1のスクリプトは、以前に説明したレベル0のRMANスクリプトと3つの点のみで異なります
- バックアップファイルが書き込まれるディレクトリ。
- TAGはバックアップセットを識別するために使用されます。
- レベル0ではなくレベル1の指定は、増分バックアップであることを示しており、デフォルトでは、最後のレベル1またはレベル0のバックアップ以降のすべての変更が含まれています。
最終的な増分バックアップには、移行先の環境における最終的なデータベース復旧ステップで使用する日時スタンプを決定するための追加の準備ステップが必要です。 次のステップで青いボックスで強調表示されるタイムスタンプは、データベースが復元される日付/時刻です。 その日時以降の変更は破棄されます!
サーバーの時刻と日付を調べる
sysdbaとしてデータベースに接続し、指示されたコマンドを実行します。 データベースは mount
モードに設定されるだけで、 opened
モードには設定されないことに注意してください。
NLSの日付フォーマットを設定すると、 date-to-string
または string-to-dates
から暗黙的に変換するためのフォーマットモデルとして使用されます。これは、ポイント・イン・タイム復旧を実行する場合に重要です。
次の画像で示されている2番目のSQLコマンドは、 Oracle に新しいredologへの書き込みを強制します。このコマンドの実行後に表示されるのは、ファイルが作成された日時を示す日付スタンプであり、該当するredologを適用することでデータベースをロールフォワードするためのタイムスタンプを提供します。

RMANを使用して最後の増分バックアップを実行します。
バックアップの検証とクロスチェック
バックアップが完了すると、RMAN内で、この後に列挙するコマンドの一部を使用して、結果を検証および相互に照合することができます。
RMAN> REPORT SCHEMA;
RMAN> LIST BACKUP SUMMARY;
RMAN> LIST BACKUPSET <TAG ID> ;
RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
RMAN> VALIDATE DATAFILE 10;
RMAN> VALIDATE BACKUPSET 3;
RMAN> CROSSCHECK BACKUP;
データベースファイル、テーブルスペースなどに関する情報をリスト表示します。
コマンドの説明:
REPORT SCHEMA ;
- データベースファイル、テーブルスペースなどに関する情報をリスト表示します。LIST BACKUP SUMMARY ;
- 既存のバックアップをすべて表示します。 SUMMARYオプションを使用できます。LIST BACKUP <TAG ID> ;
- TAG IDで特定のバックアップをリストアップします。BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
- バックアップファイルの内容を確認する。VALIDATE DATAFILE 10;
- 特定のデータファイルを検証する。VALIDATE BACKUPSET 3;
- 特定のバックアップセットを検証する。CROSSCHECK BACKUP;
- バックアップおよびコピーの物理的な実態と、RMANリポジトリ内の論理レコードを同期させる。
PFILEを作成する
バイナリ形式のサーバーパラメータファイル(SPFILE)から、プレーンテキスト形式のデータベースパラメータファイル(PFILE)を以下のように作成します。 データベースはマウントされた状態のままです。 コマンド内の <SID>
という用語を、お客様のシステムのSIDに置き換えることを忘れないでください。
ユーザー oracle
として、以下のコマンドを実行してください
setenv ORACLE_SID <SID>
sqlplus "/ as sysdba";
SQL*Plusでパラメータファイルを作成します
SQL> create pfile='/backup/rman/init<SID>.ora' from spfile;
作業が完了したら、RMANパラメータをすべて元の発見設定に戻してください。
このオプション2では、フルバックアップと増分バックアップの2つのバックアップセットを作成しました。 両方ともターゲットシステムに転送され、復元されます。 この時点で、移行シナリオとの整合性を保つため、ソースデータベースはシャットダウンし、それ以上使用しないようにします。
Oracle データベースをターゲットシステム上にリストアする
ターゲットシステム上のデータベースを復元するためのさまざまなオプションと手順が、このセクションで説明されています。
2つのRMANリストアオプション
Oracle Database をターゲットシステムに復元する方法は2つ用意されています
- RMAN データベースの複製と
- RMAN データベースのリストア/リカバリ。
どちらの方法も、前のRMANバックアップセクションで作成されたバックアップを使用します。

- オプション1 - RMANによるデータベースの複製
- このオプションは、RMANの
auxiliary instance
機能を使用します。一貫性のあるRMANバックアップファイル一式がターゲットサーバー上にすべて揃っている場合のみ、このオプションを使用できます。 :: RMANの「duplicate」コマンドは、resetlogs
でターゲットデータベースを自動的に開きます。 - resetlogs操作はデータベースのインスタンス番号をインクリメントし、その結果、ターゲットデータベースはソースから完全に独立したものとなります。 重要なのは、その時点では増分レベル1バックアップやアーカイブログのREDOログをターゲットデータベースに適用できないことです。
- オプション2 - RMANリストア/リカバリ
- このオプションは、前節で説明したように、RMANの増分レベル0と、オプションで1つ以上の増分レベル1のバックアップを使用して、ターゲットデータベースを最初に構築するために使用すべきです。 しかし、後から増分レベル1バックアップやアーカイブされたREDOログを、ある程度の期間をかけてターゲットデータベースに適用することは可能です。 :: 最終的な切り替え時間は、最終的な増分レベル1のバックアップが取得され、ターゲットサーバーにコピー/送信され、適用される予定です。これは、ターゲットデータベースがマウント状態にある間に実行されます。 最終的なバックアップ/アーカイブされたログが適用されると、データベースは手動で開かれ、カットオーバー時に利用可能になります。
前提条件
- IBM のクラウドアカウントが作成され、 IBM Power Virtual Server のワークスペースも作成されました。
- ワークスペース内で、 IBM Power Virtual Server インスタンスに必要な Oracle グリッドインフラストラクチャ(ASM を使用している場合)と Oracle RDBMS のホームを AIX にインストールするための手動または自動の手順が実行されました。 AIX LPARは、互換性のあるHW/SWバージョンを適用し、ソースシステムと同等の処理能力、メモリ容量、ストレージ容量、パフォーマンスとなるようにサイズを決定します。
- RMANの複製/復元/回復プロセスでは、必要なバックアップファイルすべてにアクセスできます。
接続と準備 - IBM 上の Oracle Power Virtual Server
ターゲット・インスタンスのコマンドラインから、以下のRMAN手順を使用してリストアを実行できます。
- AIX Power Virtual Server に、データベースを復元したいユーザーとして
oracle
でログインします。 - 確認してください:
- ターゲット IBM Power Virtual Server システムには、ソース環境と同じバージョンおよびパッチレベルのソフトウェアである Oracle データベースソフトウェアが正しくインストールされています。
- Oracle データファイルとテーブルスペース名の保存用デバイス名は、ソースデータベースと同じです。 そうでない場合は、
set newname
ディレクティブが必要です(手順はこの手順の対象外です) - ASMディスクグループ(使用されている場合)は、ソース環境と一致する名前と容量で作成されています。
- バックアップファイルは、ローカルファイルストレージに常駐しているかどうかに関わらず、RMANで利用可能です。 Cloud Object Storage、 NFS など。
以下の手順オプションでは、 Oracle ソフトウェアのインストール方法ではなく、ソースデータベースの復元方法について説明します。 バックアップ手順と同様に、ここで紹介する手順は代表的なものであり、詳細はデータベース環境によって異なります。
AIX on Power Systems については、バージョン固有の Oracle Database インストールガイドを参照してください。ASM(および関連する場合は RAC)については、対応する GRID Infrastructure のドキュメントを参照してください。
ターゲットサーバーのバックアップファイルセットをチェックする
/backup/rman
フォルダに保存されたバックアップファイルのサンプル表示は次のとおりです ファイルはローカルの JFS/2
ファイルシステムにコピーされました(ファイルの一覧の一部)。

この前のバックアップ手順で推奨されたように、オンプレミスの Oracle データベースから直接コピーされたさまざまなファイルが、別のフォルダに表示されます。

構成の確認
Oracle PFILE構成は現在表示されており、このファイルの設定が検証されています。
PFILEを確認する
次に、 Oracle パラメータファイル、または PFILE
を init<SID>.ora
内に保存されているものについて確認します。
保存されたPFILEに含まれるデータベースパラメータを確認し、ファイル名指定でそれらを検証します。 パラメータ audit_file_dest=
は、ターゲットサーバー上にまだ存在していないディレクトリの場所を参照しています。 他のファイルの保存先は、すでに作成されているはずのASMディスクグループを参照しています。
ターゲットサーバーのファイルの場所がソース環境と一致しない場合、RMANスクリプトに追加の構成変更が必要となります。そのため、 cloning
で Oracle サーバーを IBM Cloud で設定する際には、 init<SID>.ora
ファイルに記載されている構成を比較し、ターゲットシステム上にその場所が存在することを確認することが重要です。

監査ディレクトリのチェック
監査ファイルディレクトリがターゲットサーバー上に存在し、PFILEに記載されていることを確認し、適切な所有権とモードを指定してください。

ASMディスクグループとその他のディレクトリ定義のチェック
PFILEで参照されているASMディスクグループがターゲット上に存在し、十分な空き容量があることを確認してください。 Oracle Gridユーザーとして、実行します
asmcmd lsdg
ASMグループを使用していない場合は、PFILEを確認し、参照されているディレクトリが存在することを確認してください。 この時点で、以下の復元オプションのいずれかを選択して作業を進めることができます。
オプション 1 - RMAN によるデータベースの複製
この手順では、ソースデータベースの一貫性のあるレベル0のバックアップを入力とし、その内容を Power Virtual Server 上の新しい Oracle インスタンスにリストアして、複製データベースを作成します。
以下の手順は、Oracleユーザーとして実行する必要があります
NOMOUNTモードでターゲット・データベースを起動する
ORACLE_SID
環境が設定されていることを確認してください。 ユーザー oracle
が、お客様のシステムに正しいORACLE_SIDを設定しました
setenv ORACLE_SID <SID>
Oracle インスタンスをNOMOUNTモードで起動し、使用するpfileを直接指定します。 当社の環境では、 SAP 環境で Oracle を使用しているため、ORACLE_HOMEは /oracle/EC9/19.0.0
となっています。お客様の環境では異なる場合がありますので、例のパスを変更し、この後に記載されているコマンドで、 Oracle <SID>
を各自の値に置き換えることを忘れないでください。
ユーザー oracle
としてSQL*Plusを実行し、システムデータベース管理者としてデータベースに接続します
sqlplus "/ as sysdba"
SQL*Plus内で以下のSQL文を実行します
SQL> startup nomount pfile='/backup/rman/ora/initEC6.ora';
SQL> create spfile='/oracle/EC6/19.0.0/dbs/spfileEC6.ora' from pfile='/backup/rman/ora/initEC6.ora';
SQL> shutdown immediate;
SQL> startup nomount;
SQL> show parameter spfile;
spfileパラメータは通常、以下のようになります
NAME TYPE VALUE
--------- ------------- ---------------------------------
spfile string /oracle/EC6/19/dbs/spfileEC6.ora
RMANでデータベースを復元するスクリプト - オプション1
適切なバックアップ先を参照するRMAN Duplicate Databaseスクリプトを作成します。 この場合のファイルは、「oracle」ユーザーのホームディレクトリに保存されます。
理想的には、バックアップに使用したチャンネルの数と同じ数だけ、参照を使用して復元チャンネルを作成します。 バックアッププロセス中に、60チャンネルが使用されていることを確認したことを覚えていますか。そのため、スクリプトでもこの数字を使用しています。
最初の15行のみを表示するために、以下のスクリプトを追加します。明らかに、60チャンネルが必要なので、これらの行をスクリプトに追加する必要があります。 allocate auxiliary channel ch[15-60] device type disk;
ユーザー oracle
がこのスクリプトを作成しました。
rman_duplicate.cmd
スクリプト:
set encryption on identified by passw0rd;
set decryption identified by passw0rd;
run {
allocate auxiliary channel ch1 device type disk;
allocate auxiliary channel ch2 device type disk;
allocate auxiliary channel ch3 device type disk;
allocate auxiliary channel ch4 device type disk;
allocate auxiliary channel ch5 device type disk;
allocate auxiliary channel ch6 device type disk;
allocate auxiliary channel ch7 device type disk;
allocate auxiliary channel ch8 device type disk;
allocate auxiliary channel ch9 device type disk;
allocate auxiliary channel ch10 device type disk;
allocate auxiliary channel ch11 device type disk;
allocate auxiliary channel ch12 device type disk;
allocate auxiliary channel ch13 device type disk;
allocate auxiliary channel ch14 device type disk;
allocate auxiliary channel ch15 device type disk;
allocate auxiliary channel ch16 device type disk;
allocate auxiliary channel ch17 device type disk;
allocate auxiliary channel ch18 device type disk;
allocate auxiliary channel ch19 device type disk;
allocate auxiliary channel ch20 device type disk;
allocate auxiliary channel ch21 device type disk;
allocate auxiliary channel ch22 device type disk;
allocate auxiliary channel ch23 device type disk;
allocate auxiliary channel ch24 device type disk;
allocate auxiliary channel ch25 device type disk;
allocate auxiliary channel ch26 device type disk;
allocate auxiliary channel ch27 device type disk;
allocate auxiliary channel ch28 device type disk;
allocate auxiliary channel ch29 device type disk;
allocate auxiliary channel ch30 device type disk;
allocate auxiliary channel ch31 device type disk;
allocate auxiliary channel ch32 device type disk;
allocate auxiliary channel ch33 device type disk;
allocate auxiliary channel ch34 device type disk;
allocate auxiliary channel ch35 device type disk;
allocate auxiliary channel ch36 device type disk;
allocate auxiliary channel ch37 device type disk;
allocate auxiliary channel ch38 device type disk;
allocate auxiliary channel ch39 device type disk;
allocate auxiliary channel ch40 device type disk;
allocate auxiliary channel ch41 device type disk;
allocate auxiliary channel ch42 device type disk;
allocate auxiliary channel ch43 device type disk;
allocate auxiliary channel ch44 device type disk;
allocate auxiliary channel ch45 device type disk;
allocate auxiliary channel ch46 device type disk;
allocate auxiliary channel ch47 device type disk;
allocate auxiliary channel ch48 device type disk;
allocate auxiliary channel ch49 device type disk;
allocate auxiliary channel ch50 device type disk;
allocate auxiliary channel ch51 device type disk;
allocate auxiliary channel ch52 device type disk;
allocate auxiliary channel ch53 device type disk;
allocate auxiliary channel ch54 device type disk;
allocate auxiliary channel ch55 device type disk;
allocate auxiliary channel ch56 device type disk;
allocate auxiliary channel ch57 device type disk;
allocate auxiliary channel ch58 device type disk;
allocate auxiliary channel ch59 device type disk;
allocate auxiliary channel ch60 device type disk;
duplicate database to <DBSID> backup location '/backup/rman/ec6_option1' nofilenamecheck noredo;
}
ユーザー oracle
として、このスクリプトを実行してください
rman auxiliary / cmdfile=rman_duplicate.cmd
標準的な出力は以下のとおりです。
sql clone "alter system set db_name =
''EC6'' comment=
''Modified by RMAN duplicate'' scope=spfile";
sql clone "alter system set db_unique_name =
''EC6'' comment=
''Modified by RMAN duplicate'' scope=spfile";
shutdown clone immediate;
startup clone force nomount
restore clone primary controlfile from '/backup/rman/ec6_option1/option1_cf_c-2254911489-20240516-00';
alter clone database mount;
ここでは、データベースのクローン作成が成功し、リセットログも開かれ、データベースが開かれた状態となり、リカバリマネージャーのアクションが正常に完了したというメッセージが表示されます。
対象システムのアーカイブログのステータスを確認する
ターゲットデータベースの復元が正常に完了した後、以下のコマンドを使用してアーカイブログの状態を確認します。
SQL*Plus
コマンドをユーザー oracle
として実行します
sqlplus "/ as sysdba"
SQL*Plus
内で、以下のSQLコマンドを実行してください
SQL> archive log list;
典型的な出力は次のようになる:
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /oracle/EC6/oraarch/EC6arch
Oldest online log sequence 1
Current log sequence 1
アーカイブモードでデータベースを再起動する
sysdbaとしてまだSQL*Plusにログインしたまま、NORMAL、IMMEDIATE、またはTRANSACTIONALオプションを使用してデータベース・インスタンスをシャットダウンします
SHUTDOWN IMMEDIATE
インスタンスを起動し、データベースをマウントします
STARTUP MOUNT
そして、データベースをアーカイブモードにします
ALTER DATABASE ARCHIVELOG;
次に、サーバー上のデータベースを開きます
ALTER DATABASE OPEN;
変更を検証します
ARCHIVE LOG LIST;
最後に、このターゲットシステムに新しいデータベースバックアップを作成し、アーカイブファイルも含めます。 前述の 「RMANを使用してソース Oracle Database をバックアップする」 セクションで説明したように、
nofilenamecheck
、 noredo
。 duplicate database
nofilenamecheck
nofilenamecheck
オプションは、RMANがターゲットシステムのディレクトリとファイルの場所を事前チェックするのを停止し、重複バックアップのコントロールファイルに含まれる情報を比較します。 ソースデータベースの1-2-1コピーをターゲットに復元する場合、同一のファイルシステムロケーションやSIDなどを使用する必要があるため、これは必要です。 そのオプションが存在しない場合、警告が表示され、復元が停止します。データファイルがソースファイルの場所と一致するように復元されるターゲットファイルの場所に、競合が発見されたことが理由です。 この問題が発生した場合は、nofilenamecheck
をリストアコマンドに追加して再試行すると、リストアが機能します。noredo
rman_duplicate.cmd
スクリプト内の重複したデータベースコマンドに、先ほど示したように、noredo
オプションを追加する必要があります。- これは、取得済みの
offline
バックアップをフルリストアしたいこと、およびRedologの有無を確認しないことをRMANに通知しています。 Oracle DBAは、バックアップコマンドで言及された を使用して重複したバックアップを作成しようとすると、問題が発生することをすでに知っています。PLUS ARCHIVELOG
オプション 2 - RMAN によるデータベースのリストア/リカバリ
この手順では、初期の不整合なデータセットから Power Virtual Server に Oracle データベースを構築します。 その後、増分バックアップとアーカイブされたREDOログを適用して、特定の時点におけるデータベースのバージョンを復元します。
NOMOUNTモードでターゲット・データベースを起動する
以下の手順は、ユーザー oracle
として実行してください。
<SID>
という語句は、常に、お客様のシステムのSID値に置き換えてください
setenv ORACLE_SID <SID>
Oracle インスタンスを NOMOUNT
モードで起動し、使用するpfileを直接指定します。 当社の環境では、 SAP 環境で Oracle を使用しているため、ORACLE_HOMEは /oracle/EC9/19.0.0
となっています。お客様の環境では異なる場合がありますので、例のパスを修正し、この後に記載されているコマンドで Oracle <SID>
を各自の値に置き換えることを忘れないでください。
sqlplus "/ as sysdba"
SQL> startup nomount pfile='/backup/rman/ora/initEC6.ora';
SQL> create spfile='/oracle/EC6/19.0.0/dbs/spfileEC6.ora' from pfile='/backup/rman/ora/initEC6.ora';
SQL> shutdown immediate;
SQL> startup nomount;
SQL> show parameter spfile;
パラメータを表示する出力は通常、以下のようになります
NAME TYPE VALUE
--------- ------------- ---------------------------------
spfile string /oracle/EC6/19/dbs/spfileEC6.ora
バックアップ・ファイル・セット内の設定ファイル・パスの取得
コントロールファイル(cf)はフルバックアップ(レベル0)に含まれていました。 バックアップ option2 level0 ファイルセット内のコントロールファイルのフルパスを決定します。
例:
find /backup/rman/ec6_option2 -name "lev0_cf_*"
findコマンドは、名前のパターンに一致するパスを含むすべてのファイル名を表示します
/backup/rman/ec6_option2/lev0_cf_c-2252531432-20240529-01
出力が何も表示されない場合は、オプション2レベル0の手順で作成したバックアップを参照し、バックアップファイルセットがターゲットサーバー上にあるかどうかを確認してください。
RMANでデータベースのレベル0バックアップをリストアするスクリプト - オプション2
この後、リカバリ・スクリプトを修正して正しいコントロール・ファイルを反映させ、RMANスクリプトを実行してレベル0のバックアップからDBを復元し、また、 recover database
経由でそのバックアップに含まれるアーカイブされたREDOログを適用します。 restore database
はアーカイブされたREDOログを適用しないためです。
どのバックアップから復元するか指定するために、バックアップ TAG が使用されていることに注意してください。 コントロールファイル内のRMANカタログには、複数のバックアップがリストされている場合があります。 テストには、以前に作成したバックアップセクションで使用したのと同じバックアップタグを使用します。そのため、特定のバックアップにはバックアップタグを使用するのが良い方法です。
スクリプト実行前に、データベースは nomount
で起動し、コントロールファイルの場所は次の例のように、お客様のファイル/バックアップの場所に合わせて調整する必要があります。
option2_restore_level0.rman
スクリプト
connect target /
connect target /
set ENCRYPTION ALGORITHM 'AES256' ;
SET DECRYPTION IDENTIFIED BY passw0rd;
run {
restore controlfile from '/backup/rman/ec6_option2/lev0_cf_c-2252531432-20240529-01';
alter database mount;
restore database from tag IBMECC02_EC6_LEV0;
recover database;
}
リストアスクリプトの説明
Oracle の環境/インストールに関連する archive
、 redologs
、 controlfiles
の正しい場所に置き換えてください。
バックアップファイルは暗号化されており、RMANはデータベースファイルを復元するために暗号化パスワードを必要とします。
SET DECRYPTION IDENTIFIED BY passw0rd;
私たちは、バックアップの断片をデータファイルにマッピングするために必要なRMANカタログが含まれているレベル0のバックアップからデータベース制御ファイルを復元します。また、データファイルのリストとそれらの予想される場所も含まれています。
restore controlfile from '/backup/rman/ec6_option2/lev0_cf_c-2252531432-20240529-01';
次に、次のステップに必要なデータベースを mount mode
に変更します。
alter database mount;
レベル0のバックアップに割り当てたTAGを使用して、RMANにその特定のバックアップからデータベースを復元するように指示します。
restore database from tag IBMECC02_EC6_LEV0;
最後のステップとして、レベル0のバックアップに含まれるアーカイブログを復元したデータベースに適用します。 これはデータベースを開くものではないため、将来の増分バックアップやアーカイブログをデータベースに適用することはできません。
recover database;
リストア・データベース level0 スクリプトの実行
データベースインスタンスが起動したことを確認してください。 startup nomount
ユーザー oracle
として、復元スクリプトを実行します
rman @restore_option2_lev0.rman
サンプル出力は膨大であり、ここでは記載していません。
増分バックアップのリストア(レベル1)
RMANフルバックアップレベル0は正常にリストアされました。 次のステップは、すべての増分レベル1バックアップセットを復元することです。
増分バックアップ(レベル1)のリストア(最終バックアップを除く
ターゲットディレクトリに、増分レベル1のバックアップセットとアーカイブログの残りをカタログ化します。 複数の増分バックアップが提供されている場合、これは反復的なプロセスです。
最後のバックアップを除き、すべての増分バックアップは、単に実行するだけです
recover database ;
このステップにより、増分バックアップセットがカタログ化されます。
最終インクリメンタルバックアップのカタログ(レベル1)
最後の増分バックアップでは、データベースを開くには、特定の時間までしかリカバリできないことが必要です!
ターゲットデータベースは MOUNT
の状態を維持し、必要に応じてレベル1の増分ログとアーカイブされたREDOログを継続的に適用することができます。 新しいバックアップのピースとアーカイブされたログをカタログ化し、最終的なカットオーバーの準備ができるまで復旧する。
以下のコマンドは、すべての増分バックアップが /backup/rman
以下のディレクトリに保存されていることを前提としています。
SQL*Plusのまま、以下のSQLコマンドを実行します
RMAN> catalog start with '/backup/rman';
最初の増分レベル1のバックアップからのバックアップファイルを表示しているだけのサンプル出力:
searching for all files that match the pattern /backup/rman
List of Files Unknown to the Database
=====================================
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dk2s0rg6_1460_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dl2s0rgc_1461_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dl2s0rgc_1461_2_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dm2s0rgc_1462_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dn2s0rgc_1463_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_do2s0rgc_1464_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dp2s0rgc_1465_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dq2s0rge_1466_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_dr2s0rgh_1467_1_1
File Name: /backup/rman/ec6_option2_inc1/inc1_EC6_ds2s0rgn_1468_1_1
...Lines Omitted ...
File Name: /backup/rman/ibmecc02/ec6_option2_inc1/inc1_EC6_eo2s0rlq_1496_1_1
File Name: /backup/rman/ibmecc02/ec6_option2_inc1/inc1_EC6_ep2s0rlu_1497_1_1
File Name: /backup/rman/ibmecc02/ec6_option2_inc1/inc1_EC6_eq2s0rm3_1498_1_1
File Name: /backup/rman/ibmecc02/ec6_option2_inc1/inc1_EC6_er2s0rm6_1499_1_1
File Name: /backup/rman/ibmecc02/ec6_option2_inc1/inc1_EC6_es2s0rma_1500_1_1
File Name: /backup/rman/ibmecc02/ec6_option2_inc1/inc1_EC6_eu2s0rmi_1502_1_1
File Name: /backup/rman/ibmecc02/ec6_option2_inc1/inc1_cf_c-2252531432-20240529-02
Do you really want to catalog the above files (enter YES or NO)? YES
cataloging files...
cataloging done
最終的な増分バックアップ(レベル1)を指定された時点にリストアする
最終的な増分バックアップを除くすべての増分バックアップについては、RMANで実行できます
バックアップは暗号化されて作成されたため、パスワードを使用するバックアップを復号化するには、RMANの構成を更新する必要があることを覚えておいてください。そうしないと、 ORA-19913: unable to decrypt backup
などのエラーが発生します。 ORA-28365: wallet is not open
RMAN> SET ENCRYPTION ALGORITHM 'AES256' ;
RMAN> SET DECRYPTION IDENTIFIED BY passw0rd;
RMAN> recover database ;
増分バックアップの最終部分をカタログ化したら、バックアップで決定した日時までリカバリする必要があります
この最後のリカバリ作業の後、リカバリの観点からデータベースにさらなる変更が加えられることは想定されていません。 日時形式の設定:
RMAN> alter session set nls_date_format='DD-MM-YYYY HH24:mi:SS' ;
日付の範囲の例は、こちらでご確認ください
RMAN> recover database until time '13-01-2024 11:52:12';
データベースの起動
前述の通り、すべての暫定アーカイブログ REDO ログと最終 RMAN インクリメント・レベル 1 がカタログ化され、リカバリされた後、データベースを開くことができます。
ユーザーとしてsql plusを実行します。 oracle
:
sqlplus "/ as sysdba"
SQL> alter database open resetlogs ;
データベースモードの確認
データベースが復元された後、 アーカイブモードが有効になっていることを確認してください。
ユーザー oracle
がsqlplusコマンドを実行すると、
sqlplus "/ as sysdba"
アーカイブログのリストを再度確認してください
SQL> archive log list;
以上で、 Power Virtual Server へのデータベース移行におけるリストア/リカバリのアプローチは終了です。