0% found this document useful (0 votes)
6 views83 pages

Oig Database Migration CDB Architecture2

This document outlines the strategy and execution steps for migrating the Oracle Identity Governance Database (OIG DB) to a Container Database (CDB) architecture in an on-premises infrastructure. It details supported migration options, prerequisites, and best practices for both Non-CDB to CDB and existing CDB to higher version CDB migrations. The document is intended for a technical audience familiar with Oracle databases and identity governance systems.

Uploaded by

hjtaieb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views83 pages

Oig Database Migration CDB Architecture2

This document outlines the strategy and execution steps for migrating the Oracle Identity Governance Database (OIG DB) to a Container Database (CDB) architecture in an on-premises infrastructure. It details supported migration options, prerequisites, and best practices for both Non-CDB to CDB and existing CDB to higher version CDB migrations. The document is intended for a technical audience familiar with Oracle databases and identity governance systems.

Uploaded by

hjtaieb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 83

Migrate Oracle Identity

Governance Database to
Container Database
Architecture in an On-
premises Infrastructure

Migrate OIG DB workloads to CDB architecture in an On-premises


Infrastructure

August, 2020 | Version 1.0


Copyright © 2020, Oracle and/or its affiliates
Confidential - Public

1 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure
Version 1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
PURPOSE STATEMENT
This document provides strategy, detailed execution steps, post-migration steps for the supported options for migrating
Oracle Identity Governance (OIG) Database to Container Database (CDB) Architecture in an On-premises infrastructure. This
paper is oriented to a technical audience having knowledge of Oracle Container and Non-Container Databases, Oracle
Identity Governance, Oracle Database administration, and basic operating system knowledge.

The paper supports the following Oracle Identity Governance versions.


• 11g R2PS2
• 11g R2PS3
• 12c PS3
• 12c PS4

DISCLAIMER
This document in any form, software or printed matter, contains proprietary information that is the exclusive property of
Oracle. Your access to and use of this material is subject to the terms and conditions of your Oracle software license and
service agreement, which has been executed and with which you agree to comply. This document is not part of your license
agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.
This document is for informational purposes only and is intended solely to assist you in planning for the implementation
and product features described. It is not a commitment to deliver any material, code, or functionality, and should not be
relied upon in making purchasing decisions. The development, release, and timing of any features or functionality
described in this document remains at the sole discretion of Oracle.

2 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure
Version 1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
TABLE OF CONTENTS
Purpose Statement 2
Disclaimer 2
Introduction 3
Assumptions 3
Oracle Identity Governance 3
Oracle Database 3
Abbreviations 3
Migration Strategy 4
Migrate an On-premises OIG DB From Non-CDB to CDB 5
Remote Cloning 5
Hot Cloning - Source and Target with Same Database Version 10
Hot Cloning - Source and Target with Different Database Version 16
Data Pump 36
Migrate an On-premises OIG DB From Existing CDB To Higher Version CDB 38
Hot Cloning – Using DBCA and DB Link 38
Plugging In 58
Appendix 78
References 78
Mid-Tier OIG JDBC Connection Configuration 78

3 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure
Version 1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
INTRODUCTION
This paper describes supported migration options and best practices for Oracle Identity Governance Database (OIG DB)
migration to Container Database (CDB) architecture in an On-premises infrastructure.
It covers migration strategy to CDB, detailed steps for supported OIG DB migration options to CDB architecture both from
Non-CDB as well as within CDB.

Assumptions
This paper assumes that the majority of administrators planning to migrate Oracle Identity Governance Database (OIG DB)
to Container Databases (CDB) architecture are using similar configurations.

Oracle Identity Governance


Oracle Identity Governance is configured On-premises as part of an Enterprise/Highly-Available (HA) or Non-HA
deployment.

Oracle Database
Oracle Database is configured On-premises as part of an Oracle Real Application Cluster (HA) or Single Instance (Non-HA)
deployment.

Abbreviations

SNO ABBREVIATION DEFINITION

1 OIG DB Oracle Identity Governance Database

2 ZDM Zero Downtime Migration

3 CDB Container Database

4 Non-CDB Non Container Database

5 OCI Oracle Cloud Infrastructure

6 DBaaS Database as a Service

7 ATP Autonomous Transaction Processing

8 TDE Transparent Data Encryption

9 SOA Oracle Service Oriented Architecture

10 CLI Command Line Interface

11 PDB Pluggable Database

12 MDS Meta Data Service

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
13 DBCA Database Configuration Assistant

MIGRATION STRATEGY
OIG DB supports the following On-premises Oracle Database versions. Refer to product certification matrix for detailed
information about the same based on respective Oracle Identity Governance version.
• 11g (11.2.0.4.0)
• 12c Release 1 (12.1.0.2.0)
• 12c Release 2 (12.2.0.1.0)
• 18c
• 19c

Although, OIG DB supports deployment as both Non-Container (Non-CDB) and Container (CDB) architectures, Oracle
recommends to use CDB architecture over non-CDB starting Oracle Database 12c onwards.

This paper provides migration strategy for the following OIG DB deployment scenarios in an On-premises infrastructure:
1. Migrate OIG DB from Non-CDB to CDB
2. Migrate OIG DB from existing CDB to higher version CDB

To migrate an On-premises OIG DB workload to Oracle Cloud Infrastructure (OCI) DBaaS or Oracle Autonomous Database
(ATP), migration of OIG DB to CDB architecture in an On-premises infrastructure is a necessary pre-requisite, because OCI
DBaaS (version 12c onwards) and OCI ATP supports only CDB architecture. Hence, above scenarios are also applicable
during OIG DB migration to Oracle Cloud.

Oracle supports several migration options as described in Creating and Removing PDBs and Application Containers.
Customers can choose to select below supported options or other documented options.

The below figure depicts the supported options for migrating OIG DB to CDB architecture in an On-premises infrastructure.

Figure 1: High Level Migration Strategy and Supported Migration options

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
MIGRATE AN ON-PREMISES OIG DB FROM NON-CDB TO CDB
Below sections, provide details about supported methods to migrate OIG DB from non-CDB to CDB architecture in an
Onpremises infrastructure.

Remote Cloning

Overview

• Cloning means creating a new PDB from a source PDB or from a non-CDB.
• When the source is a non-CDB, you must specify a database link to the non-CDB in the FROM clause.
• The database link must exist in the target CDB (not the remote/source CDB).
• The database link connects from the target CDB to the remote/source CDB.

Supported Source Oracle Database Versions and Architecture

• 12.1.0.2.0 non-CDB
• 12.2.0.1.0 non-CDB
• 18c non-CDB
• 19c non-CDB

Supported Target Oracle Database Versions and Architecture

• 12.1.0.2.0 CDB
• 12.2.0.1.0 CDB
• 18c CDB
• 19c CDB (recommended)

Pre-requisites

• The current user must have the CREATE PLUGGABLE DATABASE system privilege in the root of the CDB that will
contain the target PDB.
• The source and target platforms must meet the following requirements:
• They must have the same endianness.
• The database options installed on the source platform must be the same as, or a subset of, the database options
installed on the target platform.
• The source non-CDB and target CDB are deployed on different hosts.
• The target CDB and the source non-CDB must be running Oracle Database 12c Release 1 (12.1.0.2) or later.
• The target CDB and the source non-CDB must be running the same Oracle Database release.
• If the source non-CDB is in NOARCHIVELOG mode, then it must be open in Read-Only mode. If the source nonCDB
is in ARCHIVELOG mode, then it can be open in Read-Only or Read-Write modes.
• A database link must enable a connection from the target CDB to the source non-CDB.
• If source non-CDB is TDE enabled, then TDE password would be required during creation of pluggable database
from target CDB.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
o It is required for source non-CDB to have password based TDE wallet.
o If source non-CDB has Autologin based TDE wallet, then it needs to be converted to password based TDE
wallet and then proceed with execution steps.
• The user that the database link connects with must have the CREATE PLUGGABLE DATABASE system privilege.

Execution Steps

1. Create database link from target CDB connecting to source non-CDB. Execute from CDB SYS user in target CDB.

SQL> CREATE DATABASE LINK <database_link_name> connect TO SYSTEM IDENTIFIED BY


<system_password> USING '<source_hostname>:<source_port>/<source_service_name>';
E.g.
SQL> CREATE DATABASE LINK oig_dblink connect TO SYSTEM IDENTIFIED BY <system_password> USING
'sourcehost.example.com:1521/sourcedb.example.com';

2. Verify database link is operational, by querying dictionary view in source non-CDB from target CDB using database
link. Execute from CDB SYS user in target CDB.

SQL> SELECT name, open_mode, cdb FROM v$database@<database_link_name>;

E.g.
SQL> SELECT name, open_mode, cdb FROM v$database@oig_dblink;
NAME OPEN_MODE CDB
-------------------- -------------------- ---
ORCL READ WRITE NO

3. At this stage, execute below steps in source host and source Non-CDB:
a. Shutdown OIG and SOA Managed Server instances using Enterprise Manager or CLI.
b. Stop the SOA queues. Execute from SOAINFRA user in source non-CDB.

-- Fetch SOA queues name


SQL> SELECT name,enqueue_enabled,dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Stop SOA queues


SQL> BEGIN
DBMS_AQADM.STOP_QUEUE ('<queue1_name>');
...
DBMS_AQADM.STOP_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are stopped


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

c. Stop any running DBMS_SCHEDULER jobs currently executing in OIG. Execute from OIG user in source
non-CDB.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Fetch current running job name
SQL> SELECT job_name, session_id, running_instance, elapsed_time FROM
user_scheduler_running_jobs;

-- In case of any running jobs, either wait until its completion or stop the job
'gracefully' using the below
SQL> BEGIN
DBMS_SCHEDULER.stop_job('<job_name>');
END; /

d. Shut down source non-CDB.


4. Run the CREATE PLUGGABLE DATABASE statement, and specify the source non-CDB in the FROM clause accessed
via database link. If Oracle Managed Files (OMF) is not enabled on source and target, use FILE_NAME_CONVERT,
else it is not required.
a. Fetch data files location for source non-CDB and target CDB. Execute from CDB SYS or Non-CDB SYS user.

-- Fetch data files location for source non-CDB and target CDB
SQL> SELECT file_name FROM dba_data_files;

b. Create new PDB in target CDB. Execute from CDB SYS user.

-- Create Pluggable database (when source non-CDB is Non-TDE enabled)


SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> FROM NON$CDB@<database_link_name>
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
-- Create Pluggable database (when source non-CDB has PASSWORD based TDE wallet
enabled)
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> FROM NON$CDB@<database_link_name>
KEYSTORE IDENTIFIED BY <source_noncdb_tde_password>
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
E.g.
-- Create Pluggable database (when source non-CDB is Non-TDE enabled)
SQL> CREATE PLUGGABLE DATABASE OIGPDB1 FROM NON$CDB@oig_dblink
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/sourcedb',
'/u01/app/oracle/oradata/targetdb/OIGPDB1');

Pluggable database created.

5. Verify that new cloned target PDB is created in "NEW" state. Execute from CDB SYS user in target CDB.

SQL> SHOW pdbs;


SQL> SELECT pdb_name, status FROM cdb_pdbs;

E.g.
SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ --------------- -----------------
2 PDB$SEED READ ONLY NO 3
OIGPDB1 MOUNTED

SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
PDB$SEED NORMAL
OIGPDB1 NEW

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
6. Run the ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql script. This script must be run before the new cloned
target PDB can be opened for the first time. Execute from CDB SYS user in target CDB.

-- Switch to cloned PDB from CDB root container


SQL> ALTER SESSION SET CONTAINER = <target_pdb_name>;

-- Run script against cloned PDB


SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

E.g.
SQL> ALTER SESSION SET CONTAINER = OIGPDB1;

Session altered.

SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

7. Open the new cloned target PDB in Read-Write mode. Execute from CDB SYS user in target CDB.

SQL> ALTER PLUGGABLE DATABASE <target_pdb_name> OPEN;

E.g.
SQL> ALTER PLUGGABLE DATABASE OIGPDB1 OPEN;

Pluggable database altered.

8. Verify new cloned target PDB configurations. Execute from PDB SYS user in target CDB.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SHOW con_id
SQL> SHOW pdbs;
SQL> SELECT pdb_name, status FROM cdb_pdbs;
SQL> SELECT username FROM dba_users WHERE username LIKE '<oig_schema_prefix>%' ORDER BY
username;

E.g.
SQL> show con_id
CON_ID
------------------------------
3

SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
3 OIGPDB1 READ WRITE NO
SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
OIGPDB1 NORMAL

-- OIG 12cPS4 schemas


