6 Oracle Access Manager環境のクローニング
このガイドに示すアウトオブプレース・アップグレード手順では、Oracle Access Manager 11gからOracle Access Manager 12cへのクローン・アップグレードを実行する方法について説明します。
この章の内容は次のとおりです。
データベースのクローニング
既存の環境のコピーを作成し、そのコピーをアップグレードできます。アップグレード中に問題が発生した場合は、既存の環境がフォールバックとして使用されます。
詳細は、クローン環境を介したアップグレードの実行に関する項を参照してください。
エクスポート/インポート方法を使用したデータベースのクローニング
11g環境で、データベースからエクスポート・ファイルにデータをエクスポートします。
データをアップグレードするには、次の手順を実行します:
-
使用するバージョンのOracleデータベースをインストールします。このデータベースは、単一インスタンス・データベース、Real Application Cluster (RAC)データベース、標準データベース、または別のプラガブル・データベース(PDB)にOAMを含むコンテナ・データベースのいずれかです。
-
ソースおよび宛先OCIホストにディレクトリを作成します。
-
ソース・データベースと宛先データベースのこの場所を指すデータベース・ディレクトリ・オブジェクトを作成します。
-
ソース・データベースをエクスポートします。
ノート:
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
-
-
生成されたファイルを宛先データベース・ホストにコピーします。
-
必要に応じて、OCIでプラガブル・データベースのTNSエントリを作成します。
-
ターゲット・データベースがOracle Access Managerのすべての基準を満たしていることを確認します。詳細は、『Oracle Identity and Access Managementのインストールおよび構成』の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;
-
OCIでプライマリと同じ名前のデータベース・サービスを作成します。
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;
親トピック: データベースのクローニング
テストから本番へ(T2P)のプロセスを使用した11g環境のクローニング
インストールをソース環境からターゲット環境に移動するには、次のステップを実行します:
-
ソース環境を準備します。「ソース環境の準備」を参照してください。
-
ターゲット環境を準備します。「ターゲット環境の準備」を参照してください。
-
ターゲット環境にOracleデータベース・ソフトウェアをインストールしますが、データベースは作成しません。「ターゲット環境でのデータベースのインストール」を参照してください。
-
RMANを使用して、ソース環境からターゲット環境にデータベースをクローニングします。「ターゲット環境でのデータベースのインストール」を参照してください
-
Oracle Access Managerをターゲット環境に移動します。「アイデンティティ管理コンポーネントのターゲット環境への移行」を参照してください。
-
copyBinary
およびpasteBinary
スクリプトを使用して、コンポーネントまたはスイートのMiddlewareホームのコピーをソース環境からターゲット環境に移行します。「Middlewareホームおよびバイナリ・ファイルの移行」を参照してください。 -
コンポーネントの構成のコピーを移行します。ほとんどの場合、
copyConfig
、extractMovePlan
およびpasteConfig
スクリプト(UMSユーザー・メッセージング・プリファレンス、Oracle WebCenter Portalアプリケーションのデータ、Oracle Web Cache構成ファイルなど)を使用します。新しい環境に固有の情報(ホスト名、ポートなど)を変更します。「Oracle Fusion Middlewareコンポーネントの移行」を参照してくださいノート:
ターゲットで
pasteConfig
を実行する前に、クローン・データベースに接続し、ソース環境のすべてのスキーマおよびデータが存在していることを確認します。
親トピック: データベースのクローニング
Oracleバイナリのクローニング
Oracleバイナリのクローニングには、次のオプションを使用できます:
-
任意のバックアップ/リストア・ツールを使用して、MW_HOMEバイナリおよびOraInventoryディレクトリをアーカイブおよび転送します。
-
Oracle FMW T2Pプロセスを使用します。「テストから本番へ(T2P)のプロセスを使用した11g環境のクローニング」を参照してください。
この項には次のトピックが含まれます:
バックアップ/リストア・ツールを使用したアクセス・ドメインのクローニング
ノート:
ドメインおよび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バイナリのクローニング
アクセス・ドメインのクローニング
アクセス・ドメインのクローニングには、次のオプションを使用できます:
-
任意のバックアップ/リストア・ツールを使用して、
DOMAIN_HOME
、NodeManager
およびその他の必要なディレクトリをアーカイブおよび転送します。 -
Oracle FMW T2Pプロセスを使用します。「テストから本番へ(T2P)のプロセスを使用した11g環境のクローニング」を参照してください。
このセクションには次のトピックが含まれます:
バックアップ/リストア・ツールを使用したアクセス・ドメインのクローニング
ノート:
ドメインおよびノード・マネージャをオンラインまたはオフラインでバックアップできます。ただし、すべてのFMWプロセスを停止した状態でバックアップを実行することをお薦めします。
バックアップの作成:
ソース環境のバイナリおよびOracle Inventoryのバックアップを作成するには、次のステップを実行します:
-
任意のバックアップ・ツールを使用して、ソース・サイトの次の場所のバックアップを作成します:
-
ASERVER_HOME
-
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
親トピック: アクセス・ドメインのクローニング
OAMドメインの起動
バックアップをターゲット環境インスタンスに正常にリストアした後、次のことを実行してドメインを起動します:
-
ASERVER_HOME
のノード・マネージャを起動します。 -
MSERVER_HOME
のノード・マネージャを起動します。 -
管理サーバーの起動。
-
OAM管理対象サーバーを起動します。
-
ポリシー・マネージャ管理対象サーバーを起動します。
親トピック: アクセス・ドメインのクローニング
テストから本番へ(T2P)のプロセスを使用したクローニング
T2Pプロセスを使用してクローニングを実行します。「テストから本番へ(T2P)のプロセスを使用した11g環境のクローニング」を参照してください。
親トピック: アクセス・ドメインのクローニング