8 Oracle Access Manager環境のクローニング
このガイドに示すアウトオブプレース・アップグレード手順では、Oracle Access Manager 11gからOracle Access Manager 12cへのクローン・アップグレードを実行する方法について説明します。
この章の内容は次のとおりです。
データベースのクローニング
既存の環境のコピーを作成し、そのコピーをアップグレードできます。アップグレード中に問題が発生した場合は、既存の環境がフォールバックとして使用されます。
詳細は、クローン環境を介したアップグレードの実行に関する項を参照してください。
データベースのクローニング方法
データベースのクローニングには様々な方法があり、各方法には独自のメリットがあります。
ノート:
Oracle Identity and Access Management 12cでは、同じデータベース・スキーマ接頭辞を使用するように構成されたOracle Access ManagerおよびOracle Identity Managerはサポートされません。アップグレードする前に、両方の製品が共存し、同じデータベース・スキーマを共有している場合は、まずデータベースを2つの異なる接頭辞とスキーマ・セットに分割する必要があります。次のオプションを使用して、データベースをクローニングできます:
オプション1 – データベースのエクスポートとインポート
-
小規模なデータベースに適しています。
-
バージョン間の移動を許可します。たとえば、12.1.0.3から19cです。
-
コンテナ・データベース/プライベート・データベースへの移動を許可します。
-
完全なコピーです。実行をやり直すには、毎回ターゲットからデータを削除する必要があります。
-
進行中の同期化はありません。
-
カットオーバー中は、ソース・システムを更新のために凍結する必要があります。
オプション2 – RMANを使用したデータベースの複製
-
あらゆるサイズのデータベースに適しています。
-
データベース全体をバックアップします。
-
データベース・バージョンおよびパッチ・レベルは、ソースと宛先の両方で同じである必要があります。
-
データベースのアップグレードは、別のタスクとして実行する必要があります。
-
CDP/PDBの移行は、別の実行として行う必要があります。
-
進行中の同期化はありません。
-
カットオーバー中は、ソース・システムを更新のために凍結する必要があります。
オプション3 – Dataguardデータベース
-
あらゆるサイズのデータベースに適しています。
-
データベース全体をバックアップします。
-
データベースのアップグレードは、別のタスクとして実行する必要があります。
-
CDP/PDBの移行は、別の実行として行う必要があります。
-
進行中の同期。データベースを開いてアップグレードをテストし、再度閉じてデータとソース・システムの同期を保つことができます。
ノート:
要件に基づいてソリューションを選択する必要があります。
親トピック: データベースのクローニング
エクスポート/インポート方法を使用したデータベースのクローニング
11g環境で、データベースからエクスポート・ファイルにデータをエクスポートします。
データをアップグレードするには、次の手順を実行します:
-
使用するバージョンのOracleデータベースをインストールします。このデータベースは、単一インスタンス・データベース、Real Application Cluster (RAC)データベース、標準データベース、または別のプラガブル・データベース(PDB)にOAMを含むコンテナ・データベースのいずれかです。
-
ソースおよび宛先ターゲット・ホストにディレクトリを作成します。
-
ソース・データベースと宛先データベースのこの場所を指すデータベース・ディレクトリ・オブジェクトを作成します。
-
ソース・データベースをエクスポートします。
ノート:
RACデータベースを使用している場合は、各ノードにディレクトリを作成しないかぎり、特定のインスタンス/PDBに強制されるTNS接続があることを確認します。IADUPGはRCU接頭辞の例です。 -
生成されたファイルを宛先データベース・ホストにコピーします。
-
ソース・データベースからDDLを抽出します。インポートでは、ソース・データベースから抽出したデータのみがインポートされ、表領域またはユーザーは作成されません。それらが存在しない場合、インポートが失敗します。これは、これらのオブジェクトのDDLをデータベースから抽出することで解決できます。これを行うには:
-
任意のエディタを使用して、次の内容のextract_ddl.sqlというファイルを作成します:
set pages 0 set feedback off set heading off set long 5000 set longchunksize 5000 set lines 200 set verify off exec dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SQLTERMINATOR', true); exec dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'PRETTY', true); accept PREFIX char prompt 'Enter RCU Prefix:' accept PDBNAME char prompt 'Enter PDB:' spool ddl.sql select 'alter session set container=&&PDBNAME;' from dual / SELECT DBMS_METADATA.GET_DDL('TABLESPACE',Tablespace_name) from dba_tablespaces where tablespace_name like '&&PREFIX%' / set lines 600 SELECT DBMS_METADATA.GET_DDL('USER',USERNAME) from DBA_USERS where USERNAME like '&&PREFIX%' / set lines 200 SELECT DBMS_METADATA.GET_GRANTED_DDL ('SYSTEM_GRANT',USERNAME) from DBA_USERS where USERNAME like '&&PREFIX%' and USERNAME NOT LIKE '%_IAU_APPEND' and USERNAME NOT LIKE '%_IAU_VIEWER' / SELECT DBMS_METADATA.GET_GRANTED_DDL ('OBJECT_GRANT',USERNAME) from DBA_USERS where USERNAME like '&&PREFIX%' and USERNAME NOT LIKE '%TLOGS' and USERNAME NOT LIKE '%JMS' / spool off set pages 0 set feedback off set heading off set long 5000 set longchunksize 5000 set lines 200 set verify off exec dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SQLTERMINATOR', true); exec dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'PRETTY', true); accept PREFIX char prompt 'Enter RCU Prefix:' accept PDBNAME char prompt 'Enter PDB:' spool ddl.sql select 'alter session set container=&&PDBNAME;' from dual / SELECT DBMS_METADATA.GET_DDL('TABLESPACE',Tablespace_name) from dba_tablespaces where tablespace_name like '&&PREFIX%' / set lines 600 SELECT DBMS_METADATA.GET_DDL('USER',USERNAME) from DBA_USERS where USERNAME like '&&PREFIX%' / set lines 200 SELECT DBMS_METADATA.GET_GRANTED_DDL ('SYSTEM_GRANT',USERNAME) from DBA_USERS where USERNAME like '&&PREFIX%' and USERNAME NOT LIKE '%_IAU_APPEND' and USERNAME NOT LIKE '%_IAU_VIEWER' / SELECT DBMS_METADATA.GET_GRANTED_DDL ('OBJECT_GRANT',USERNAME) from DBA_USERS where USERNAME like '&&PREFIX%' and USERNAME NOT LIKE '%TLOGS' and USERNAME NOT LIKE '%JMS' / spool off
ノート:
太字の行は、ターゲット・データベースがPDBの場合にのみ適用されます。このSQLでは、すべてのオブジェクトがRCU接頭辞を使用して作成されていることを前提としています。接頭辞なしでオブジェクトを作成した場合(JMSまたはTLogsの表領域/ユーザーなど)、これらを手動で追加する必要があります。
-
SQL Plusでファイルを実行します:
SQL> @extract_ddl
-
-
生成されたファイルを宛先データベース・ホストにコピーします。
-
必要に応じて、ターゲット・システムにプラガブル・データベースのTNSエントリを作成します。
-
ターゲット・データベースがOracle Access Managerのすべての基準を満たしていることを確認します。Oracle Access Managementソフトウェアのインストールおよび構成に関する項を参照してください。
-
必要に応じて、トランザクションをロールバックするためのデータベース・リストア・ポイントを作成します。
-
Oracle Access Managerの表領域/ユーザーを作成します。
これを行うには、前述のステップ6で生成したスクリプト(
ddl.sql
)を実行します。SQL Plusでファイルを実行します:
SQL> @ddl
出力を慎重に確認し、エラーがあれば修正します。
-
宛先データベースにデータをインポートします。このデータベースは、ソースと同じデータベース・バージョンである必要はありません。
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=${ORACLE_BASE}/product/12.2.0.1/dbhome_1 export GRID_HOME=/u01/app/12.2.0.1/grid export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch export DB_NAME=iamcdb_phx1g8 export ORACLE_SID=iamcdb impdp \"SYS/Password@IADPDB AS SYSDBA\" DIRECTORY=orcl_full DUMPFILE=oam_system.dmp LOGFILE=oam_system_imp.log FULL=YES; impdp \"SYS/Password@IADPDB AS SYSDBA\" DIRECTORY=orcl_full DUMPFILE=full_oam.dmp LOGFILE=full_oam_imp.log FULL=YES;
-
プライマリと同じ名前のデータベース・サービスをターゲット・システムに作成します。
srvctl add service -db iamcdb_phx1g8 -service onpremservice -rlbgoal SERVICE_TIME -clbgoal SHORT -pdb iadpdb srvctl start service -db iamcdb_phx1g8 -service onpremservice srvctl status service -db iamcdb_phx1g8 -service onpremservice
スキーマをインポートした後、デプロイメントと一致する行が次の問合せによって返されることを確認することが重要です。この表は、前述のステップの一部としてインポートされている必要があります。失敗した場合は、ソース・システムの値を表に移入する必要があります。
set linesize 100 col comp_id for a10 col comp_name for a50 col version for a10 select comp_id, comp_name, version, status, upgraded from system.schema_version_registry;
親トピック: データベースのクローニング
RMANを使用したデータベースのクローニング
RMANを使用して、ソース環境からターゲット環境にデータベースをクローニングします。RMANを使用したデータの送信に関する項を参照してください。
親トピック: データベースのクローニング
Oracleバイナリのクローニング
Oracleバイナリのクローニングには、次のオプションを使用できます:
-
任意のバックアップ/リストア・ツールを使用して、MW_HOMEバイナリおよびOraInventoryディレクトリをアーカイブおよび転送します。
-
Oracle FMW T2Pプロセスを使用します。
この項には次のトピックが含まれます:
バックアップ/リストア・ツールを使用したアクセス・ドメインのクローニング
ノート:
ドメインおよびNodeManagersをオンラインまたはオフラインでバックアップできます。ただし、すべてのFMWプロセスを停止した状態でバックアップを実行することをお薦めします。
バックアップの作成:
次のステップに従って、ソース環境のバイナリとOracle Inventoryのバックアップを作成します:
-
任意のバックアップ・ツールを使用して、ソース・サイトの次の場所のバックアップを作成します:
-
oraInventory
-
MW_HOME
たとえば、
OAMHOST1
のコマンドは次のようになります:tar cfzP /u01/oracle/backups/oamhost1_binaries.tar.gz /u01/oracle/oraInventory MW_HOME
-
-
別の製品バイナリ・ボリュームを使用して、追加ノードでコマンドを繰り返します。
ノート:
Oracle製品の
MW_HOME
の場所に共有ファイルシステム・ボリュームを使用する場合は、ボリュームごとに1つのホストからバイナリ・バックアップのみを取得する必要があります。たとえば、
OAMHOST2
のコマンドは次のようになります:tar cfzP /u01/oracle/backups/oamhost2_binaries.tar.gz /u01/oracle/oraInventory MW_HOME
-
結果のバックアップ・ファイルを適切なターゲット環境ホストにコピーします。
バックアップのリストア
ノート:
Oracle製品のMW_HOME
の場所に共有ファイルシステム・ボリュームを使用する場合、バイナリ・バックアップのみをボリュームごとに1つのホストにリストアする必要があります。
たとえば:
OAMHOST1で、次のコマンドを実行します:
tar xvfzP oamhost1.tar.gz
OAMHOST2で、次のコマンドを実行します:
tar xvfzP oamhost2.tar.gz
親トピック: Oracleバイナリのクローニング
T2Pを使用したOracleバイナリのクローニング
この方法は、バックアップ/リストアによる方法の代替として使用できます。
copyBinary
およびpasteBinary
スクリプトを使用して、コンポーネントまたはスイートのMiddlewareホームのコピーをソース環境からターゲット環境に移行します。「Middlewareホームおよびバイナリ・ファイルの移行」を参照してください。
親トピック: Oracleバイナリのクローニング
構成のクローニング
構成のクローニングには、次のオプションを使用できます:
-
任意のバックアップ/リストア・ツールを使用して、構成をクローニングします。
- T2Pプロセスを使用します。
バックアップ/リストア・ツールを使用したアクセス・ドメインのクローニング
ノート:
ドメインおよびノード・マネージャをオンラインまたはオフラインでバックアップできます。ただし、すべてのFMWプロセスを停止した状態でバックアップを実行することをお薦めします。
バックアップの作成:
ソース環境のバイナリおよびOracle Inventoryのバックアップを作成するには、次のステップを実行します:
-
任意のバックアップ・ツールを使用して、ソース・サイトの次の場所のバックアップを作成します:
-
アプリケーション・サーバーのドメイン・ホーム(
ASERVER_HOME
) -
EDGで説明されているように、別の場所がある場合は管理対象サーバーのドメイン・ホーム(
MSERVER_HOME
) -
Keystores
-
Nodemanager
ノート:
エンタープライズ・デプロイメント・ガイドで説明されているように、分離されたものではなく結合されたDOMAIN_HOME
がある場合は、ASERVER_HOME
およびMSERVER_HOME
ではなくDOMAIN_HOME
を含めます。たとえば、
OAMHOST1
のコマンドは次のようになります:tar cfvzP /u01/oracle/config/backups/oamhost1_accessdomain.tar.gz \ ASERVER_HOME \ MSERVER_HOME \ /u01/oracle/config/keystores \ /u01/oracle/config/nodemanager/OAMHOST1 \ /u01/oracle/config/nodemanager/OAMHOST2 \ /u01/oracle/config/nodemanager/IADADMINVHN \ /u01/oracle/runtime/domains/IAMAccessDomain
-
-
追加ノードでコマンドを繰り返します。たとえば、
OAMHOST2
のコマンドは次のようになります:tar cfzP /u01/oracle/backups/oamhost2_accessdomain.tar.gz /u02/private/oracle/config/domains/IAMAccessDomain
-
結果のバックアップ・ファイルを適切なターゲット環境ホストにコピーします。
-
ソース環境からレプリケートされたドメイン内のロック・ファイルおよびログ・ファイルを削除します。
-
次のコマンドを実行して、適切なクローン環境ホスト上のすべての
NodeManager
フォルダのロック・ファイルを削除します:find /u01/oracle/config/nodemanager -type f -name "*.lck" -exec rm -f {} \;
-
次のコマンドを実行して、適切なクローン環境ホストの
ASERVER_HOME
およびMSERVER_HOME
フォルダからロック・ファイルを削除します:ノート:
エンタープライズ・デプロイメント・ガイドで説明されているように、分離されたものではなく結合された
DOMAIN_HOME
がある場合は、ASERVER_HOME
およびMSERVER_HOME
ではなくDOMAIN_HOME
を含めます。たとえば、
OAMHOST1
で次のコマンドを実行します:find ASERVER_HOME \ -type f \( -name "*.lck" -or -name "*.lok" \) -print -exec rm -f {} \; find MSERVER_HOME \ -type f \( -name "*.lck" -or -name "*.lok" \) -print -exec rm -f {} \;
たとえば、
OAMHOST2
で次のコマンドを実行します:find MSERVER_HOME \ -type f \( -name "*.lck" -or -name "*.lok" \) -print -exec rm -f {} \;
-
オプションで、クローン・ドメインの
NodeManager
および管理対象サーバーのフォルダから古いログ・ファイルを削除します:たとえば、
OAMHOST1
で次のコマンドを実行します:find /u01/oracle/config/nodemanager/OIMHOST1 \ -type f \( -name '*.log' -or -name '*.out' \) -print -exec rm -f {} \; find /u01/oracle/config/nodemanager/OIMHOST2 \ -type f \( -name '*.log' -or -name '*.out' \) -print -exec rm -f {} \; find /u01/oracle/config/nodemanager/IGDADMINVHN \ -type f \( -name '*.log' -or -name '*.out' \) -print -exec rm -f {} \; find ASERVER_HOME/servers/AdminServer/logs \ -type f ! -size 0c -print -exec rm -f {} \+ find MSERVER_HOME/servers/*/logs \ -type f ! -size 0c -print -exec rm -f {} \+
たとえば、
OAMHOST2
で次のコマンドを実行します:find MSERVER_HOME/servers/*/logs \ -type f ! -size 0c -print -exec rm -f {} \+
-
クローン環境でのアクセス・ドメインのリストア
任意の抽出ツールを使用して、バックアップをターゲット環境ノードに抽出します。
たとえば:
OAMHOST1で、次のコマンドを実行します:
tar xvfzP oamhost1_accessdomain.tar.gz
OAMHOST2で、次のコマンドを実行します:
tar xvfzP oamhost2_accessdomain.tar.gz
親トピック: 構成のクローニング
T2Pを使用した構成のクローニング
copyConfig
extractMovePlan
pasteConfig
新しい環境に固有のホスト名またはポートを変更するには、Oracle Fusion Middlewareコンポーネントの移行に関する項を参照してください
ノート:
ターゲット環境でpasteConfig
を実行する前に、クローン・データベースに接続し、ソース環境のすべてのスキーマおよびデータが存在していることを確認します。
親トピック: 構成のクローニング
OAMドメインの起動
バックアップをターゲット環境インスタンスに正常にリストアした後、次のことを実行してドメインを起動します:
-
管理サーバーのノード・マネージャを起動します。
-
管理対象サーバーのノード・マネージャを起動します(異なる場合)。
-
管理サーバーの起動。
-
OAM管理対象サーバーを起動します。
-
ポリシー・マネージャ管理対象サーバーを起動します。
親トピック: 構成のクローニング
クローン環境のアップグレード
環境のクローニング後、健全性チェックを実行して、適切に動作していることを確認する必要があります。環境が期待どおりに動作していることを確認したら、環境のバックアップを取得し、「Oracle Access Managerのインプレース・アップグレード」の説明に従ってアップグレードを実行します。