SQL> SELECT username FROM dba_users WHERE username LIKE 'DEV%' ORDER BY username;
USERNAME
--------------------------
DEV_IAU
DEV_IAU_APPEND
DEV_IAU_VIEWER
DEV_MDS
DEV_OIM
DEV_OPSS
DEV_SOAINFRA
DEV_STB
DEV_UMS
DEV_WLS
DEV_WLS_RUNTIME

11 rows selected.

9. Verify OIG DB accessible using new cloned target PDB connection credentials.

$ sqlplus
<oig_user>/<oig_user_password>@//<target_hostname>:<target_port>/<target_pdb_service_name>

E.g.
$ sqlplus DEV_OIM/<oig_user_password>@//targethost.example.com:1521/OIGPDB1.example.com

10. OIG DB in new cloned target PDB is now available for use.
11. Drop database link from target CDB. Execute from CDB SYS user.

SQL> DROP DATABASE LINK <database_link_name>;

E.g.
SQL> DROP DATABASE LINK oig_dblink;

Database link dropped.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
12. Start the SOA queues. Execute from SOAINFRA user in new cloned target PDB. -- Fetch SOA queues names
SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Start SOA queues


SQL> BEGIN
DBMS_AQADM.START_QUEUE ('<queue1_name>');
...
DBMS_AQADM.START_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are started


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

13. Modify connection configuration in OIG data sources and other artifacts to reflect new cloned target PDB
connection credentials.
a. Refer to Appendix section “Mid-Tier OIG JDBC Connection Configuration”. Execute steps provided in the
section.
14. OIG application is available for use with OIG DB deployed in new cloned target PDB

Hot Cloning - Source and Target with Same Database Version

Overview

• Used to move a non-CDB into a PDB by using the DBMS_PDB.DESCRIBE procedure.


• The DBMS_PDB package allows you to generate an XML metadata file from a non-CDB database, effectively
allowing it to be describe it the way you do when unplugging a PDB database.
• Using the generated XML metadata file (and database files), to plug the source non-CDB into a target CDB.

Supported Source Oracle Database Versions and Architecture

• 12.1.0.2.0 non-CDB
• 12.2.0.1.0 non-CDB
• 18c non-CDB
• 19c non-CDB

Supported Target Oracle Database Versions and Architecture

• 12.1.0.2.0 CDB
• 12.2.0.1.0 CDB
• 18c CDB
• 19c CDB (recommended)

Pre-requisites

• The current user must have the CREATE PLUGGABLE DATABASE system privilege in the root of the CDB that will
contain the target PDB.
• The source non-CDB and target CDB are deployed on same host.
• The target CDB and the source non-CDB must be running Oracle Database 12c Release 1 (12.1.0.2) or later.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
• The target CDB and the source non-CDB must be running the same Oracle Database release.
• If the source non-CDB is in NOARCHIVELOG mode, then it must be open in Read-Only mode. If the source nonCDB
is in ARCHIVELOG mode, then it can be open Read-Only or Read-Write modes.
• If source non-CDB is TDE enabled, then TDE password would be required during creation of pluggable database
from target CDB.
o It is required for source non-CDB to have password based TDE wallet.
o If source non-CDB has Autologin based TDE wallet, then it needs to be converted to password based TDE
wallet and then proceed with next steps.

Execution Steps

1. Shutdown and open source non-CDB is Read-Only mode. Execute from SYS user in source non-CDB.

SQL> SHUT IMMEDIATE;


SQL> STARTUP OPEN READ ONLY;

E.g.
SQL> SHUT IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP OPEN READ ONLY;


ORACLE instance started.

Total System Global Area 4294967296 bytes


Fixed Size 3719064 bytes
Variable Size 1224736872 bytes
Database Buffers 3053453312 bytes
Redo Buffers 13058048 bytes
Database mounted.
Database opened.

2. In source non-CDB, generate XML metadata file. Execute from SYS user.

-- Generate XML metadata file


SQL> BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '<directory_path>/<xml_metadata_filename>.xml');
END;
/

E.g.
SQL> BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '/u01/nonCDBMetadata.xml');
END;
/

PL/SQL procedure successfully completed.

3. Using DBMS_PDB.CHECK_PLUG_COMPATIBILITY function determine whether the source non-CDB is compatible


with the target CDB. Execute from CDB SYS user in target CDB.
• If the output is YES, then the source non-CDB is compatible with target CDB. Continue with next steps.
• If the output is NO, then review data in PDB_PLUG_IN_VIOLATIONS dictionary view for possible reasons
for the same. Resolve the issues, and re-try compatibility check.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SET SERVEROUTPUT ON SQL>
DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => '<directory_path>/<xml_metadata_filename>.xml',
pdb_name => '<target_pdb_name>')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible); END;

E.g.
SQL> SET SERVEROUTPUT ON SQL>
DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => '/u01/nonCDBMetadata.xml',
pdb_name => 'OIGPDB1')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
YES

PL/SQL procedure successfully completed.

4. After running compatibility check, validate the PDB_PLUG_IN_VIOLATIONS view from target CDB for any error
raised. Execute from CDB SYS user in target CDB.
Ignore WARNING messages (like below). This will be resolved in later steps, as post successful migration,
mentioned SQL would be executed in target PDB.

SQL> COL CAUSE FOR a20


SQL> COL NAME FOR a20
SQL> COL MESSAGE FOR a35 word_wrapped
SQL> SET LIN 2000 PAGES 2000
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='<source_noncdb_sid>';

E.g.
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='SOURCEDB';
NAME CAUSE TYPE MESSAGE STATUS

SOURCEDB Non-CDB to PDB WARNING PDB plugged in is a non-CDB,


PENDING requires noncdb_to_pdb.sql
be run.

5. At this stage, perform the below in source host and source Non-CDB.
a. Shutdown OIG and SOA Managed Server instances using Enterprise Manager or CLI.
b. Stop the SOA queues. Execute from SOAINFRA user in source non-CDB.

-- Fetch SOA queues names


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
'NORMAL_QUEUE';

-- Stop SOA queues


SQL> BEGIN
DBMS_AQADM.STOP_QUEUE ('<queue1_name>');
...
DBMS_AQADM.STOP_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are stopped


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

c. Stop any running DBMS_SCHEDULER jobs currently executing in OIG. Execute from OIG user in source
non-CDB.

-- Fetch current running job name


SQL> SELECT job_name, session_id, running_instance, elapsed_time FROM
user_scheduler_running_jobs;

-- In case of any running jobs, either wait until its completion or stop the job
'gracefully'
SQL> BEGIN
DBMS_SCHEDULER.stop_job('<job_name>');
END;
/

d. Shut down source non-CDB.


6. Run the CREATE PLUGGABLE DATABASE statement, to plug in source non-CDB using XML metadata file. If Oracle
Managed Files is not enabled on source and target, use FILE_NAME_CONVERT, else it is not required.
a. Fetch data files location for source non-CDB and target CDB. Execute from CDB SYS or Non-CDB SYS user.

-- Fetch data files location for source non-CDB and target CDB
SQL> SELECT file_name FROM dba_data_files;

b. Create new PDB in target CDB. Execute from CDB SYS user.

-- Create Pluggable database (when source non-CDB is Non-TDE enabled)


SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> USING
'<directory_path>/<xml_metadata_filename>.xml'
COPY
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
-- Create Pluggable database (when source non-CDB is TDE enabled)
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> USING
'<directory_path>/<xml_metadata_filename>.xml'
KEYSTORE IDENTIFIED BY <source_noncdb_tde_password>
COPY
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>'); E.g.
-- Create Pluggable database (when source non-CDB is Non-TDE enabled)
SQL> CREATE PLUGGABLE DATABASE OIGPDB1 USING '/u01/nonCDBMetadata.xml'
COPY
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/sourcedb',
'/u01/app/oracle/oradata/targetdb/OIGPDB1');

Pluggable database created.

7. Verify that new cloned target PDB is created in "NEW" state. Execute from CDB SYS user in target CDB.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SHOW pdbs;
SQL> SELECT pdb_name, status FROM cdb_pdbs;

Eg:-
SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 OIGPDB1 MOUNTED

SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
PDB$SEED NORMAL
OIGPDB1 NEW

8. Run the $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql script. This script must be run before the new cloned
target PDB can be opened for the first time. Execute from CDB SYS user in target CDB.

-- Switch to cloned PDB from CDB root container


SQL> ALTER SESSION SET CONTAINER = <pdb_name>;

-- Run script against cloned PDB


SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

E.g.
SQL> ALTER SESSION SET CONTAINER = OIGPDB1;

Session altered.

SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

9. Open the new cloned target PDB in Read-Write mode. Execute from CDB SYS user in target CDB.

SQL> ALTER PLUGGABLE DATABASE <pdb_name> OPEN;

E.g.
SQL> ALTER PLUGGABLE DATABASE OIGPDB1 OPEN;

Pluggable database altered.

10. Verify that new cloned target PDB configurations. Execute from CDB SYS user in target CDB.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SHOW con_id
SQL> SHOW pdbs;
SQL> SELECT pdb_name, status FROM cdb_pdbs;
SQL> SELECT username FROM dba_users WHERE username LIKE '<oig_schema_prefix>%' ORDER BY
username;

E.g.
SQL> show con_id
CON_ID
------------------------------
3

SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
3 OIGPDB1 READ WRITE NO
SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
OIGPDB1 NORMAL

-- OIG 12cPS4 schemas


SQL> SELECT username FROM dba_users WHERE username LIKE 'DEV%' ORDER BY username;
USERNAME
-------------------
DEV_IAU
DEV_IAU_APPEND
DEV_IAU_VIEWER
DEV_MDS
DEV_OIM
DEV_OPSS
DEV_SOAINFRA
DEV_STB
DEV_UMS
DEV_WLS
DEV_WLS_RUNTIME

11 rows selected.

11. Verify OIG DB accessible using new cloned target PDB connection credentials.

$ sqlplus
<oig_user>/<oig_user_password>@//<target_hostname>:<target_port>/<target_pdb_service_name>
E.g.
$ sqlplus DEV_OIM/<oig_user_password>@//targethost.example.com:1521/OIGPDB1.example.com

12. OIG DB in new cloned target PDB is now available for use.
13. Start the SOA queues. Execute from SOAINFRA user in new cloned target PDB.

-- Fetch SOA queues name


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Start SOA queues


SQL> BEGIN
DBMS_AQADM.START_QUEUE ('<queue1_name>');
...

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
DBMS_AQADM.START_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are started


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

15. Modify connection configuration in OIG data sources and other artifacts to reflect new cloned target PDB connection
credentials.
a. Refer to Appendix section “Mid-Tier OIG JDBC Connection Configuration”. Execute steps provided in the
section.
14. OIG application is available for use with OIG DB deployed in new cloned target PDB

Hot Cloning - Source and Target with Different Database Version

Overview

• Move a non-CDB into a PDB by using the DBMS_PDB.DESCRIBE procedure.


• The DBMS_PDB package allows you to generate an XML metadata file from source non-CDB database, effectively
allowing it to be describe it the way you do when unplugging a PDB database.
• Using the generated XML metadata file (and database files), to plug the source non-CDB into a target CDB.
• Upgrade earlier release source non-CDB to higher release target CDB.

Supported Source Oracle Database Versions and Architecture

• 12.1.0.2.0 non-CDB
• 12.2.0.1.0 non-CDB
• 18c non-CDB

Supported Target Oracle Database Versions and Architecture

• 12.2.0.1.0 CDB
• 18c CDB
• 19c CDB (recommended)

Pre-requisites

• The current user must have the CREATE PLUGGABLE DATABASE system privilege in the root of the CDB that will
contain the target PDB.
• The source non-CDB and target CDB are deployed on same host.
• The target CDB and the source non-CDB must be running Oracle Database 12c Release 1 (12.1.0.2) or later.
• The target CDB must be running different Oracle Database release from source non-CDB.
• If the source non-CDB is in NOARCHIVELOG mode, then it must be open in Read-Only mode. If the source nonCDB
is in ARCHIVELOG mode, then it can be open Read-Only or Read-Write modes.
• If source non-CDB is TDE enabled, then TDE password would be required during creation of pluggable database
from target CDB.
o It is required for source non-CDB to have password based TDE wallet.
o If source non-CDB has Autologin based TDE wallet, then it needs to be converted to password based TDE
wallet and then proceed with next steps.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Execution Steps

1. Shutdown and open source non-CDB is Read-Only mode.

SQL> SHUT IMMEDIATE;


SQL> STARTUP OPEN READ ONLY;

E.g.
SQL> SHUT IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> STARTUP OPEN READ ONLY;


ORACLE instance started.

Total System Global Area 4294967296 bytes


Fixed Size 3719064 bytes
Variable Size 1224736872 bytes
Database Buffers 3053453312 bytes
Redo Buffers 13058048 bytes
Database mounted.
Database opened.

2. In source non-CDB, generate XML metadata file. Execute from SYS user.

-- Generate XML metadata file


SQL> BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '<directory_path>/<xml_metadata_filename>.xml');
END;
/

E.g.
SQL> BEGIN
DBMS_PDB.DESCRIBE(pdb_descr_file => '/u01/nonCDBMetadata.xml');
END;
/

PL/SQL procedure successfully completed.

3. Using DBMS_PDB.CHECK_PLUG_COMPATIBILITY function determine whether the source non-CDB is compatible with
the target CDB. Execute from CDB SYS user in target CDB.
• Since target CDB is on different database version from source non-CDB, the compatibility check will give
NO as output. This is expected result for this migration scenario. Ignore the same and continue with next
steps.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SET SERVEROUTPUT ON SQL>
DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => '<directory_path>/<xml_metadata_filename>.xml',
pdb_name => '<target_pdb_name>')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/

E.g.
SQL> SET SERVEROUTPUT ON SQL>
DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => '/u01/nonCDBMetadata.xml',
pdb_name => 'OIGPDB1')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/
NO

PL/SQL procedure successfully completed

4. After running compatibility check, validate the PDB_PLUG_IN_VIOLATIONS dictionary view from target CDB for any
error raised. Execute from CDB SYS user in target CDB.
• Ignore WARNING messages. After cloned target PDB upgrade, most of them will be corrected.
• Ignore below ERROR message, as we need to later upgrade the cloned target PDB after plug in operation is
complete into target CDB.
"PDB’s version does not match CDB’s version: PDB’s version 12.2.0.1.0. CDB’s version 19.0.0.0.0."

SQL> COL CAUSE FOR a20


SQL> COL NAME FOR a20
SQL> COL MESSAGE FOR a35 word_wrapped
SQL> SET LIN 2000 PAGES 2000
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='<source_noncdb_sid>';

E.g.
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='SOURCEDB';
NAME CAUSE TYPE MESSAGE STATUS

SOURCEDB Non-CDB to PDB WARNING PDB plugged in is a non-CDB,


PENDING requires noncdb_to_pdb.sql
be run.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SOURCEDB VSN not match ERROR PDB's version does not match CDB's
PENDING version: PDB's version
12.2.0.1.0. CDB's version 19.0.0.0.0.

SOURCEDB Parameter WARNING CDB parameter filesystemio_options


PENDING
mismatch: Previous 'SETALL' Current
'none'

SOURCEDB Parameter WARNING CDB parameter db_keep_cache_size


PENDING
mismatch: Previous 800M Current 0

SOURCEDB Parameter WARNING CDB parameter compatible mismatch:


PENDING
Previous '12.2.0' Current '19.0.0'

SOURCEDB Parameter WARNING CDB parameter


PENDING session_cached_cursors
mismatch: Previous 800 Current
50

SOURCEDB Parameter WARNING CDB parameter open_cursors


PENDING
mismatch: Previous 1000 Current 300

SOURCEDB Parameter WARNING CDB parameter


PENDING query_rewrite_integrity
mismatch:
Previous 'TRUSTED' Current
'enforced'
23 rows selected.

5. At this stage, perform the below in source host and source Non-CDB.
a. Shutdown OIG and SOA Managed Server instances using Enterprise Manager or CLI.
b. Stop the SOA queues. Execute from SOAINFRA user in source non-CDB.

-- Fetch SOA queues name


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Stop SOA queues


SQL> BEGIN
DBMS_AQADM.STOP_QUEUE ('<queue1_name>');
...
DBMS_AQADM.STOP_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are stopped


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

c. Stop any running DBMS_SCHEDULER jobs currently executing in OIG. Execute from OIG user in source
non-CDB.

-- Fetch current running job name

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SELECT job_name, session_id, running_instance, elapsed_time FROM
user_scheduler_running_jobs;

-- In case of any running jobs, either wait until its completion or stop the job
'gracefully'
SQL> BEGIN
DBMS_SCHEDULER.stop_job('<job_name>');
END; /

d. Shut down source non-CDB.


6. Run the CREATE PLUGGABLE DATABASE statement, to plug in source non-CDB using XML metadata file. If Oracle
Managed Files is not enabled on source and target, use FILE_NAME_CONVERT, else it is not required.
a. Fetch data files location for source non-CDB and target CDB. Execute from SYS and CDB SYS user
respectively.

-- Fetch data files location for source non-CDB and target CDB
SQL> SELECT file_name FROM dba_data_files;

b. Create new PDB in target CDB. Execute from CDB SYS user.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Create Pluggable database (when source non-CDB is Non-TDE enabled). With source non-
CDB and target CDB are deployed on same host.
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> USING
'<directory_path>/<xml_metadata_filename>.xml'
COPY
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
-- Create Pluggable database (when source non-CDB has PASSWORD based TDE wallet
enabled). With source non-CDB and target CDB are deployed on same host.
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> USING
'<directory_path>/<xml_metadata_filename>.xml'
KEYSTORE IDENTIFIED BY <source_noncdb_tde_password>
COPY
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
-- Create Pluggable database (when source non-CDB is Non-TDE enabled). With source non-
CDB and target CDB deployed on different host.
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> FROM FROM NON$CDB@<database_link_name>
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
-- Create Pluggable database (when source non-CDB has PASSWORD based TDE wallet
enabled). With source non-CDB and target CDB deployed on different host.
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> FROM NON$CDB@<database_link_name>
KEYSTORE IDENTIFIED BY <source_noncdb_tde_password>
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');

E.g.
-- Create Pluggable database (when source non-CDB is Non-TDE enabled). With source non-
CDB and target CDB are deployed on same host.
SQL> CREATE PLUGGABLE DATABASE OIGPDB1 USING '/u01/nonCDBMetadata.xml' COPY
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/sourcedb',
'/u01/app/oracle/oradata/targetdb/OIGPDB1');

Pluggable database created.

-- Create Pluggable database (when source non-CDB has PASSWORD based TDE wallet
enabled). With source non-CDB and target CDB deployed on different host.
SQL> CREATE PLUGGABLE DATABASE OIGPDB1 FROM NON$CDB@oig_dblink
KEYSTORE IDENTIFIED BY <source_noncdb_tde_password>
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/sourcedb',
'/u01/app/oracle/oradata/targetdb/OIGPDB1');

Pluggable database created.

7. Verify that new cloned target PDB is created in "NEW" state. Execute from CDB SYS user in target CDB.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SHOW pdbs;
SQL> SELECT pdb_name, status FROM cdb_pdbs;

E.g.
SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 OIGPDB1 MOUNTED

SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
PDB$SEED NORMAL OIGPDB1
NEW

8. Open the new cloned target PDB in UPGRADE mode. Execute from CDB SYS user in target CDB.

-- Switch to cloned PDB from CDB root container


SQL> ALTER SESSION SET CONTAINER = <target_pdb_name>;

-- Open the PDB in UPGRADE mode.


SQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;

-- Verify PDB status. It should be in MIGRATE mode.


SQL> SELECT con_id, name, open_mode, restricted FROM v$pdbs;

E.g.
SQL> ALTER SESSION SET CONTAINER = OIGPDB1;

Session altered.

SQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;

Pluggable database altered.

SQL> SELECT con_id, name, open_mode, restricted FROM v$pdbs;


CON_ID NAME OPEN_MODE RESTRICTED
---------- -------------------- ---------- -----------
3 OIGPDB1 MIGRATE YES

9. Upgrade the new cloned PDB using the Parallel Upgrade Utility command (catctl.pl). Execute from CDB SYS user
in target CDB.

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
> $ORACLE_HOME/rdbms/admin -c '<target_pdb_name>' -l $ORACLE_BASE catupgrd.sql
E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
> $ORACLE_HOME/rdbms/admin -c 'OIGPDB1' -l $ORACLE_BASE catupgrd.sql
Argument list for [/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in c = OIGPDB1
Do not run in C = 0
Input Directory d = /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin
Echo OFF e = 1
Simulate E = 0

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Forced cleanup F = 0
Log Id i = 0
Child Process I = 0
Log Dir l = /u01/app/oracle
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 0
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION:
[19.0.0.0.0] STATUS:
[Production]
BUILD: [Build_id]

/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/orahome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
/u01/app/oracle/product/19.0.0/dbhome_1/bin/orabasehome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19.0.0/dbhome_1]
Analyzing file /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/u01/app/oracle]

catcon::set_log_file_base_path: ALL catcon-related output will be written to


[/u01/app/oracle/catupgrd_catcon_30601.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrd*.log] files for output


generated by scripts

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrd_*.lst] files for spool


files, if any

Number of Cpus = 8
Database Name = targetdb
DataBase Version = 19.0.0.0.0
Generated PDB Inclusion:[OIGPDB1]
CDB$ROOT Open Mode = [OPEN]
Parallel SQL Process Count (PDB) = 2
Parallel SQL Process Count (CDB$ROOT) = 8
Concurrent PDB Upgrades = 1

Start processing of PDBs (OIGPDB1)


[/u01/app/oracle/product/19.0.0/dbhome_1/perl/bin/perl
/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl -d
/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin -c 'OIGPDB1' -l /u01/app/oracle -I -i
OIGPDB1 -n 2 catupgrd.sql]

Argument list for [/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl]


For Oracle internal use only A = 0
Run in c = OIGPDB1
Do not run in C = 0

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Input Directory d = /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin Echo
OFF e = 1

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Simulate E = 0
Forced cleanup F = 0
Log Id i = OIGPDB1
Child Process I = 1
Log Dir l = /u01/app/oracle
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 2
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION:
[19.0.0.0.0] STATUS:
[Production]
BUILD: [Build_id]

/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/orahome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
/u01/app/oracle/product/19.0.0/dbhome_1/bin/orabasehome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19.0.0/dbhome_1]
Analyzing file /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/u01/app/oracle]

catcon::set_log_file_base_path: ALL catcon-related output will be written to


[/u01/app/oracle/catupgrdOIGPDB1_catcon_30850.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrdOIGPDB1*.log] files for


output generated by scripts

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrdOIGPDB1_*.lst] files for


spool files, if any

Number of Cpus = 8
Database Name = targetdb
DataBase Version = 19.0.0.0.0
OIGPDB1 Open Mode = [MIGRATE]
Generated PDB Inclusion:[OIGPDB1]
CDB$ROOT Open Mode = [OPEN]
Components in [OIGPDB1]
Installed [APS CATALOG CATJAVA CATPROC CONTEXT DV JAVAVM OLS ORDIM OWM SDO XDB XML XOQ]
Not Installed [APEX EM MGW ODM RAC WK]

------------------------------------------------------
Phases [0-107] Start Time:[2020_05_27 06:43:58]
Container Lists Inclusion:[OIGPDB1] Exclusion:[NONE]
------------------------------------------------------
*********** Executing Change Scripts ***********
Serial Phase #:0 [OIGPDB1] Files:1 Time: 22s
*************** Catalog Core SQL ***************

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Serial Phase #:1 [OIGPDB1] Files:5 Time: 32s Restart
Phase #:2 [OIGPDB1] Files:1 Time: 0s
*********** Catalog Tables and Views ***********

6 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Parallel Phase #:3 [OIGPDB1] Files:19 Time: 16s
Restart Phase #:4 [OIGPDB1] Files:1 Time: 0s
************* Catalog Final Scripts ************
………
………
………

******************* Migration ******************


Serial Phase #:99 [OIGPDB1] Files:1 Time: 3s
*** End PDB Application Upgrade Pre-Shutdown ***
Serial Phase #:100 [OIGPDB1] Files:1 Time: 2s
Serial Phase #:101 [OIGPDB1] Files:1 Time: 9s
Serial Phase #:102 [OIGPDB1] Files:1 Time: 2s
***************** Post Upgrade *****************
Serial Phase #:103 [OIGPDB1] Files:1 Time: 112s
**************** Summary report ****************
Serial Phase #:104 [OIGPDB1] Files:1 Time: 3s
*** End PDB Application Upgrade Post-Shutdown **
Serial Phase #:105 [OIGPDB1] Files:1 Time: 2s
Serial Phase #:106 [OIGPDB1] Files:1 Time: 3s
Serial Phase #:107 [OIGPDB1] Files:1 Time: 0s
------------------------------------------------------
Phases [0-107] End Time:[2020_05_27 07:05:59]
Container Lists Inclusion:[OIGPDB1] Exclusion:[NONE]
------------------------------------------------------

Grand Total Time: 1321s [OIGPDB1]

LOG FILES: (/u01/app/oracle/catupgrdOIGPDB1*.log)

Upgrade Summary Report Located in:


/u01/app/oracle/upg_summary.log

Time: 1350s For PDB(s)

Grand Total Time: 1350s

LOG FILES: (/u01/app/oracle/catupgrd*.log)


Grand Total Upgrade Time: [0d:0h:22m:30s]

10. Review upgrade results. Execute from CDB SYS user in target CDB.
a. Refer to documentation to upgrade database time zone.

29 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version 1.0
Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Verify "upg_summary.log" from $ORACLE_BASE location
$ cd $ORACLE_BASE
$ cat upg_summary.log

E.g.
$ cd $ORACLE_BASE
$ cat upg_summary.log

Oracle Database Release 19 Post-Upgrade Status Tool 05-27-2020 07:05:5


Container Database: targetdb
[CON_ID: 3 => OIGPDB1]
Component Current Full Elapsed Time
Name Status Version HH:MM:SS
Oracle Server UPGRADED 19.2.0.0.0 00:09:37
JServer JAVA Virtual Machine UPGRADED 19.2.0.0.0 00:01:03
Oracle XDK UPGRADED 19.2.0.0.0 00:00:55
Oracle Database Java Packages UPGRADED 19.2.0.0.0 00:00:09
OLAP Analytic Workspace UPGRADED 19.2.0.0.0 00:00:09
Oracle Label Security UPGRADED 19.2.0.0.0 00:00:05
Oracle Database Vault UPGRADED 19.2.0.0.0 00:00:24
Oracle Text UPGRADED 19.2.0.0.0 00:00:23
Oracle Workspace Manager UPGRADED 19.2.0.0.0 00:00:26
Oracle Real Application Clusters UPGRADED 19.2.0.0.0 00:00:00
Oracle XML Database UPGRADED 19.2.0.0.0 00:01:24
Oracle Multimedia UPGRADED 19.2.0.0.0 00:00:36
Spatial UPGRADED 19.2.0.0.0 00:03:35
Oracle OLAP API UPGRADED 19.2.0.0.0 00:00:07
Datapatch 00:00:10
Final Actions 00:00:18 Post Upgrade
00:01:48
Total Upgrade Time: 00:21:31 [CON_ID: 3 => OIGPDB1]

Database time zone version is 26. It is older than current release time zone version
32. Time zone upgrade is needed using the DBMS_DST package.

Grand Total Upgrade Time: [0d:0h:22m:30s]

11. Review whether any post upgrade fixups are required. Execute from CDB SYS user in target CDB.
Check for file with name "postupgrade_fixups.sql". If file is not present, no action is required.

$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c '<target_pdb_name>' -n 1 -e


-b postfixups -d '''.''' <directory_path>/postupgrade_fixups.sql

E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c 'OIGPDB1' -n 1 -e -b
postfixups -d '''.''' <directory_path>/postupgrade_fixups.sql

12. Use the utility catcon.pl to run utlrp.sql from the $ORACLE_HOME/rdbms/admin directory. The script recompiles
INVALID objects in the database. Execute from CDB SYS user in target CDB.

30 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version 1.0
Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
$ cd $ORACLE_HOME/rdbms/admin
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c '<target_pdb_name>' -n 1 -e
-b comp -d '''.''' $ORACLE_HOME/rdbms/admin/utlrp.sql
E.g. $ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c 'OIGPDB1' -n 1 -e -b
comp d '''.''' $ORACLE_HOME/rdbms/admin/utlrp.sql
catcon::set_log_file_base_path: ALL catcon-related output will be written
to
[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp_catcon_12291.lst]

catcon::set_log_file_base_path: catcon: See


[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp*.log] files for output generated by
scripts
catcon::set_log_file_base_path: catcon: See
[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp_*.lst] files for spool files, if any

catcon.pl: completed successfully

13. Run the $ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql script. This script must be run before the new cloned
target PDB can be opened for the first time. Execute from CDB SYS user in target CDB.

-- Switch to cloned PDB from CDB root container


SQL> ALTER SESSION SET CONTAINER = <target_pdb_name>;

-- Run script against cloned PDB


SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

E.g.
SQL> ALTER SESSION SET CONTAINER = OIGPDB1;

Session altered.

SQL> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

14. Open the new cloned target PDB in Read-Write mode. Execute from CDB SYS user in target CDB.

SQL> ALTER PLUGGABLE DATABASE <target_pdb_name> OPEN;

E.g.
SQL> ALTER PLUGGABLE DATABASE OIGPDB1 OPEN;

Pluggable database altered.

15. Verify all violations (in particular ERROR) in PDB_PLUG_IN_VIOLATIONS dictionary view are in RESOLVED status.
Execute from CDB SYS user in target CDB.

31 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version 1.0
Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> COL CAUSE FOR a20
SQL> COL NAME FOR a20
SQL> COL MESSAGE FOR a35 word_wrapped
SQL> SET LIN 2000 PAGES 2000
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='<target_pdb_name>';

E.g.
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='OIGPDB1';
NAME CAUSE TYPE MESSAGE STATUS
-------------------- -------------------- --------- ----------------------------------- -------
-
OIGPDB1 OPTION ERROR Database option APS mismatch: PDB
RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 Parameter WARNING CDB parameter filesystemio_options


RESOLVED
mismatch: Previous 'SETALL' Current
'none'
OIGPDB1 OPTION ERROR Database option CATALOG mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1 Parameter WARNING CDB parameter db_keep_cache_size


RESOLVED
mismatch: Previous 800M Current 0
OIGPDB1 Parameter WARNING CDB parameter compatible mismatch:
RESOLVED
Previous '12.2.0' Current '19.0.0'
OIGPDB1 OPTION ERROR Database option CATJAVA mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option CATPROC mismatch:


RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

32 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version 1.0
Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
33 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
OIGPDB1 Parameter WARNING CDB parameter
RESOLVED session_cached_cursors
mismatch: Previous 800 Current
50
OIGPDB1 Parameter WARNING CDB parameter open_cursors
RESOLVED
mismatch: Previous 1000 Current 300

OIGPDB1 OPTION ERROR Database option CONTEXT mismatch:


RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option DV mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 Parameter WARNING CDB parameter


RESOLVED query_rewrite_integrity
mismatch:
Previous 'TRUSTED' Current
'enforced'
OIGPDB1 OPTION ERROR Database option JAVAVM mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option OLS mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option ORDIM mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option OWM mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option SDO mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option XDB mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option XML mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1 OPTION ERROR Database option XOQ mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

34 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
OIGPDB1 VSN not match ERROR PDB's version does not match CDB's
RESOLVED version: PDB's version 12.2.0.1.0.
CDB's version 19.0.0.0.0.

OIGPDB1 OPTION WARNING Database option RAC mismatch: PDB


RESOLVED
installed version 19.0.0.0.0. CDB
installed version NULL.

OIGPDB1 Non-CDB to PDB ERROR PDB plugged in is a non-CDB,


RESOLVED
requires noncdb_to_pdb.sql be run
23 rows selected.

16. Verify new cloned target PDB configurations. Execute from CDB SYS user in target CDB.

SQL> SHOW con_id


SQL> SHOW pdbs;
SQL> SELECT pdb_name, status FROM cdb_pdbs;
SQL> SELECT username FROM dba_users WHERE username LIKE '<oig_schema_prefix>%' ORDER BY
username;

E.g.
SQL> show con_id
CON_ID
------------------------------
3

SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
3 OIGPDB1 READ WRITE NO
SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
OIGPDB1 NORMAL

-- OIG 12cPS4 schemas


SQL> SELECT username FROM dba_users WHERE username LIKE 'DEV%' ORDER BY username;
USERNAME
------------------
DEV_IAU
DEV_IAU_APPEND
DEV_IAU_VIEWER
DEV_MDS
DEV_OIM
DEV_OPSS
DEV_SOAINFRA
DEV_STB
DEV_UMS
DEV_WLS
DEV_WLS_RUNTIME

11 rows selected.

17. Verify OIG DB accessible using new cloned target PDB connection credentials.

35 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
$ sqlplus
<oig_user>/<oig_user_password>@//<target_hostname>:<target_port>/<target_pdb_service_name>
E.g.
$ sqlplus DEV_OIM/<oig_user_password>@//targethost.example.com:1521/OIGPDB1.example.com

18. OIG DB in new cloned target PDB is now available for use.
19. Drop database link from target CDB. Execute from CDB SYS user in target CDB.

SQL> DROP DATABASE LINK <database_link_name>;

E.g.
SQL> DROP DATABASE LINK oig_dblink;

Database link dropped.

20. Start the SOA queues. Execute from SOAINFRA user in new cloned target PDB.

-- Fetch SOA queues name


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Start SOA queues


SQL> BEGIN
DBMS_AQADM.START_QUEUE ('<queue1_name>');
...
DBMS_AQADM.START_QUEUE ('<queueN_name>');
END;
/

-- Verify SOA all queues are started


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

21. Modify connection configuration in OIG data sources and other artifacts to reflect new cloned target PDB connection
credentials.
a. Refer to Appendix section “Mid-Tier OIG JDBC Connection Configuration”. Execute steps provided in the
section.
22. OIG application is available for use with OIG DB deployed in new cloned target PDB.

Data Pump

Overview

Recommended approach for migrating an On-premises OIG DB from database version 11.2.0.4.0 to higher version like
19c CDB.

Supported Source Oracle Database Versions and Architecture

• 11.2.0.4.0 (recommended)
• 12.1.0.2.0 non-CDB
• 12.2.0.1.0 non-CDB
• 18c non-CDB

36 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Supported Target Oracle Database Versions and Architecture

• 12.1.0.2.0 CDB
• 12.2.0.1.0 CDB
• 18c CDB
• 19c CDB (recommended)

Pre-requisites

Follow pre-requisites as per MoS: OIM 12c: Schema Backup and Restoration using Data Pump Client Utility (Doc ID
2584066.1).

Execution Steps

Follow execution steps (Pre-Export, Export, Post-Export, Pre-Import, Import, Post-Import) as per MoS: OIM 12c: Schema
Backup and Restoration using Data Pump Client Utility (Doc ID 2584066.1).

37 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
MIGRATE AN ON-PREMISES OIG DB FROM EXISTING CDB TO HIGHER VERSION CDB
Below sections, provide details about supported options for migrating OIG DB from existing CDB to higher version CDB in an
On-premises infrastructure.

Hot Cloning – Using DBCA and DB Link

Overview

• Create common user in source CDB. o This will be used internally to create database link when executing DBCA
command.
• Check local UNDO and ARCHIVELOG mode status in source and target CDB.
• Hot Clone PDB using DBCA to higher version target CDB. o Move a PDB from existing version to higher version
CDB by using the DBMS_PDB.DESCRIBE procedure.
o The DBMS_PDB package allows you to generate an XML metadata file.
o Using the generated XML metadata file (and database files), to plug the source PDB into the target CDB.
• Once cloning is complete at target CDB, upgrade the earlier release PDB to a later release in target CDB.
• The database link must exist in the target CDB (not the remote/source CDB).
• The database link connects from the target CDB to the remote/source CDB.

Supported Source Oracle Database Versions and Architecture

• 12.1.0.2.0 CDB
• 12.2.0.1.0 CDB
• 18c CDB

Supported Target Oracle Database Versions and Architecture

• 12.2.0.1.0 CDB
• 18c CDB
• 19c CDB (recommended)

Pre-requisites

• Hot Cloning using DBCA is available from Oracle Database 12c Release 2 onwards.
• Hot Cloning using DB Link is available from Oracle Database 12c Release 1 onwards.
• The current user must have the CREATE PLUGGABLE DATABASE system privilege in the root of the CDB that will
contain the target PDB.
• The source and target CDB are deployed on same host.
• The target CDB must be running different Oracle Database release from source CDB.
• If the source CDB is in NOARCHIVELOG mode, then it must be open in read-only mode. If the source CDB is in
ARCHIVELOG mode, then it can be open read-only or read/write.
• A database link must enable a connection from the target CDB to the source CDB.
• The user that the database link connects with must have the CREATE PLUGGABLE DATABASE system privilege.
• If source CDB is TDE enabled, then TDE password would be required during creation of pluggable database from
target CDB.
o It is required for source CDB to have password based TDE wallet.
o If source CDB has Autologin based TDE wallet, then it needs to be converted to password based TDE wallet
and then proceed with next steps.

38 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Execution Steps

1. Create common user and grant appropriate privileges to the same in source CDB. Execute from CDB SYS user in
source CDB.
Follow guidelines as per documentation to create common user in Oracle Database 12c Release 1 and later.
-- Create common user
SQL> CREATE USER <common_user_name> IDENTIFIED BY <common_user_password> CONTAINER=ALL;

-- Grant privilege to common user


SQL> GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO <common_user_name> CONTAINER=ALL;
E.g.
SQL> CREATE USER c##remote_clone_user IDENTIFIED BY <common_user_password> CONTAINER=ALL;
User created.

SQL> GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##remote_clone_user CONTAINER=ALL;

Grant succeeded.

2. Check whether source and target CDB is in local UNDO mode and ARCHIVELOG mode. Execute from CDB SYS user in
both source and target CDB.

-- Check local undo status


SQL> SELECT property_name, property_value
FROM database_properties
WHERE property_name = 'LOCAL_UNDO_ENABLED';

-- Check archivelog status


SQL> SELECT log_mode FROM v$database;

E.g.
SQL> SELECT property_name, property_value
FROM database_properties
WHERE property_name = 'LOCAL_UNDO_ENABLED';

PROPERTY_NAME
--------------------------------------------------------------------------------
PROPERTY_VALUE
--------------------------------------------------------------------------------
LOCAL_UNDO_ENABLED
TRUE

SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
ARCHIVELOG

3. If Hot Cloning is being executed using “DB Link”, perform the below extra steps in target CDB.
a. Create an entry in $ORACLE_HOME/network/admin/tnsnames.ora pointing to the source CDB for use in the
USING clause of the database link. Execute in target host.

39 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Create below in ‘tnsnames.ora’ in target CDB to point to source CDB
$ cd $ORACLE_HOME/network/admin
$ vim tnsnames.ora
sourceCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <source_host_name>)(PORT = <source_port>))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <source_cdb_service_name>)
)
)

E.g.
$ cd $ORACLE_HOME/network/admin
$ vim tnsnames.ora
sourceCDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = sourcehost.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = sourcedb.example.com)
)
)

b. Create a DB link pointing to the source CDB or remote database. Execute from CDB SYS user in target CDB.

-- Create a DB link pointing to the source CDB


SQL> CREATE DATABASE LINK <database_link_name> CONNECT TO <common_user_name> IDENTIFIED
BY <common_user_password> USING '<source_cdb_tnsnames_entry>';

E.g.
SQL> CREATE DATABASE LINK oig_dblink CONNECT TO c##remote_clone_user IDENTIFIED BY
<common_user_password> USING 'sourceCDB ';

Database link created.

4. At this stage, perform the below in source host and source PDB:
a. Shutdown OIG and SOA Managed Server instances using Enterprise Manager or CLI.
b. Stop the SOA queues. Execute from SOAINFRA user in source PDB.

-- Fetch SOA queues name


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Stop SOA queues


SQL> BEGIN
DBMS_AQADM.STOP_QUEUE ('<queue1_name>');
...
DBMS_AQADM.STOP_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are stopped


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

c. Stop any running DBMS_SCHEDULER jobs currently executing in OIG. Execute from OIG user in source PDB.

40 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Fetch current running job name
SQL> SELECT job_name, session_id, running_instance, elapsed_time FROM
user_scheduler_running_jobs;

-- In case of any running jobs, either wait until its completion or stop the job
'gracefully'
SQL> BEGIN
DBMS_SCHEDULER.stop_job('<job_name>');
END; /

d. Shut down source PDB.


5. Create Pluggable database using DBCA command and DB Link, to clone source PDB on target CDB. Execute in target
CDB.
a. Create PDB using DBCA command in target CDB.

-- Traverse to $ORACLE_HOME/bin directory


$ cd $ORACLE_HOME/bin

-- Clone source PDB to target CDB using DBCA


$ dbca -silent \
-createPluggableDatabase \
-pdbName <target_pdb_name> \
-sourceDB <target_cdb_sid> \
-createFromRemotePDB \
-remotePDBName <source_pdb_name> \
-remoteDBConnString <source_host_name>:<source_port>/<source_pdb_service_name> \
-remoteDBSYSDBAUserName sys \
-remoteDBSYSDBAUserPassword <sys_password> \
-dbLinkUsername <common_user_name> \
-dbLinkUserPassword <common_user_password>
E.g. -- Traverse to $ORACLE_HOME/bin
directory
$ cd $ORACLE_HOME/bin

-- Clone source PDB to target CDB using DBCA


$ dbca -silent \
-createPluggableDatabase \
-pdbName OIGPDB1New \
-sourceDB targetdb \
-createFromRemotePDB \
-remotePDBName OIGPDB1 \
-remoteDBConnString sourcehost.example.com:1521/OIGPDB1.example.com \
-remoteDBSYSDBAUserName sys \
-remoteDBSYSDBAUserPassword <sys_password> \
-dbLinkUsername c##remote_clone_user \
-dbLinkUserPassword <common_user_password>

Prepare for db operation


50% complete
Create pluggable database using remote clone operation
100% complete
Pluggable database "OIGPDB1New" plugged successfully.
Look at the log file
"/u01/app/oracle/cfgtoollogs/dbca/targetdb/OIGPDB1New/targetdb0.log" for further
details

b. Create PDB using DB Link in target CDB. Execute from CDB SYS user.

41 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Fetch data files location for both source and target CDB
SQL> SELECT file_name FROM dba_data_files;

-- Create Pluggable database (when source CDB is non-TDE enabled)


SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> FROM <source_pdb_name>@<database_link>
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
-- Create Pluggable database (when source CDB has PASSWORD based TDE wallet enabled)
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> FROM <source_pdb_name>@<database_link>
KEYSTORE IDENTIFIED BY <source_cdb_tde_password>
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
E.g.
-- Create Pluggable database (when source CDB is non-TDE enabled)
SQL> CREATE PLUGGABLE DATABASE OIGPDB1NEW FROM OIGPDB1@oig_dblink
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/sourcedb/OIGPDB1','/u01/app/oracle/oradata/
targetdb/OIGPDB1NEW');

Pluggable database created.

-- Create Pluggable database (when source CDB has PASSWORD based TDE wallet enabled)
SQL> CREATE PLUGGABLE DATABASE OIGPDB1NEW FROM OIGPDB1@oig_dblink
KEYSTORE IDENTIFIED BY <source_cdb_tde_password>
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/sourcedb/OIGPDB1','/u01/app/oracle/oradata/
targetdb/OIGPDB1NEW');

Pluggable database created.

6. Check the PDB_PLUG_IN_VIOLATIONS dictionary view from target CDB for any error raised.
• Ignore WARNING messages. After cloned target PDB upgrade, most of them will be corrected.
• Ignore below ERROR message, as we need to later upgrade the cloned target PDB after plug in operation is
complete into target CDB.
"PDB’s version does not match CDB’s version: PDB’s version 12.2.0.1.0. CDB’s version 19.0.0.0.0.

42 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='<target_pdb_name>';

E.g.
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='OIGPDB1NEW';
NAME CAUSE TYPE MESSAGE STATUS
-------------------- -------------------- --------- ----------------------------------- -------
-
OIGPDB1NEW OPTION ERROR Database option APS mismatch: PDB
PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option CATALOG mismatch:


PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option CATJAVA mismatch:


PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option CATPROC mismatch:


PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option CONTEXT mismatch:


PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option DV mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option JAVAVM mismatch:


PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option OLS mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

43 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
OIGPDB1NEW OPTION ERROR Database option ORDIM mismatch: PDB
PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option OWM mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option SDO mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XDB mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XML mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGDB1NEW OPTION ERROR Database option XOQ mismatch: PDB PENDING


installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter filesystemio_options


PENDING
mismatch: Previous 'SETALL' Current
'none'
OIGPDB1NEW Parameter WARNING CDB parameter db_keep_cache_size
PENDING
mismatch: Previous 800M Current 0
OIGPDB1NEW Parameter WARNING CDB parameter compatible mismatch:
PENDING
Previous '12.2.0' Current '19.0.0'
OIGPDB1NEW Parameter WARNING CDB parameter
PENDING session_cached_cursors
mismatch: Previous 800 Current
50
OIGPDB1NEW Parameter WARNING CDB parameter open_cursors
PENDING
mismatch: Previous 1000 Current 300

OIGPDB1NEW VSN not match ERROR PDB's version does not match CDB's
PENDING version: PDB's version
12.2.0.1.0. CDB's version
19.0.0.0.0.

20 rows selected

7. Verify that new cloned target PDB is created in "NEW" state. Execute from CDB SYS user in target CDB.

SQL> SHOW pdbs;


SQL> SELECT pdb_name, status FROM cdb_pdbs;

44 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
E.g.
SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 OIGPDB1NEW MOUNTED

SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
PDB$SEED NORMAL OIGPDB1NEW
NEW

8. Open the new cloned target PDB in UPGRADE mode. Execute from CDB SYS user in target CDB.

-- Switch to cloned PDB from CDB root container


SQL> ALTER SESSION SET CONTAINER = <target_pdb_name>;

-- Open the PDB in UPGRADE mode.


SQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;

-- Verify PDB status. It should be in MIGRATE mode.


SQL> SELECT con_id, name, open_mode, restricted FROM v$pdbs;
E.g.
SQL> ALTER SESSION SET CONTAINER = OIGPDB1NEW;

Session altered.

SQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;

Pluggable database altered.

SQL> SELECT con_id, name, open_mode, restricted FROM v$pdbs;

CON_ID NAME OPEN_MODE RESTRICTED


---------- -------------------- ---------- -----------
3 OIGPDB1NEW MIGRATE YES

9. Upgrade the new cloned PDB using the Parallel Upgrade Utility command (catctl.pl). Execute in target CDB host.

45 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
> $ORACLE_HOME/rdbms/admin -c '<target_pdb_name>' -l $ORACLE_BASE catupgrd.sql
E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
> $ORACLE_HOME/rdbms/admin -c 'OIGPDB1NEW' -l $ORACLE_BASE catupgrd.sql
Argument list for [/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in c = OIGPDB1NEW
Do not run in C = 0
Input Directory d = /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin
Echo OFF e = 1
Simulate E = 0
Forced cleanup F = 0
Log Id i = 0
Child Process I = 0
Log Dir l = /u01/app/oracle
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 0

46 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION:
[19.0.0.0.0] STATUS:
[Production]
BUILD: [Build_id]

/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/orahome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
/u01/app/oracle/product/19.0.0/dbhome_1/bin/orabasehome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19.0.0/dbhome_1]
Analyzing file /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/u01/app/oracle]

catcon::set_log_file_base_path: ALL catcon-related output will be written to


[/u01/app/oracle/catupgrd_catcon_24418.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrd*.log] files for output


generated by scripts

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrd_*.lst] files for spool


files, if any

Number of Cpus = 24
Database Name = targetdb
DataBase Version = 19.0.0.0.0
Generated PDB Inclusion:[OIGPDB1NEW]
CDB$ROOT Open Mode = [OPEN]
Parallel SQL Process Count (PDB) = 2
Parallel SQL Process Count (CDB$ROOT) = 8
Concurrent PDB Upgrades = 1

Start processing of PDBs (OIGPDB1NEW)


[/u01/app/oracle/product/19.0.0/dbhome_1/perl/bin/perl
/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl -d
/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin -c 'OIGPDB1NEW' -l /u01/app/oracle -I -i
OIGPDB1NEW -n 2 catupgrd.sql]

Argument list for [/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl]


For Oracle internal use only A = 0
Run in c = OIGPDB1NEW
Do not run in C = 0
Input Directory d = /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin
Echo OFF e = 1
Simulate E = 0
Forced cleanup F = 0
Log Id i = oigpdb1new
Child Process I = 1
Log Dir l = /u01/app/oracle

47 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Priority List Name L = 0
Upgrade Mode active M = 0

48 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
49 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL Process Count n = 2
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION:
[19.0.0.0.0] STATUS:
[Production]
BUILD: [Build_id]

/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/orahome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
/u01/app/oracle/product/19.0.0/dbhome_1/bin/orabasehome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19.0.0/dbhome_1]
Analyzing file /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/u01/app/oracle]

catcon::set_log_file_base_path: ALL catcon-related output will be written to


[/u01/app/oracle/catupgrdoigpdb1new_catcon_24647.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrdOIGPDB1NEW*.log] files


for output generated by scripts

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrdOIGPDB1NEW_*.lst] files


for spool files, if any

Number of Cpus = 24
Database Name = targetdb
DataBase Version = 19.0.0.0.0
OIGPDB1NEW Open Mode = [MIGRATE]
Generated PDB Inclusion:[OIGPDB1NEW]
CDB$ROOT Open Mode = [OPEN]
Components in [OIGPDB1NEW]
Installed [APS CATALOG CATJAVA CATPROC CONTEXT DV JAVAVM OLS ORDIM OWM SDO XDB XML XOQ]
Not Installed [APEX EM MGW ODM RAC WK]

------------------------------------------------------
Phases [0-107] Start Time:[2020_05_22 21:53:43]
Container Lists Inclusion:[OIGPDB1NEW] Exclusion:[NONE]
------------------------------------------------------
*********** Executing Change Scripts ***********
Serial Phase #:0 [OIGPDB1NEW] Files:1 Time: 20s ***************
Catalog Core SQL ***************
Serial Phase #:1 [OIGPDB1NEW] Files:5 Time: 30s
Restart Phase #:2 [OIGPDB1NEW] Files:1 Time: 1s
………
………
………

******************* Migration ******************

50 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Serial Phase #:99 [OIGPDB1NEW] Files:1 Time: 2s ***
End PDB Application Upgrade Pre-Shutdown ***
Serial Phase #:100 [OIGPDB1NEW] Files:1 Time: 2s

51 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Serial Phase #:101 [OIGPDB1NEW] Files:1 Time: 4s
Serial Phase #:102 [OIGPDB1NEW] Files:1 Time: 2s
***************** Post Upgrade *****************
Serial Phase #:103 [OIGPDB1NEW] Files:1 Time: 110s
**************** Summary report ****************
Serial Phase #:104 [OIGPDB1NEW] Files:1 Time: 2s *** End PDB Application Upgrade Post-
Shutdown **
Serial Phase #:105 [OIGPDB1NEW] Files:1 Time: 2s
Serial Phase #:106 [OIGPDB1NEW] Files:1 Time: 2s
Serial Phase #:107 [OIGPDB1NEW] Files:1 Time: 0s
------------------------------------------------------
Phases [0-107] End Time:[2020_05_22 22:11:35]
Container Lists Inclusion:[OIGPDB1NEW] Exclusion:[NONE] -------------------------------------
-----------------

Grand Total Time: 1074s [OIGPDB1NEW]

LOG FILES: (/u01/app/oracle/catupgrdOIGPDB1NEW*.log)

Upgrade Summary Report Located in:


/u01/app/oracle/upg_summary.log

Time: 1098s For PDB(s)

Grand Total Time: 1098s

LOG FILES: (/u01/app/oracle/catupgrd*.log)


Grand Total Upgrade Time: [0d:0h:18m:18s]

10. Review upgrade results. Execute in target CDB host.


• Refer to documentation to upgrade database time zone.

52 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Verify "upg_summary.log" from $ORACLE_BASE location
$ cd $ORACLE_BASE
$ cat upg_summary.log

E.g.
$ cd $ORACLE_BASE
$ cat upg_summary.log

Oracle Database Release 19 Post-Upgrade Status Tool 05-22-2020 22:11:3


Container Database: targetdb
[CON_ID: 3 => OIGPDB1NEW]

Component Current Full Elapsed Time


Name Status Version HH:MM:SS

Oracle Server UPGRADED 19.2.0.0.0 00:08:55


JServer JAVA Virtual Machine UPGRADED 19.2.0.0.0 00:00:43
Oracle XDK UPGRADED 19.2.0.0.0 00:00:38
Oracle Database Java Packages UPGRADED 19.2.0.0.0 00:00:04
OLAP Analytic Workspace UPGRADED 19.2.0.0.0 00:00:09
Oracle Label Security UPGRADED 19.2.0.0.0 00:00:03
Oracle Database Vault UPGRADED 19.2.0.0.0 00:00:16
Oracle Text UPGRADED 19.2.0.0.0 00:00:10
Oracle Workspace Manager UPGRADED 19.2.0.0.0 00:00:17
Oracle Real Application Clusters UPGRADED 19.2.0.0.0 00:00:00
Oracle XML Database UPGRADED 19.2.0.0.0 00:01:11
Oracle Multimedia UPGRADED 19.2.0.0.0 00:00:13
Spatial UPGRADED 19.2.0.0.0 00:02:17
Oracle OLAP API UPGRADED 19.2.0.0.0 00:00:05
Datapatch 00:00:08
Final Actions 00:00:14 Post Upgrade
00:01:47
Total Upgrade Time: 00:17:31 [CON_ID: 3 => OIGPDB1NEW]

Database time zone version is 26. It is older than current release time zone version 32. Time
zone upgrade is needed using the DBMS_DST package.

Grand Total Upgrade Time: [0d:0h:18m:18s]

11. Review whether any post upgrade fixups are required. Execute from target CDB host.
• Check for file with name "postupgrade_fixups.sql". If file is not present, no action is required.

$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c '<target_pdb_name>' -n 1 -e


-b postfixups -d '''.''' <directory_path>/postupgrade_fixups.sql
E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c 'OIGPDB1NEW' -n 1 -e -b
postfixups -d '''.''' /u01/postupgrade_fixups.sql

12. Use the utility catcon.pl to run utlrp.sql from the $ORACLE_HOME/rdbms/admin directory. The script recompiles
INVALID objects in the database. Execute in target CDB host.

53 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
$ cd $ORACLE_HOME/rdbms/admin
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c '<target_pdb_name>' -n 1 -e
-b comp -d '''.''' $ORACLE_HOME/rdbms/admin/utlrp.sql

E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c 'OIGPDB1NEW' -n 1 -e -b
comp -d '''.''' $ORACLE_HOME/rdbms/admin/utlrp.sql
catcon::set_log_file_base_path: ALL catcon-related output will be written
to
[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp_catcon_31998.lst]

catcon::set_log_file_base_path: catcon: See


[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp*.log] files for output generated by
scripts
catcon::set_log_file_base_path: catcon: See
[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp_*.lst] files for spool files, if any

catcon.pl: completed successfully

13. Open the new cloned target PDB in Read-Write mode. Execute from CDB SYS user in target CDB.

SQL> ALTER PLUGGABLE DATABASE <target_pdb_name> OPEN;

E.g.
SQL> ALTER PLUGGABLE DATABASE OIGPDB1NEW OPEN;

Pluggable database altered.

14. Verify all violations (in particular ERROR) in PDB_PLUG_IN_VIOLATIONS dictionary view are in RESOLVED status.
Execute from CDB SYS user in target CDB.
• Ignore the two WARNING entries in PENDING state, as it is a known Oracle Database issue. Contact Oracle
Database Support for more information on the fix for the issue. These do not affect any database or OIG
functionality in any way. Ignore the same and proceed with next steps.

SQL> COL CAUSE FOR a20


SQL> COL NAME FOR a20
SQL> COL MESSAGE FOR a35 word_wrapped
SQL> SET LIN 2000 PAGES 2000

54 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='<target_pdb_name>';

E.g.
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='OIGPDB1NEW';
NAME CAUSE TYPE MESSAGE STATUS
-------------------- -------------------- --------- ----------------------------------- -------
-
OIGPDB1NEW OPTION ERROR Database option APS mismatch: PDB
RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter filesystemio_options


RESOLVED
mismatch: Previous 'SETALL' Current
'none'
OIGPDB1NEW OPTION ERROR Database option CATALOG mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter db_keep_cache_size


RESOLVED
mismatch: Previous 800M Current 0
OIGPDB1NEW Parameter WARNING CDB parameter compatible mismatch:
RESOLVED
Previous '12.2.0' Current '19.0.0'
OIGPDB1NEW OPTION ERROR Database option CATJAVA mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter


RESOLVED session_cached_cursors
mismatch: Previous 800 Current
50
OIGPDB1NEW OPTION ERROR Database option CATPROC mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter open_cursors


RESOLVED
mismatch: Previous 1000 Current 300

OIGPDB1NEW OPTION ERROR Database option CONTEXT mismatch:


RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option DV mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option JAVAVM mismatch:


RESOLVED

55 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option OLS mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option ORDIM mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option OWM mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option SDO mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XDB mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XML mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XOQ mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW VSN not match ERROR PDB's version does not match CDB's
RESOLVED version: PDB's version
12.2.0.1.0. CDB's version 19.0.0.0.0.

OIGPDB1NEW OPTION WARNING Database option RAC mismatch: PDB


PENDING
installed version 19.0.0.0.0. CDB
installed version NULL.

OIGPDB1NEW missing XDB schema t WARNING There are common XDB schema types PENDING
ype missing from ROOT.
22 rows selected.

15. Verify new cloned target PDB configurations. Execute from CDB SYS user in target CDB.

56 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SHOW con_id
SQL> SHOW pdbs;
SQL> SELECT pdb_name, status FROM cdb_pdbs;
SQL> SELECT username FROM dba_users WHERE username LIKE '<oig_schema_prefix>%' ORDER BY
username;

E.g.
SQL> show con_id
CON_ID
------------------------------
3

SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
3 OIGPDB1NEW READ WRITE NO
SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
OIGPDB1NEW NORMAL

-- OIG 12cPS4 schemas


SQL> SELECT username FROM dba_users WHERE username LIKE 'DEV%' ORDER BY username;
USERNAME
-----------------
DEV_IAU
DEV_IAU_APPEND
DEV_IAU_VIEWER
DEV_MDS
DEV_OIM
DEV_OPSS
DEV_SOAINFRA
DEV_STB
DEV_UMS
DEV_WLS
DEV_WLS_RUNTIME

11 rows selected.

16. Verify OIG DB accessible using new cloned target PDB connection credentials.

$ sqlplus
<oig_user>/<oig_user_password>@//<target_hostname>:<target_port>/<target_pdb_service_name>
E.g.
$ sqlplus DEV_OIM/<oig_user_password>@//targethost.example.com:1522/OIGPDB1NEW.example.com

17. OIG DB in new cloned target PDB is now available for use.
18. Drop database link from target CDB and common user from source CDB. Execute from CDB SYS user.

57 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- From target CDB
SQL> DROP DATABASE LINK <database_link_name>;

-- From source CDB


SQL> DROP USER <common_user_name> CASCADE;

E.g.
-- From target CDB
SQL> DROP DATABASE LINK oig_dblink;

Database link dropped.

-- From source CDB


SQL> DROP USER c##remote_clone_user CASCADE;

User dropped.

19. Start the SOA queues. Execute from SOAINFRA user in new cloned target PDB.

-- Fetch SOA queues name


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Start SOA queues


SQL> BEGIN
DBMS_AQADM.START_QUEUE ('<queue1_name>');
...
DBMS_AQADM.START_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are started


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

20. Modify connection configuration in OIG data sources and other artifacts to reflect new cloned target PDB connection
credentials.
a. Refer to Appendix section “Mid-Tier OIG JDBC Connection Configuration”. Execute steps provided in the
section.
21. OIG application is available for use with OIG DB deployed in new cloned target PDB.

Plugging In

Overview

• Unplug the earlier release PDB from source CDB.


• Unplugging a PDB disassociates the PDB from a CDB.
• To unplug a PDB, connect to its CDB root or application root, specify from below in ALTER PLUGGABLE DATABASE
statement: o XML file o .pdb file
• Drop the PDB from the source CDB.
• Plug the earlier release PDB into the higher release CDB.
• Upgrade the earlier release PDB to a higher release CDB version.

58 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Supported Source Oracle Database Versions and Architecture

• 12.1.0.2.0 CDB
• 12.2.0.1.0 CDB
• 18c CDB

Supported Target Oracle Database Versions and Architecture

• 12.2.0.1.0 CDB
• 18c CDB
• 19c CDB (recommended)

Pre-requisites

• The current user must have the CREATE PLUGGABLE DATABASE system privilege in the root of the CDB that will
contain the target PDB.
• The source and target CDB are deployed on same host.
• The source and target CDB must be running Oracle Database 12c Release 1 (12.1.0.2.0) or later. The target CDB
must be running different Oracle Database release from source CDB.
• If the source CDB is in NOARCHIVELOG mode, then it must be open in read-only mode. If the source CDB is in
ARCHIVELOG mode, then it can be open read-only or read/write.
• If source CDB is TDE enabled, then TDE password would be required during creation of pluggable database from
target CDB.
o It is required for source CDB to have password based TDE wallet.
o If source CDB has Autologin based TDE wallet, then it needs to be converted to password based TDE wallet
and then proceed with next steps.

Execution Steps

1. Execute the below in source host and source PDB:


a. Shutdown OIG and SOA Managed Server instances using Enterprise Manager or CLI.
b. Stop the SOA queues. Execute from SOAINFRA user in source PDB.

-- Fetch SOA queues name


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Stop SOA queues


SQL> BEGIN
DBMS_AQADM.STOP_QUEUE ('<queue1_name>');
...
DBMS_AQADM.STOP_QUEUE ('<queueN_name>');
END;
/

-- Verify all SOA queues are stopped


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

c. Stop any running DBMS_SCHEDULER jobs currently executing in OIG. Execute from OIG user in source PDB.

59 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Fetch current running job name
SQL> SELECT job_name, session_id, running_instance, elapsed_time FROM
user_scheduler_running_jobs;

-- In case of any running jobs, either wait until its completion or stop the job
'gracefully'
SQL> BEGIN
DBMS_SCHEDULER.stop_job('<job_name>');
END; /

2. Unplug the earlier release PDB from source CDB.


a. Run the Pre-Upgrade Information Tool on the source PDB.

-- Traverse to $ORACLE_HOME/rdbms/bin directory


$ cd $ORACLE_HOME/rdbms/admin

-- Run Pre-Upgrade information tool


$ $ORACLE_HOME/jdk/bin/java -jar preupgrade.jar dir <preupg_output_directory> -c
<source_pdb_name>
E.g. $ cd
$ORACLE_HOME/rdbms/admin

$ $ORACLE_HOME/jdk/bin/java -jar preupgrade.jar dir /u01 -c OIGPDB1

b. Run preupgrade_fixups.sql on the source PDB.

60 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Traverse to <preupg_output_directory> directory
$ cd <preupg_output_directory>

-- Connect to source PDB from root container


SQL> ALTER SESSION SET CONTAINER=<target_pdb_name>;
-- Run Pre-Upgrade fixup file
SQL> @preupgrade_fixups_<target_pdb_name>.sql

E.g.
$ cd /u01

SQL> ALTER SESSION SET CONTAINER=OIGPDB1;

Session altered.

SQL> @preupgrade_fixups_OIGPDB1.sql

Executing Oracle PRE-Upgrade Fixup Script

Auto-Generated by: Oracle Preupgrade Script


Version: 12.2.0.1.0 Build: 1
Generated on: 2020-05-22 02:26:15

For Source Database: SOURCEDB


Source Database Version: 12.2.0.1.0
For Upgrade to Version: 12.2.0.1.0

Executing in container: OIGPDB1

Fixup
Check Name Status Further DBA Action ------
---- ------ ------------------
supported_version Failed Manual fixup required.
purge_recyclebin Passed None
invalid_objects_exist Failed Manual fixup recommended.
dictionary_stats Passed None mv_refresh
Failed Manual fixup recommended.

PL/SQL procedure successfully completed.

c. Close the source PDB. Execute from CDB SYS user.

SQL> ALTER PLUGGABLE DATABASE <target_pdb_name> CLOSE;

E.g.
SQL> ALTER PLUGGABLE DATABASE OIGPDB1 CLOSE;

Pluggable database altered.

d. Follow all recommendations listed in "preupgrade.log" file in Pre-Upgrade output log directory.
e. Unplug source PDB to XML file. Execute from CDB SYS user in source CDB.

61 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
-- Unplug source PDB to XML file
SQL> ALTER PLUGGABLE DATABASE <source_pdb_name> UNPLUG INTO
'<directory_path>/<source_pdb_xml_metadata>.xml';

E.g.
SQL> ALTER PLUGGABLE DATABASE OIGPDB1 UNPLUG INTO '/u01/OIGPDB1unplug.xml';
Pluggable database altered.

f. Drop source PDB (but keep datafiles). Execute from CDB SYS user in source CDB.

-- Drop source PDB, but keep data files.


SQL> DROP PLUGGABLE DATABASE <source_pdb_name> KEEP DATAFILES;
E.g.
SQL> DROP PLUGGABLE DATABASE OIGPDB1 KEEP DATAFILES;

Pluggable database dropped.

3. Plug In the unplugged source PDB in target CDB. Execute from CDB SYS user.
a. Fetch data files location for both source and target CDB. Execute from CDB SYS user.

-- Fetch data files location for source and target CDB


SQL> SELECT file_name FROM dba_data_files;

b. Create new PDB in target CDB. Execute from CDB SYS user in target CDB.
-- Create Pluggable database
SQL> CREATE PLUGGABLE DATABASE <target_pdb_name> USING
'<directory_path>/<souce_pdb_unplugged_file_name>.xml'
FILE_NAME_CONVERT = ('<source_data_file_loc>', '<target_data_file_loc>');
E.g.
SQL> CREATE PLUGGABLE DATABASE OIGPDB1NEW USING '/u01/OIGPDB1unplug.xml'
FILE_NAME_CONVERT =
('/u01/app/oracle/oradata/sourcedb/OIGPDB1','/u01/app/oracle/oradata/targetdb/OIGPDB1NE
W');

Pluggable database created.

4. Check the PDB_PLUG_IN_VIOLATIONS dictionary view from target CDB for any error raised.
• Ignore WARNING messages. After cloned target PDB upgrade, most of them will be corrected.
• Ignore below ERROR message, as we need to later upgrade the cloned target PDB after plug in operation is
complete into target CDB.
"PDB’s version does not match CDB’s version: PDB’s version 12.2.0.1.0. CDB’s version 19.0.0.0.0.

62 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> SELECT name,cause,type,message,status FROM pdb_plug_in_violations WHERE
name='<target_pdb_name>';

E.g.
SQL> SELECT name,cause,type,message,status FROM pdb_plug_in_violations WHERE
name='OIGPDB1NEW';
NAME CAUSE TYPE MESSAGE STATUS
-------------------- -------------------- --------- ----------------------------------- -------
-
OIGPDB1NEW Parameter WARNING CDB parameter filesystemio_options
PENDING
mismatch: Previous 'SETALL' Current
'none'
OIGPDB1NEW OPTION ERROR Database option APS mismatch: PDB
PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option CATALOG mismatch:


PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter db_keep_cache_size


PENDING
mismatch: Previous 800M Current 0

63 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
OIGPDB1NEW Parameter WARNING CDB parameter compatible mismatch:
PENDING
Previous '12.2.0' Current '19.0.0'
OIGPDB1NEW OPTION ERROR Database option CATJAVA mismatch:
PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter


PENDING session_cached_cursors
mismatch: Previous 800 Current
50
OIGPDB1NEW OPTION ERROR Database option CATPROC mismatch:
PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter cursor_sharing


PENDING
mismatch: Previous 'FORCE' Current
'EXACT'
OIGPDB1NEW OPTION ERROR Database option CONTEXT mismatch:
PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option DV mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter open_cursors


PENDING
mismatch: Previous 1000 Current 300

OIGPDB1NEW OPTION ERROR Database option JAVAVM mismatch:


PENDING
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option OLS mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option ORDIM mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option OWM mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option SDO mismatch: PDB


PENDING
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XDB mismatch: PDB PENDING

64 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XML mismatch: PDB PENDING


installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XOQ mismatch: PDB PENDING


installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW VSN not match ERROR PDB's version does not match CDB's PENDING
version: PDB's version 12.2.0.1.0. CDB's
version 19.0.0.0.0.

OIGPDB1NEW OPTION WARNING Database option RAC mismatch: PDB PENDING


installed version 19.0.0.0.0. CDB
installed version NULL.

OIGPDB1NEW missing XDB schema t WARNING There are common XDB schema types PENDING
ype missing from ROOT.

23 rows selected.

5. Verify that new cloned target PDB is created in "NEW" state. Execute from CDB SYS user in target CDB.

SQL> SHOW pdbs;


SQL> SELECT pdb_name, status FROM cdb_pdbs;

E.g.
SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 OIGPDB1NEW MOUNTED

SQL> SELECT pdb_name, status FROM cdb_pdbs;

PDB_NAME STATUS
---------------- ---------
PDB$SEED NORMAL OIGPDB1NEW
NEW

6. Open the new cloned target PDB in UPGRADE mode. Execute from CDB SYS user in target CDB.

-- Switch to cloned PDB from CDB root container


SQL> ALTER SESSION SET CONTAINER = <target_pdb_name>;

-- Open the PDB in UPGRADE mode.


SQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;

-- Verify PDB status. It should be in MIGRATE mode.


SQL> SELECT con_id, name, open_mode, restricted FROM v$pdbs;
E.g.
SQL> ALTER SESSION SET CONTAINER = OIGPDB1NEW;

Session altered.

65 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> ALTER PLUGGABLE DATABASE OPEN UPGRADE;

Pluggable database altered.

SQL> SELECT con_id, name, open_mode, restricted FROM v$pdbs;

CON_ID NAME OPEN_MODE RESTRICTED


---------- -------------------- ---------- -----------
3 OIGPDB1NEW MIGRATE YES

7. Upgrade the new cloned PDB using the Parallel Upgrade Utility command (catctl.pl). Execute in target CDB host.

$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
> $ORACLE_HOME/rdbms/admin -c '<target_pdb_name>' -l $ORACLE_BASE catupgrd.sql
E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catctl.pl -d \
> $ORACLE_HOME/rdbms/admin -c 'OIGPDB1NEW' -l $ORACLE_BASE catupgrd.sql
Argument list for [/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl]
For Oracle internal use only A = 0
Run in c = OIGPDB1NEW
Do not run in C = 0
Input Directory d = /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin
Echo OFF e = 1
Simulate E = 0
Forced cleanup F = 0
Log Id i = 0
Child Process I = 0
Log Dir l = /u01/app/oracle
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 0
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION:
[19.0.0.0.0] STATUS:
[Production]
BUILD: [Build_id]

/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/orahome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
/u01/app/oracle/product/19.0.0/dbhome_1/bin/orabasehome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19.0.0/dbhome_1]
Analyzing file /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/u01/app/oracle]

66 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
catcon::set_log_file_base_path: ALL catcon-related output will be written to
[/u01/app/oracle/catupgrd_catcon_27977.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrd*.log] files for output


generated by scripts

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrd_*.lst] files for spool


files, if any

Number of Cpus = 8
Database Name = targetdb
DataBase Version = 19.0.0.0.0
Generated PDB Inclusion:[OIGPDB1NEW]
CDB$ROOT Open Mode = [OPEN]
Parallel SQL Process Count (PDB) = 2
Parallel SQL Process Count (CDB$ROOT) = 8
Concurrent PDB Upgrades = 1

Start processing of PDBs (OIGPDB1NEW)


[/u01/app/oracle/product/19.0.0/dbhome_1/perl/bin/perl
/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl -d
/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin -c 'OIGPDB1NEW' -l /u01/app/oracle -I -i
OIGPDB1NEW -n 2 catupgrd.sql]

Argument list for [/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catctl.pl]


For Oracle internal use only A = 0
Run in c = OIGPDB1NEW
Do not run in C = 0
Input Directory d = /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin
Echo OFF e = 1
Simulate E = 0
Forced cleanup F = 0
Log Id i = oigpdb1new
Child Process I = 1
Log Dir l = /u01/app/oracle
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 2
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION:
[19.0.0.0.0] STATUS:
[Production]
BUILD: [Build_id]

/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/orahome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
/u01/app/oracle/product/19.0.0/dbhome_1/bin/orabasehome =
[/u01/app/oracle/product/19.0.0/dbhome_1]
catctlGetOraBaseLogDir = [/u01/app/oracle/product/19.0.0/dbhome_1]

67 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Analyzing file /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/catupgrd.sql
Log file directory = [/u01/app/oracle]

68 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
69 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
catcon::set_log_file_base_path: ALL catcon-related output will be written to
[/u01/app/oracle/catupgrdoigpdb1new_catcon_28226.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrdOIGPDB1NEW*.log] files


for output generated by scripts

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/catupgrdOIGPDB1NEW_*.lst] files


for spool files, if any

Number of Cpus = 8
Database Name = targetdb
DataBase Version = 19.0.0.0.0
OIGPDB1NEW Open Mode = [MIGRATE]
Generated PDB Inclusion:[OIGPDB1NEW]
CDB$ROOT Open Mode = [OPEN]
Components in [OIGPDB1NEW]
Installed [APS CATALOG CATJAVA CATPROC CONTEXT DV JAVAVM OLS ORDIM OWM SDO XDB XML XOQ]
Not Installed [APEX EM MGW ODM RAC WK]

------------------------------------------------------
Phases [0-107] Start Time:[2020_05_22 03:39:09]
Container Lists Inclusion:[OIGPDB1NEW] Exclusion:[NONE]
------------------------------------------------------
*********** Executing Change Scripts ***********
Serial Phase #:0 [OIGPDB1NEW] Files:1 Time: 23s ***************
Catalog Core SQL ***************
Serial Phase #:1 [OIGPDB1NEW] Files:5 Time: 34s
Restart Phase #:2 [OIGPDB1NEW] Files:1 Time: 1s
………
………
………

******************* Migration ******************


Serial Phase #:99 [OIGPDB1NEW] Files:1 Time: 3s ***
End PDB Application Upgrade Pre-Shutdown ***
Serial Phase #:100 [OIGPDB1NEW] Files:1 Time: 2s
Serial Phase #:101 [OIGPDB1NEW] Files:1 Time: 8s
Serial Phase #:102 [OIGPDB1NEW] Files:1 Time: 3s
***************** Post Upgrade *****************
Serial Phase #:103 [OIGPDB1NEW] Files:1 Time: 16s
**************** Summary report ****************
Serial Phase #:104 [OIGPDB1NEW] Files:1 Time: 3s ***
End PDB Application Upgrade Post-Shutdown **
Serial Phase #:105 [OIGPDB1NEW] Files:1 Time: 3s
Serial Phase #:106 [OIGPDB1NEW] Files:1 Time: 2s
Serial Phase #:107 [OIGPDB1NEW] Files:1 Time: 0s
------------------------------------------------------
Phases [0-107] End Time:[2020_05_22 03:57:25]
Container Lists Inclusion:[OIGPDB1NEW] Exclusion:[NONE] -------------------------------------
-----------------

Grand Total Time: 1097s [OIGPDB1NEW]

LOG FILES: (/u01/app/oracle/catupgrdOIGPDB1NEW*.log)

Upgrade Summary Report Located in:


/u01/app/oracle/upg_summary.log

Time: 1128s For PDB(s)

70 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
Grand Total Time: 1128s

71 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
LOG FILES: (/u01/app/oracle/catupgrd*.log)

Grand Total Upgrade Time: [0d:0h:18m:48s]

8. Review upgrade results. Execute in target CDB host.


• Refer to documentation to upgrade database time zone.

-- Verify "upg_summary.log" from $ORACLE_BASE location


$ cd $ORACLE_BASE
$ cat upg_summary.log

E.g.
$ cd $ORACLE_BASE
$ cat upg_summary.log

Oracle Database Release 19 Post-Upgrade Status Tool 05-22-2020 03:57:1


Container Database: targetdb
[CON_ID: 3 => OIGPDB1NEW]

Component Current Full Elapsed Time


Name Status Version HH:MM:SS

Oracle Server UPGRADED 19.2.0.0.0 00:09:50


JServer JAVA Virtual Machine UPGRADED 19.2.0.0.0 00:00:51
Oracle XDK UPGRADED 19.2.0.0.0 00:00:40
Oracle Database Java Packages UPGRADED 19.2.0.0.0 00:00:05
OLAP Analytic Workspace UPGRADED 19.2.0.0.0 00:00:09
Oracle Label Security UPGRADED 19.2.0.0.0 00:00:03
Oracle Database Vault UPGRADED 19.2.0.0.0 00:00:22
Oracle Text UPGRADED 19.2.0.0.0 00:00:10
Oracle Workspace Manager UPGRADED 19.2.0.0.0 00:00:19
Oracle Real Application Clusters UPGRADED 19.2.0.0.0 00:00:00
Oracle XML Database UPGRADED 19.2.0.0.0 00:01:18
Oracle Multimedia UPGRADED 19.2.0.0.0 00:00:15
Spatial UPGRADED 19.2.0.0.0 00:02:34
Oracle OLAP API UPGRADED 19.2.0.0.0 00:00:06
Datapatch 00:00:10
Final Actions 00:00:17
Post Upgrade 00:00:12
Total Upgrade Time: 00:17:45 [CON_ID: 4 => OIGPDB1NEW]

Database time zone version is 26. It is older than current release time zone
version 32. Time zone upgrade is needed using the DBMS_DST package.

Grand Total Upgrade Time: [0d:0h:18m:48s]

9. Review whether any post upgrade fixups are required. Execute in target CDB host.
• Check for file with name "postupgrade_fixups.sql". If file is not present, no action is required.

$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c '<target_pdb_name>' -n 1 -e


-b postfixups -d '''.''' <directory_path>/postupgrade_fixups.sql
E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c 'OIGPDB1NEW' -n 1 -e -b
postfixups -d '''.''' /u01/postupgrade_fixups.sql
catcon::set_log_file_base_path: ALL catcon-related output will be written to
[/u01/app/oracle/postfixups_catcon_7983.lst]

catcon::set_log_file_base_path: catcon: See [/u01/app/oracle/postfixups*.log] files for output


generated by scripts

72 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
catcon::set_log_file_base_path:
catcon: See
[/u01/app/oracle/postfixups_*.lst
] files for spool files, if any
catcon.pl: completed
successfully

10. Use the utility catcon.pl to run utlrp.sql from the $ORACLE_HOME/rdbms/admin directory. The script recompiles
INVALID objects in the database. Execute in target CDB host.

$ cd $ORACLE_HOME/rdbms/admin
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c '<target_pdb_name>' -n 1 -e
-b comp -d '''.''' $ORACLE_HOME/rdbms/admin/utlrp.sql

E.g.
$ $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/rdbms/admin/catcon.pl -c 'OIGPDB1NEW' -n 1 -e -b
comp -d '''.''' $ORACLE_HOME/rdbms/admin/utlrp.sql
catcon::set_log_file_base_path: ALL catcon-related output will be written
to
[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp_catcon_8785.lst]

catcon::set_log_file_base_path: catcon: See


[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp*.log] files for output generated by
scripts
catcon::set_log_file_base_path: catcon: See
[/u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin/comp_*.lst] files for spool files, if any

catcon.pl: completed successfully

11. Open the new cloned target PDB in Read-Write mode. Execute from CDB SYS user in target CDB.

SQL> ALTER PLUGGABLE DATABASE <target_pdb_name> OPEN;

E.g.
SQL> ALTER PLUGGABLE DATABASE OIGPDB1NEW OPEN;

Pluggable database altered.

12. Verify all violations (in particular ERROR) in PDB_PLUG_IN_VIOLATIONS dictionary view are in RESOLVED status.
Ignore the two WARNING entries in PENDING state, as it is a known Oracle Database issue. Contact Oracle
Database Support for more information on the fix for the issue. These do not affect any database or OIG
functionality in any way. Ignore the same and proceed with next steps.

73 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
SQL> COL CAUSE FOR a20
SQL> COL NAME FOR a20
SQL> COL MESSAGE FOR a35 word_wrapped
SQL> SET LIN 2000 PAGES 2000
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='<target_pdb_name>';

E.g.
SQL> SELECT name, cause, type, message, status FROM pdb_plug_in_violations WHERE
name='OIGPDB1NEW';
NAME CAUSE TYPE MESSAGE STATUS
-------------------- -------------------- --------- ----------------------------------- -------
-
OIGPDB1NEW Parameter WARNING CDB parameter filesystemio_options
RESOLVED
mismatch: Previous 'SETALL' Current
'none'
OIGPDB1NEW OPTION ERROR Database option APS mismatch: PDB
RESOLVED

74 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option CATALOG mismatch:


RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter db_keep_cache_size


RESOLVED
mismatch: Previous 800M Current 0
OIGPDB1NEW Parameter WARNING CDB parameter compatible mismatch:
RESOLVED
Previous '12.2.0' Current '19.0.0'
OIGPDB1NEW OPTION ERROR Database option CATJAVA mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter


RESOLVED session_cached_cursors
mismatch: Previous 800 Current
50
OIGPDB1NEW OPTION ERROR Database option CATPROC mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter cursor_sharing


RESOLVED
mismatch: Previous 'FORCE' Current
'EXACT'
OIGPDB1NEW OPTION ERROR Database option CONTEXT mismatch:
RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option DV mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW Parameter WARNING CDB parameter open_cursors


RESOLVED
mismatch: Previous 1000 Current 300

OIGPDB1NEW OPTION ERROR Database option JAVAVM mismatch:


RESOLVED
PDB installed version 12.2.0.1.0.
CDB installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option OLS mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option ORDIM mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

75 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
OIGPDB1NEW OPTION ERROR Database option OWM mismatch: PDB
RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option SDO mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XDB mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XML mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW OPTION ERROR Database option XOQ mismatch: PDB


RESOLVED
installed version 12.2.0.1.0. CDB
installed version 19.0.0.0.0.

OIGPDB1NEW VSN not match ERROR PDB's version does not match CDB's
RESOLVED version: PDB's version 12.2.0.1.0.
CDB's version 19.0.0.0.0.

OIGPDB1NEW OPTION WARNING Database option RAC mismatch: PDB PENDING


installed version 19.0.0.0.0. CDB
installed version NULL.

OIGPDB1NEW missing XDB schema t WARNING There are common XDB schema types PENDING
ype missing from ROOT.

23 rows selected.

13. Verify new cloned target PDB configurations. Execute from CDB SYS user in target CDB.

SQL> SHOW con_id


SQL> SHOW pdbs;
SQL> SELECT pdb_name, status FROM cdb_pdbs;
SQL> SELECT username FROM dba_users WHERE username LIKE '<oig_schema_prefix>%' ORDER BY
username;

E.g.
SQL> show con_id
CON_ID
------------------------------
3

SQL> SHOW pdbs;

CON_ID CON_NAME OPEN MODE RESTRICTED


---------- ------------------------------ ---------- ----------
3 OIGPDB1NEW READ WRITE NO
SQL> SELECT pdb_name, status FROM cdb_pdbs;

76 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
PDB_NAME STATUS
---------------- ---------
OIGPDB1NEW NORMAL

-- OIG 12cPS4 schemas


SQL> SELECT username FROM dba_users WHERE username LIKE 'DEV%' ORDER BY username; USERNAME
--------------------
DEV_IAU
DEV_IAU_APPEND
DEV_IAU_VIEWER
DEV_MDS
DEV_OIM
DEV_OPSS
DEV_SOAINFRA
DEV_STB
DEV_UMS
DEV_WLS DEV_WLS_RUNTIME 11 rows selected.

14. Verify OIG DB accessible using new cloned target PDB connection credentials.

$ sqlplus
<oig_user>/<oig_user_password>@//<target_hostname>:<target_port>/<target_pdb_service_name>
E.g.
$ sqlplus DEV_OIM/<oig_user_password>@//targethost.example.com:1522/OIGPDB1NEW.example.com

15. OIG DB in new cloned target PDB is now available for use.
16. Start the SOA queues. Execute from SOAINFRA user in new cloned target PDB.

-- Fetch SOA queues name


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

-- Start SOA queues


SQL> BEGIN
DBMS_AQADM.START_QUEUE ('<queue1_name>');
...
DBMS_AQADM.START_QUEUE ('<queueN_name>');
END;
/

-- Verify SOA all queues are started


SQL> SELECT name, enqueue_enabled, dequeue_enabled FROM USER_QUEUES where queue_type =
'NORMAL_QUEUE';

17. Modify connection configuration in OIG data sources and other artifacts to reflect new cloned target PDB connection
credentials.
a. Refer to Appendix section “Mid-Tier OIG JDBC Connection Configuration”. Execute steps provided in the
section.
18. OIG application is available for use with OIG DB deployed in new cloned target PDB.

77 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
APPENDIX

References
 Creating and Removing PDBs and Application Containers

 Upgrade Database Timezone

 Create Common User

Mid-Tier OIG JDBC Connection Configuration

Overview

• Update OIG JDBC data sources, OIMAuthenticationProvider and DirectDB configuration using Enterprise Manager.
• Supported for all OIG versions.

Execution Steps

1. Login to Enterprise Manager using Weblogic user credentials.


2. Goto the System MBean Browser => Security => myrealmOIMAuthenticationProvider => DBUrl
a. Edit the connection URL info for ‘DBUrl’ to reflect target PDB connection details.

Value: jdbc:oracle:thin:@//<target_cdb_host>:<target_cdb_port>/<target_pdb_servicename>

E.g.
Value: jdbc:oracle:thin:@//targethost.example.com:1521/OIGPDB1.example.com

3. Open WebLogic Domain => JDBC Data Sources. Below is list of JDBC data sources which should be visible here based
on installed OIG version (E.g. Given below are OIG data sources in OIG 12cPS4).

78 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
4. Edit ALL JDBC Data Sources Connection Pool Database URLs to reflect target PDB connection details.

Database URL: jdbc:oracle:thin:@//<target_cdb_host>:<target_cdb_port>/<target_pdb_servicename>

E.g.
Database URL: jdbc:oracle:thin:@//targethost.example.com:1521/OIGPDB1.example.com

5. Restart Weblogic Admin server and Start OIG and SOA Managed Server instances using Enterprise Manager or CLI.
6. Goto the System MBean Browser => Application Defined MBeans => oracle.iam => Server:oim_server1 =>XML Config
=> DirectDB.
a. Goto the Attributes tab => Look for ‘Url’.
b. Edit the connection URL info for ‘Url’ to reflect target PDB connection details.

Value: jdbc:oracle:thin:@//<target_cdb_host>:<target_cdb_port>/<target_pdb_servicename>

E.g.
Value: jdbc:oracle:thin:@//targethost.example.com:1521/OIGPDB1.example.com

79 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
7. Restart OIG Managed Server instance using Enterprise Manager or CLI, for DirectDB changes to take effect.

80 TECHNICAL BRIEF | Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure | Version
1.0 Copyright © 2020, Oracle and/or its affiliates | Confidential - Public
CONNECT WITH US
Call +1.800.ORACLE1 or visit oracle.com.
Outside North America, find your local office at oracle.com/contact.

blogs.oracle.com facebook.com/oracle twitter.com/oracle

Copyright © 2020, Oracle and/or its affiliates. All rights reserved. This document is provided for information purposes only, and the contents hereof are subject to change without
notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties
and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document, and no contractual obligations are formed
either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without
our prior written permission.
This device has not been authorized as required by the rules of the Federal Communications Commission. This device is not, and may not be, offered for sale or lease, or sold or
leased, until authorization is obtained.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of
SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered
trademark of The Open Group. 0120
Migrate of Oracle Identity Governance Database to Container Database Architecture in an On-premises Infrastructure August,
2020
Author: Sagar Dua

You might also like