Wednesday 9 February 2022

Patch : DataPatch internal Information's and location

 DataPatch internal Information's and location 

  • $ORACLE_HOME/OPatch/datapatch
  • $ORACLE_HOME/sqlpatch/
 sqlpatch.pl
 sqlpatch.pm

  • Patch Number : 29517242
29517242_apply.sql
 29517242_rollback.sql

rollback_files
29517242.zip
29517242.xml
  •  rollback_files/
 19.1.0.0.0
 19.3.0.0.0-RU-Release_Update-190410122720

[oracle@srv6 OPatch]$ cat datapatch

#!/bin/sh

#

# $Header: opatch/OPatch/datapatch /main/3 2016/09/16 23:29:40 vkekalo Exp $

#

# t.sh

#

# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.

#

#    NAME

#      datapatch - <one-line expansion of the name>

#

#    DESCRIPTION

#      <short description of component this file declares/defines>

#

#    NOTES

#      <other useful comments, qualifications, etc.>

#

#    MODIFIED   (MM/DD/YY)

#    opatch    09/03/15 - : Update the copyright year

#    opatch      07/12/12 - : Creation


# Call sqlpatch to do the real work

$ORACLE_HOME/sqlpatch/sqlpatch $@


[oracle@srv6 OPatch]$





[oracle@srv6 OPatch]$ cd $ORACLE_HOME/sqlpatch/

[oracle@srv6 sqlpatch]$ ll
total 392
drwxr-xr-x. 4 oracle oinstall   4096 Apr 18  2019 29517242
-rwxr-x---. 1 oracle oinstall  11322 Apr  1  2019 copy_sqlpatch_files.pl
drwxr-xr-x. 8 oracle oinstall   4096 Apr 17  2019 lib
-rwxr-x---. 1 oracle oinstall   2732 Apr  1  2016 sqlpatch
-rw-r--r--. 1 oracle oinstall   2080 Nov  6  2018 sqlpatch_app_begin.sql
-rw-r--r--. 1 oracle oinstall   1578 Nov  6  2018 sqlpatch_app_create.sql
-rw-r--r--. 1 oracle oinstall   2996 Nov  6  2018 sqlpatch_app_end.sql
-rw-r--r--. 1 oracle oinstall  11212 Mar 26  2019 sqlpatch_bootstrap.sql
-rw-r--r--. 1 oracle oinstall   5581 Mar  2  2019 sqlpatch.pl
-rw-r--r--. 1 oracle oinstall 340639 Mar  2  2019 sqlpatch.pm
[oracle@srv6 sqlpatch]$

[oracle@srv6 sqlpatch]$ cat sqlpatch
#!/bin/sh
#
# $Header: rdbms/admin/sqlpatch/sqlpatch /main/9 2016/03/31 19:56:02 surman Exp $
#
#
# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
#
#    NAME
#      sqlpatch - <one-line expansion of the name>
#
#    DESCRIPTION
#      <short description of component this file declares/defines>
#
#    NOTES
#      <other useful comments, qualifications, etc.>
#
#    MODIFIED   (MM/DD/YY)
#    surman      12/22/15 - 22359063: XML descriptor
#    surman      07/09/14 - 19178851: Library path for different platforms
#    mpradeep    05/15/14 - 18151716: Fix perl issues
#    surman      11/29/12 - 15909914: More portable syntax
#    surman      11/26/12 - 15902847: Add ORACLE_HOME/bin to path
#    surman      11/09/12 - 15857388: Fix LD_LIBRARY_PATH
#    surman      10/31/12 - 14763881: Set ORACLE_HOME
#    surman      10/19/12 - 14787047: CDB support
#    surman      07/12/12 - 14165102: Creation

# 15909914: Ensure /bin and /usr/bin are in the path so we can find dirname
PATH=$PATH:/bin:/usr/bin
export PATH

# Set ORACLE_HOME based on the full path to this script, which is
# $ORACLE_HOME/sqlpatch
CWD=`dirname $0`
ORACLE_HOME=`dirname ${CWD}`
export ORACLE_HOME

# Ensure LD_LIBRARY_PATH includes the right directories
# 19178851: Different flavors of unix use different variables.  This code
# is modeled off of srvctl.
PLATFORM=`uname`
case ${PLATFORM} in
HP-UX)
  LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
  export LD_LIBRARY_PATH
  ;;
AIX)
  LIBPATH=${ORACLE_HOME}/lib:${LIBPATH}
  export LIBPATH
  ;;
Linux)
  LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
  # Linux ( ppc64 || s390x ) => LD_LIBRARY_PATH lib32
  ARCH=`uname -m`;
  if [ "${ARCH}" = "ppc64" -o "${ARCH}" = "s390x" ]
  then
    LD_LIBRARY_PATH=${ORACLE_HOME}/lib32:${LD_LIBRARY_PATH}
  fi
  export LD_LIBRARY_PATH
  ;;
SunOS)
  LD_LIBRARY_PATH_64=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH_64}
  export LD_LIBRARY_PATH_64
  LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
  export LD_LIBRARY_PATH
  ;;
OSF1)
  LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
  export LD_LIBRARY_PATH
  ;;
Darwin)
  DYLD_LIBRARY_PATH=${ORACLE_HOME}/lib:${DYLD_LIBRARY_PATH}
  export DYLD_LIBRARY_PATH
  ;;
*)
  if [ -d ${ORACLE_HOME}/lib32 ];
  then
    LD_LIBRARY_PATH=${ORACLE_HOME}/lib32:${LD_LIBRARY_PATH}
  else
    LD_LIBRARY_PATH=${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}
  fi
  export LD_LIBRARY_PATH
  ;;
esac

# Ensure PATH includes the right directories
PATH=$ORACLE_HOME/bin:$PATH
export PATH

# Just call the Perl under $ORACLE_HOME with the arguments
$ORACLE_HOME/perl/bin/perl -I$ORACLE_HOME/sqlpatch -I$ORACLE_HOME/rdbms/admin -I$ORACLE_HOME/sqlpatch/lib $ORACLE_HOME/sqlpatch/sqlpatch.pl $@

[oracle@srv6 sqlpatch]$


[oracle@srv6 sqlpatch]$ cat sqlpatch.pl
#!/usr/local/bin/perl
#
# $Header: rdbms/admin/sqlpatch/sqlpatch.pl /st_rdbms_19/4 2019/03/02 09:01:58 sanagara Exp $
#
# sqlpatch.pl
#
# Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
#
#    NAME
#      sqlpatch.pl - <one-line expansion of the name>
#
#    DESCRIPTION
#      <short description of component this file declares/defines>
#      0: Success
#      1: Failure during prereq checks
#      2: Failure during patch application
#
#    NOTES
#      See support note 1585822.1 for full documentation.
#    MODIFIED   (MM/DD/YY)
#    apfwkr      02/03/19 - Backport sanagara_bug-28181021 from main
#    sanagara    01/11/19 - Backport
#                           sanagara_ci_backport_28587723_18.0.0.0.0dbru from
#                           st_rdbms_18.0
#    sanagara    10/23/18 - Backport sanagara_bug-28702188 from main
#    sanagara    10/19/18 - 28181021: add recomp_threshold
#    sanagara    09/27/18 - 28702188: add exclude_pdbs option
#    sanagara    01/09/19 - Backport
#                           sanagara_ci_backport_28587723_18.4.0.0.1adwbp from
#                           st_rdbms_pt-dbcloud18
#    sanagara    10/09/18 - Backport sanagara_bug-28587723 from main
#    sanagara    09/18/18 - 28587723: add skip_sql_state_check
#    surman      09/26/17 - 26281129: Support for new release model
#    surman      04/07/17 - 25507396: Updated requirements for application
#                           patches
#    sanagara    03/21/17 - 24798218: Add allow_pdb_mismatch
#    surman      03/09/17 - 25425451: Intelligent bootstrap
#    surman      09/30/16 - 21503113: JSON orchestration logs
#    surman      06/14/16 - 22694961: Application patches
#    surman      01/25/16 - 22349063: Add -noqi
#    surman      03/04/15 - 18361221: Add -userid
#    surman      12/26/14 - 19883092: Add skip_upgrade_check
#    surman      09/11/14 - 19547370: Much better logging
#    surman      06/24/14 - 19051526: Add period
#    mpradeep    05/13/14 - 17665122 Check if patches need upgrade mode
#    surman      04/21/14 - 17277459: datapatch replaces catbundle
#    mpradeep    04/18/14 - 18411124 - Correct help messages
#    mpradeep    03/24/14 - 17358877 Add a message for multitenant DB's
#    surman      03/19/14 - 17665117: Patch UID
#    surman      03/14/14 - 17898119: Fix -oh
#    surman      03/11/14 - 18355572: Exit if prereqs fail and bundle fixes
#    surman      02/21/14 - Add -bundle_series
#    surman      12/20/13 - 17981677: Add ignorable_errors
#    surman      12/16/13 - 17922172: Handle multiple bundles
#    surman      11/19/13 - 17777061: Better PDB handling
#    surman      09/17/13 - 17442449: Handle RAC better
#    surman      08/06/13 - 17005047: datapatch calls catbundle
#    surman      11/20/12 - 15873839: Check open_mode of PDBs
#    surman      10/30/12 - 14763881: Use db in connect string
#    surman      10/19/12 - 14787047: CDB support
#    surman      09/20/12 - 14624172: Add status column
#    surman      09/07/12 - 14563601: DB name and timestamp for logfile
#    surman      09/05/12 - 14589745: Version to 12.1.0.1.0
#    surman      08/29/12 - 14503324: Pass debug to sqlpatch.pm
#    surman      07/13/12 - 14165102: Creation
#

use strict;
use Getopt::Long;

use sqlpatch;

my $db = '';              # Database to use instead of ORACLE_SID
my $ret;                  # 18355572: Return code
my $prereq_failed;        # 18355572: True if prereq checks failed
my %sqlpatch_parameters;     # 17665117: Hash of all parameters

# Turn on autoflush of output
$| = 1;

my $debug;

# Parse command line into parameters hash
my $parseError =
  GetOptions (\%sqlpatch_parameters,
              'db=s',
              'apply=s',
              'rollback=s',
              'force',
              'prereq',
              'pdbs=s',
              'exclude_pdbs=s',
              'oh=s',
              'verbose',
              'help',
              'debug',
              'ignorable_errors=s',
              'version',
              'upgrade_mode_only',
              'bootstrap',
              'allow_pdb_mismatch',
              'skip_bootstrap',
              'skip_sql_state_check',
              'skip_upgrade_check',
              'userid=s',
              'noqi',
              'app',
              'binary_config=s',
              'orchestration_summary=s',
              'orchestration_progress=s',
              'connect_string=s',
              'recomp_threshold=n',
              'local_inventory');


# Handle parse errors and help options
if (!$parseError || scalar(@ARGV)) {
  sqlpatch::usage();
  $ret = 1;
  goto complete;
}
elsif (defined($sqlpatch_parameters{"help"})) {
  sqlpatch::usage();
  $ret = 0;
  goto complete;
}

if (defined($sqlpatch_parameters{"debug"})) {
  sqlpatch::sqlpatch_log(sqlpatch::LOG_DEBUG, "Command line arguments:\n");
  sqlpatch::sqlpatch_log(sqlpatch::LOG_DEBUG,
                         Data::Dumper->Dumper(%sqlpatch_parameters));
}

# 14763881: If -db is specified, set $ORACLE_SID to it
if (defined($sqlpatch_parameters{"db"})) {
  $ENV{ORACLE_SID} = $sqlpatch_parameters{"db"};
  if (defined($sqlpatch_parameters{"debug"})) {
    sqlpatch::sqlpatch_log(sqlpatch::LOG_DEBUG,
      "-db specified, set ORACLE_SID to $ENV{ORACLE_SID}\n");
  }
}

# Initialize sqlpatch parameters
$ret = sqlpatch::initialize(\%sqlpatch_parameters);
if ($ret) {
  goto complete;
}

# Complete patching based on initialized parameters
$ret = sqlpatch::patch();

# And we're done

complete:

# 17277459: Clean up before exiting
sqlpatch::finalize();

exit($ret);

[oracle@srv6 sqlpatch]$

[oracle@srv6 sqlpatch]$ cd 29517242/
[oracle@srv6 29517242]$ ll
total 8
drwxr-xr-x. 3 oracle oinstall 4096 Apr 18  2019 22861793
drwxr-xr-x. 3 oracle oinstall 4096 Aug  2  2021 22862832
[oracle@srv6 29517242]$ cd 22861793/
[oracle@srv6 22861793]$ ll
total 4
drwxr-xr-x. 2 oracle oinstall 4096 Apr 18  2019 patch_level_files
[oracle@srv6 22861793]$ cd patch_level_files/
[oracle@srv6 patch_level_files]$ ll
total 124
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_assistants_acf_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_assistants_deconfig_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_buildtools_rsf_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_ctx_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_ctx_rsf_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_dbjava_ic_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_dbjava_jdbc_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_dbjava_ucp_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_duma_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_network_client_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_network_listener_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_network_rsf_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_nlsrtl_rsf_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_odbc_ic_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_ons_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_ovm_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_precomp_common_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_precomp_lang_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_dbscripts_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_deconfig_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_dv_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_install_plugins_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_oci_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_rman_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_rsf_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_rdbms_util_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_sdo_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_sdo_locator_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_sqlplus_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_sqlplus_ic_29517242.txt
-rwxr-xr-x. 1 oracle oinstall 9 Apr 18  2019 metadata_oracle_xdk_rsf_29517242.txt

[oracle@srv6 File]$ cd ..
[oracle@srv6 lib]$ cd ..
[oracle@srv6 sqlpatch]$ ll
total 392
drwxr-xr-x. 4 oracle oinstall   4096 Apr 18  2019 29517242
-rwxr-x---. 1 oracle oinstall  11322 Apr  1  2019 copy_sqlpatch_files.pl
drwxr-xr-x. 8 oracle oinstall   4096 Apr 17  2019 lib
-rwxr-x---. 1 oracle oinstall   2732 Apr  1  2016 sqlpatch
-rw-r--r--. 1 oracle oinstall   2080 Nov  6  2018 sqlpatch_app_begin.sql
-rw-r--r--. 1 oracle oinstall   1578 Nov  6  2018 sqlpatch_app_create.sql
-rw-r--r--. 1 oracle oinstall   2996 Nov  6  2018 sqlpatch_app_end.sql
-rw-r--r--. 1 oracle oinstall  11212 Mar 26  2019 sqlpatch_bootstrap.sql
-rw-r--r--. 1 oracle oinstall   5581 Mar  2  2019 sqlpatch.pl
-rw-r--r--. 1 oracle oinstall 340639 Mar  2  2019 sqlpatch.pm
[oracle@srv6 sqlpatch]$ cd 29517242/
[oracle@srv6 29517242]$ ll
total 8
drwxr-xr-x. 3 oracle oinstall 4096 Apr 18  2019 22861793
drwxr-xr-x. 3 oracle oinstall 4096 Aug  2  2021 22862832
[oracle@srv6 29517242]$ cd 22862832/
[oracle@srv6 22862832]$ ll
total 3792
-rw-r--r--. 1 oracle oinstall   10512 Apr 18  2019 29517242_apply.sql
-rw-r--r--. 1 oracle oinstall   10527 Apr 18  2019 29517242_rollback.sql
-rw-r--r--. 1 oracle oinstall    6998 Apr 18  2019 29517242.xml
-rw-r-----. 1 oracle oinstall 3842294 Aug  2  2021 29517242.zip
drwxr-xr-x. 4 oracle oinstall    4096 Apr 18  2019 rollback_files
[oracle@srv6 22862832]$ cat 29517242_apply.sql
SET SERVEROUTPUT ON

REM Apply script for patch 29517242/22862832
DEFINE logfiledir = &1

COLUMN sqlpatch_logfile NEW_VALUE full_logfile

SELECT '&logfiledir' || '29517242_apply_' ||
       CASE WHEN (sys_context('userenv', 'cdb_name') IS NULL)
            THEN name
            ELSE name || '_' || replace(sys_context('userenv', 'con_name'), '$')
             END || TO_CHAR(systimestamp, '_YYYYMonDD_HH24_MI_SS',
             'NLS_DATE_LANGUAGE=AMERICAN') ||'.log' AS sqlpatch_logfile
  FROM v$database;

SPOOL &full_logfile

SET PAGESIZE 0
SELECT 'Starting apply for patch 29517242/22862832 on ' ||
       SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

BEGIN
    dbms_sqlpatch.patch_initialize(p_patch_id      => 29517242,
                                   p_patch_uid     => 22862832,
                                   p_logfile       => '&full_logfile');
END;
/


COLUMN install_file NEW_VALUE sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/backport_files/bug_29032457_apply.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/backport_files/bug_29032457_apply.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catcdbviews.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catcdbviews.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/cdcore_mig.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/cdcore_mig.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catappcontainer.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catappcontainer.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrrtvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrrtvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrpdbvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrpdbvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmssqlu.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmssqlu.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmssqlt.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmssqlt.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvsash.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvsash.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvsspmi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvsspmi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmsgwm.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmsgwm.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catost.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catost.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmsrman.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmsrman.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catadv.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catadv.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/cataivw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/cataivw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtemxi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtemxi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtemx_dbhome.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtemx_dbhome.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsrv.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsrv.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtash.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtash.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlt.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlt.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtaii.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtaii.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvthdm.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvthdm.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlu.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlu.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtspmi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtspmi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtspm.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtspm.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtstai.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtstai.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlqi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlqi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtrmns.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtrmns.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/execsmb.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/execsmb.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtgwm.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtgwm.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling md/admin/catmdloc.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('md/admin/catmdloc.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling md/admin/prvtcs.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('md/admin/prvtcs.plb') AS install_file
  FROM dual;
@@&sql_script



BEGIN dbms_sqlpatch.patch_finalize; END;
/

SET PAGESIZE 0
SELECT 'Finished apply for patch 29517242/22862832 on' ||
       SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

SPOOL off

[oracle@srv6 22862832]$ cd ..
[oracle@srv6 29517242]$ ll
total 8
drwxr-xr-x. 3 oracle oinstall 4096 Apr 18  2019 22861793
drwxr-xr-x. 3 oracle oinstall 4096 Aug  2  2021 22862832
[oracle@srv6 29517242]$ pwd
/u01/app/oracle/product/19.3/db_home/sqlpatch/29517242
[oracle@srv6 29517242]$ ll
total 8
drwxr-xr-x. 3 oracle oinstall 4096 Apr 18  2019 22861793
drwxr-xr-x. 3 oracle oinstall 4096 Aug  2  2021 22862832
[oracle@srv6 29517242]$ cd 22862832/
[oracle@srv6 22862832]$ ll
total 3792
-rw-r--r--. 1 oracle oinstall   10512 Apr 18  2019 29517242_apply.sql
-rw-r--r--. 1 oracle oinstall   10527 Apr 18  2019 29517242_rollback.sql
-rw-r--r--. 1 oracle oinstall    6998 Apr 18  2019 29517242.xml
-rw-r-----. 1 oracle oinstall 3842294 Aug  2  2021 29517242.zip
drwxr-xr-x. 4 oracle oinstall    4096 Apr 18  2019 rollback_files
[oracle@srv6 22862832]$ cat 29517242.xml
<?xml version="1.0" encoding="utf-8"?>
<sqlPatch ID="29517242" uniquePatchID="22862832" applicationPatch="NO" jvm="NO" startupMode="normal" estimatedApplyTime="5" estimatedRollbackTime="5" buildTimestamp="190410122720" buildDescription="Release_Update" patchType="RU" featureVersion="19" ruVersion="19.3.0.0.0">

<patchDescription>Database Release Update : 19.3.0.0.190416 (29517242)</patchDescription>

<!-- All components contained in this patch -->
<components>
  <component sequence="1">CATALOG</component>
  <component sequence="2">CATPROC</component>
  <component sequence="3">ORDIM</component>
  <component sequence="4">XDB</component>
</components>

<!--  All files contained in this patch -->
<sqlFiles>
    <file mode="apply" new="yes" estimatedTime="5" component="CATALOG" sequence="1">rdbms/admin/backport_files/bug_29032457_apply.sql</file>
    <file mode="rollback" new="yes" estimatedTime="5" component="CATALOG" sequence="2">rdbms/admin/backport_files/bug_29032457_rollback.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATALOG" sequence="3">rdbms/admin/catcdbviews.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATALOG" sequence="4">rdbms/admin/cdcore_mig.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="5">rdbms/admin/catappcontainer.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="6">rdbms/admin/catawrrtvw.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="7">rdbms/admin/catawrpdbvw.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="8">rdbms/admin/catawrvw.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="9">rdbms/admin/dbmssqlu.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="10">rdbms/admin/dbmssqlt.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="11">rdbms/admin/prvsash.plb</file>
    <file mode="apply,rollback,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="12">rdbms/admin/prvsspmi.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="13">rdbms/admin/dbmsgwm.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="14">rdbms/admin/catost.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="15">rdbms/admin/dbmsrman.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="16">rdbms/admin/catadv.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="17">rdbms/admin/cataivw.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="18">rdbms/admin/prvtemxi.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="19">rdbms/admin/prvtemx_dbhome.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="20">rdbms/admin/prvtsrv.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="21">rdbms/admin/prvtash.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="22">rdbms/admin/prvtsqlt.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="23">rdbms/admin/prvtaii.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="24">rdbms/admin/prvthdm.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="25">rdbms/admin/prvtsqlu.plb</file>
    <file mode="apply,rollback,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="26">rdbms/admin/prvtspmi.plb</file>
    <file mode="apply,rollback,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="27">rdbms/admin/prvtspm.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="28">rdbms/admin/prvtstai.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="29">rdbms/admin/prvtsqlqi.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="30">rdbms/admin/prvtrmns.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="CATPROC" sequence="31">rdbms/admin/execsmb.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="ORDIM" sequence="32">md/admin/catmdloc.sql</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="ORDIM" sequence="33">md/admin/prvtcs.plb</file>
    <file mode="apply,rollback" new="no" estimatedTime="5" component="XDB" sequence="34">rdbms/admin/prvtgwm.sql</file>
</sqlFiles>

<!-- Release Update Data for this patch -->
<ruData>
    <ru version="19.3.0.0.0" ruType="RU" buildTimestamp="190410122720" buildDescription="Release_Update">
      <file>rdbms/admin/backport_files/bug_29032457_apply.sql</file>
      <file>rdbms/admin/backport_files/bug_29032457_rollback.sql</file>
      <file>rdbms/admin/catcdbviews.sql</file>
      <file>rdbms/admin/cdcore_mig.sql</file>
      <file>rdbms/admin/catappcontainer.sql</file>
      <file>rdbms/admin/catawrrtvw.sql</file>
      <file>rdbms/admin/catawrpdbvw.sql</file>
      <file>rdbms/admin/catawrvw.sql</file>
      <file>rdbms/admin/dbmssqlu.sql</file>
      <file>rdbms/admin/dbmssqlt.sql</file>
      <file>rdbms/admin/prvsash.plb</file>
      <file>rdbms/admin/prvsspmi.plb</file>
      <file>rdbms/admin/dbmsgwm.sql</file>
      <file>rdbms/admin/catost.sql</file>
      <file>rdbms/admin/dbmsrman.sql</file>
      <file>rdbms/admin/catadv.sql</file>
      <file>rdbms/admin/cataivw.sql</file>
      <file>rdbms/admin/prvtemxi.plb</file>
      <file>rdbms/admin/prvtemx_dbhome.plb</file>
      <file>rdbms/admin/prvtsrv.plb</file>
      <file>rdbms/admin/prvtash.plb</file>
      <file>rdbms/admin/prvtsqlt.plb</file>
      <file>rdbms/admin/prvtaii.plb</file>
      <file>rdbms/admin/prvthdm.plb</file>
      <file>rdbms/admin/prvtsqlu.plb</file>
      <file>rdbms/admin/prvtspmi.plb</file>
      <file>rdbms/admin/prvtspm.plb</file>
      <file>rdbms/admin/prvtstai.plb</file>
      <file>rdbms/admin/prvtsqlqi.plb</file>
      <file>rdbms/admin/prvtrmns.plb</file>
      <file>rdbms/admin/execsmb.sql</file>
      <file>md/admin/catmdloc.sql</file>
      <file>md/admin/prvtcs.plb</file>
      <file>rdbms/admin/prvtgwm.sql</file>
    </ru>
  </ruData>

 <!-- Contents of rollback_files for this patch -->
<rollbackFilesData>
    <rollbackVersion>19.1.0.0.0</rollbackVersion>
    <rollbackVersion>19.3.0.0.0-RU-Release_Update-190410122720</rollbackVersion>
</rollbackFilesData>

</sqlPatch>
[oracle@srv6 22862832]$ cat 29517242_apply.sql
SET SERVEROUTPUT ON

REM Apply script for patch 29517242/22862832
DEFINE logfiledir = &1

COLUMN sqlpatch_logfile NEW_VALUE full_logfile

SELECT '&logfiledir' || '29517242_apply_' ||
       CASE WHEN (sys_context('userenv', 'cdb_name') IS NULL)
            THEN name
            ELSE name || '_' || replace(sys_context('userenv', 'con_name'), '$')
             END || TO_CHAR(systimestamp, '_YYYYMonDD_HH24_MI_SS',
             'NLS_DATE_LANGUAGE=AMERICAN') ||'.log' AS sqlpatch_logfile
  FROM v$database;

SPOOL &full_logfile

SET PAGESIZE 0
SELECT 'Starting apply for patch 29517242/22862832 on ' ||
       SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

BEGIN
    dbms_sqlpatch.patch_initialize(p_patch_id      => 29517242,
                                   p_patch_uid     => 22862832,
                                   p_logfile       => '&full_logfile');
END;
/


COLUMN install_file NEW_VALUE sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/backport_files/bug_29032457_apply.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/backport_files/bug_29032457_apply.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catcdbviews.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catcdbviews.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/cdcore_mig.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/cdcore_mig.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catappcontainer.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catappcontainer.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrrtvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrrtvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrpdbvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrpdbvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmssqlu.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmssqlu.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmssqlt.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmssqlt.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvsash.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvsash.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvsspmi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvsspmi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmsgwm.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmsgwm.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catost.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catost.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmsrman.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmsrman.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catadv.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catadv.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/cataivw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/cataivw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtemxi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtemxi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtemx_dbhome.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtemx_dbhome.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsrv.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsrv.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtash.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtash.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlt.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlt.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtaii.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtaii.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvthdm.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvthdm.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlu.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlu.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtspmi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtspmi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtspm.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtspm.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtstai.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtstai.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlqi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlqi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtrmns.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtrmns.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/execsmb.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/execsmb.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtgwm.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtgwm.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling md/admin/catmdloc.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('md/admin/catmdloc.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling md/admin/prvtcs.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('md/admin/prvtcs.plb') AS install_file
  FROM dual;
@@&sql_script



BEGIN dbms_sqlpatch.patch_finalize; END;
/

SET PAGESIZE 0
SELECT 'Finished apply for patch 29517242/22862832 on' ||
       SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

SPOOL off

[oracle@srv6 22862832]$ cat 29517242_rollback.sql
SET SERVEROUTPUT ON

REM Apply script for patch 29517242/22862832
DEFINE logfiledir = &1

COLUMN sqlpatch_logfile NEW_VALUE full_logfile

SELECT '&logfiledir' || '29517242_rollback_' ||
       CASE WHEN (sys_context('userenv', 'cdb_name') IS NULL)
            THEN name
            ELSE name || '_' || replace(sys_context('userenv', 'con_name'), '$')
             END || TO_CHAR(systimestamp, '_YYYYMonDD_HH24_MI_SS',
             'NLS_DATE_LANGUAGE=AMERICAN') ||'.log' AS sqlpatch_logfile
  FROM v$database;

SPOOL &full_logfile

SET PAGESIZE 0
SELECT 'Starting rollback for patch 29517242/22862832 on ' ||
       SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

BEGIN
    dbms_sqlpatch.patch_initialize(p_patch_id      => 29517242,
                                   p_patch_uid     => 22862832,
                                   p_logfile       => '&full_logfile');
END;
/


COLUMN install_file NEW_VALUE sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/backport_files/bug_29032457_rollback.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/backport_files/bug_29032457_rollback.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catcdbviews.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catcdbviews.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/cdcore_mig.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/cdcore_mig.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catappcontainer.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catappcontainer.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrrtvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrrtvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrpdbvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrpdbvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catawrvw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catawrvw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmssqlu.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmssqlu.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmssqlt.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmssqlt.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvsash.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvsash.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvsspmi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvsspmi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmsgwm.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmsgwm.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catost.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catost.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/dbmsrman.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/dbmsrman.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/catadv.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/catadv.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/cataivw.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/cataivw.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtemxi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtemxi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtemx_dbhome.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtemx_dbhome.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsrv.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsrv.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtash.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtash.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlt.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlt.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtaii.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtaii.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvthdm.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvthdm.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlu.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlu.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtspmi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtspmi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtspm.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtspm.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtstai.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtstai.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtsqlqi.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtsqlqi.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtrmns.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtrmns.plb') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/execsmb.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/execsmb.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling rdbms/admin/prvtgwm.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('rdbms/admin/prvtgwm.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling md/admin/catmdloc.sql on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('md/admin/catmdloc.sql') AS install_file
  FROM dual;
@@&sql_script


ALTER SESSION SET CURRENT_SCHEMA = SYS;

SET PAGESIZE 0
SELECT 'Calling md/admin/prvtcs.plb on ' || SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

PROMPT IGNORABLE ERRORS: NONE

SELECT dbms_sqlpatch.install_file('md/admin/prvtcs.plb') AS install_file
  FROM dual;
@@&sql_script



BEGIN dbms_sqlpatch.patch_finalize; END;
/

SET PAGESIZE 0
SELECT 'Finished rollback for patch 29517242/22862832 on' ||
       SYSTIMESTAMP FROM dual;
SET PAGESIZE 10

SPOOL off

[oracle@srv6 22862832]$

[oracle@srv6 22862832]$ ll
total 3792
-rw-r--r--. 1 oracle oinstall   10512 Apr 18  2019 29517242_apply.sql
-rw-r--r--. 1 oracle oinstall   10527 Apr 18  2019 29517242_rollback.sql
-rw-r--r--. 1 oracle oinstall    6998 Apr 18  2019 29517242.xml
-rw-r-----. 1 oracle oinstall 3842294 Aug  2  2021 29517242.zip
drwxr-xr-x. 4 oracle oinstall    4096 Apr 18  2019 rollback_files

[oracle@srv6 22862832]$ cd rollback_files/
[oracle@srv6 rollback_files]$ ll
total 8
drwxr-xr-x. 4 oracle oinstall 4096 Apr 18  2019 19.1.0.0.0
drwxr-xr-x. 4 oracle oinstall 4096 Apr 18  2019 19.3.0.0.0-RU-Release_Update-190410122720
[oracle@srv6 rollback_files]$


Monday 7 February 2022

Impdp Example using remap_schema and remap_tablespace parameter


Impdp using remap_schema and remap_tablespace parameter 


  • Keywords:

remap_schema: source_schema:destination_schema  and remap_tablespace =source_tablespace:target_tablespace

  • Scenario : 

We have done impdp into different schema level to different user without specifying  remap_tablespace parameter  and face error below 

  • Error:

ORA-39083: Object type TABLE:"TCMANAGER"."ASSIGNME_1773957227_113294481" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist


  • Scenario without tablespace

oracle@PLM12:~/expdp> impdp \"sys/sys@PLM12 as sysdba\" directory=expdp  dumpfile=expdp-manager2021-09-28_14-36-23.dmp remap_schema=TCPRODMANAGER:TCMANAGER logfile=impdp_tcmanager.log parallel=2


Import: Release 12.1.0.2.0 - Production on Tue Sep 28 14:45:43 2021


Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.


Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

Master table "SYS"."SYS_IMPORT_FULL_01" successfully loaded/unloaded

Starting "SYS"."SYS_IMPORT_FULL_01":  "sys/********@PLM12 AS SYSDBA" directory=expdp dumpfile=expdp-manager2021-09-28_14-36-23.dmp remap_schema=TCPRODMANAGER:TCMANAGER logfile=impdp_tcmanager.log parallel=2

Processing object type SCHEMA_EXPORT/USER

ORA-31684: Object type USER:"TCMANAGER" already exists

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT

Processing object type SCHEMA_EXPORT/ROLE_GRANT

Processing object type SCHEMA_EXPORT/DEFAULT_ROLE

Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA

ORA-39083: Object type TABLESPACE_QUOTA:"TCMANAGER" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist

Failing sql is:

DECLARE   TEMP_COUNT NUMBER;   SQLSTR VARCHAR2(200); BEGIN   SQLSTR := 'ALTER USER "TCMANAGER" QUOTA 209715200 ON "TCPRODMANAGER"';  EXECUTE IMMEDIATE SQLSTR;EXCEPTION   WHEN OTHERS THEN    IF SQLCODE = -30041 THEN       SQLSTR := 'SELECT COUNT(*) FROM USER_TABLESPACES               WHERE TABLESPACE_NAME = ''TCPRODMANAGER'' AND CONTENTS = ''TEMPORARY''';

Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

ORA-39083: Object type TABLE:"TCMANAGER"."ASSIGNME_1773957227_113294481" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist

Failing sql is:

CREATE TABLE "TCMANAGER"."ASSIGNME_1773957227_113294481" ("ESESSION_ID" NVARCHAR2(128) NOT NULL ENABLE, "POOL_ID" NVARCHAR2(64) NOT NULL ENABLE, "SERVER" NVARCHAR2(128) NOT NULL ENABLE) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 214748

ORA-39083: Object type TABLE:"TCMANAGER"."POOLS_1773957227_1093459165" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist

Failing sql is:

CREATE TABLE "TCMANAGER"."POOLS_1773957227_1093459165" ("POOL_ID" NVARCHAR2(64) NOT NULL ENABLE, "MANAGER_URI" NVARCHAR2(255) NOT NULL ENABLE, "MUX_URI" NVARCHAR2(255) NOT NULL ENABLE, "NUM_ASSIGNED" NUMBER(10,0) NOT NULL ENABLE, "USE_PERC" FLOAT(126) NOT NULL ENABLE, "LAST_LOGIN" NUMBER(19,0), "CPU_LOAD" NUMBER(10,0)) SEGMENT CREATION IMMED

ORA-39083: Object type TABLE:"TCMANAGER"."CLUSTERC_1773957227_385776844" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist

Failing sql is:

CREATE TABLE "TCMANAGER"."CLUSTERC_1773957227_385776844" ("ID" NUMBER(10,0) NOT NULL ENABLE, "PROCESS_MAX_PER_USER" NUMBER(10,0) NOT NULL ENABLE, "HARD_TIMEOUT_EDIT" NUMBER(10,0) NOT NULL ENABLE, "QUERY_TIMEOUT" NUMBER(10,0) NOT NULL ENABLE, "HARD_TIMEOUT_READ" NUMBER(10,0) NOT NULL ENABLE, "SOFT_TIMEOUT_EDIT" NUMBER(10,0) NOT NULL ENABLE,

ORA-39083: Object type TABLE:"TCMANAGER"."POOLCON_1773957227_2046161837" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist

Failing sql is:

CREATE TABLE "TCMANAGER"."POOLCON_1773957227_2046161837" ("POOL_ID" NVARCHAR2(64) NOT NULL ENABLE, "HOSTNAME" NVARCHAR2(64) NOT NULL ENABLE, "MANAGER_CREATION_TIME" NUMBER(19,0), "ENABLE_CPU_LIMIT_CHECK" NUMBER(10,0) NOT NULL ENABLE, "LOGINS_PER_MINUTE" NUMBER(10,0) NOT NULL ENABLE, "MAX_CPU_LOAD" NUMBER(10,0) NOT NULL ENABLE, "JMX_HTTP_AD

ORA-39083: Object type TABLE:"TCMANAGER"."SERVERS_1773957227_1743233923" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist

Failing sql is:

CREATE TABLE "TCMANAGER"."SERVERS_1773957227_1743233923" ("SERVER" NVARCHAR2(128) NOT NULL ENABLE, "POOL_ID" NVARCHAR2(64) NOT NULL ENABLE, "CREATION_TIME" NUMBER(19,0) NOT NULL ENABLE, "PIPE" NVARCHAR2(128) NOT NULL ENABLE, "SYS_LOG" NVARCHAR2(512) NOT NULL ENABLE, "PID" NUMBER(10,0) NOT NULL ENABLE, "ASGN" NVARCHAR2(512)) SEGMENT CREATIO

ORA-39083: Object type TABLE:"TCMANAGER"."USERSASS_1773957227_428210791" failed to create with error:

ORA-00959: tablespace 'TCPRODMANAGER' does not exist

Failing sql is:

CREATE TABLE "TCMANAGER"."USERSASS_1773957227_428210791" ("ESESSION_ID" NVARCHAR2(128) NOT NULL ENABLE, "USER_ID" NVARCHAR2(64) NOT NULL ENABLE) SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "TCPRODMANAGER"

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

ORA-39112: Dependent object type CONSTRAINT:"TCMANAGER"."SYS_C0035955" skipped, base object type TABLE:"TCMANAGER"."ASSIGNME_1773957227_113294481" creation failed

ORA-39112: Dependent object type CONSTRAINT:"TCMANAGER"."SYS_C0035956" skipped, base object type TABLE:"TCMANAGER"."POOLS_1773957227_1093459165" creation failed

ORA-39112: Dependent object type CONSTRAINT:"TCMANAGER"."SYS_C0035952" skipped, base object type TABLE:"TCMANAGER"."CLUSTERC_1773957227_385776844" creation failed

ORA-39112: Dependent object type CONSTRAINT:"TCMANAGER"."SYS_C0035954" skipped, base object type TABLE:"TCMANAGER"."POOLCON_1773957227_2046161837" creation failed

ORA-39112: Dependent object type CONSTRAINT:"TCMANAGER"."SYS_C0035953" skipped, base object type TABLE:"TCMANAGER"."SERVERS_1773957227_1743233923" creation failed

ORA-39112: Dependent object type CONSTRAINT:"TCMANAGER"."SYS_C0035951" skipped, base object type TABLE:"TCMANAGER"."USERSASS_1773957227_428210791" creation failed

Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Processing object type SCHEMA_EXPORT/STATISTICS/MARKER

Job "SYS"."SYS_IMPORT_FULL_01" completed with 14 error(s) at Tue Sep 28 14:45:55 2021 elapsed 0 00:00:12


  • Impdp with specifying remap_schema: source_schema:destination_schema  and remap_tablespace =source_tablespace:target_tablespace

oracle@PLM12:~/expdp> impdp \"sys/sys@PLM12 as sysdba\" directory=expdp  dumpfile=expdp-manager2021-09-28_14-36-23.dmp remap_schema=TCPRODMANAGER:TCMANAGER remap_tablespace=TCPRODMANAGER:TCMANAGER logfile=impdp_tcmanager.log parallel=2


Import: Release 12.1.0.2.0 - Production on Tue Sep 28 14:59:49 2021


Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.


Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

Master table "SYS"."SYS_IMPORT_FULL_01" successfully loaded/unloaded

Starting "SYS"."SYS_IMPORT_FULL_01":  "sys/********@PLM12 AS SYSDBA" directory=expdp dumpfile=expdp-manager2021-09-28_14-36-23.dmp remap_schema=TCPRODMANAGER:TCMANAGER remap_tablespace=TCPRODMANAGER:TCMANAGER logfile=impdp_tcmanager.log parallel=2

Processing object type SCHEMA_EXPORT/USER

ORA-31684: Object type USER:"TCMANAGER" already exists

Processing object type SCHEMA_EXPORT/SYSTEM_GRANT

Processing object type SCHEMA_EXPORT/ROLE_GRANT

Processing object type SCHEMA_EXPORT/DEFAULT_ROLE

Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA

Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA

Processing object type SCHEMA_EXPORT/TABLE/TABLE

Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA

. . imported "TCMANAGER"."SERVERS_1773957227_1743233923"  91.78 KB     238 rows

. . imported "TCMANAGER"."ASSIGNME_1773957227_113294481"  36.10 KB     172 rows

. . imported "TCMANAGER"."CLUSTERC_1773957227_385776844"  10.41 KB       1 rows

. . imported "TCMANAGER"."POOLCON_1773957227_2046161837"  8.562 KB       2 rows

. . imported "TCMANAGER"."POOLS_1773957227_1093459165"   8.195 KB       2 rows

. . imported "TCMANAGER"."USERSASS_1773957227_428210791"      0 KB       0 rows

Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT

Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Processing object type SCHEMA_EXPORT/STATISTICS/MARKER

Job "SYS"."SYS_IMPORT_FULL_01" completed with 1 error(s) at Tue Sep 28 14:59:54 2021 elapsed 0 00:00:04

oracle@PLM12:~/expdp>

Friday 4 February 2022

Multitenant Dataguard: Create multitenant database on priamry and standby database using FILE_NAME_CONVERT parameter

Recently we faced some issue on multitenant standby database . As we create pdb on primary same not reflected on standby database as it was conflicting  with destination directory and datafile as well. 

This scenario  about using FILE_NAME_CONVERT parameter we create multitenant  primary pluggable  database and same will reflect on standby database. 

PRIMARY Pluggable database :


SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO


  • NOTE : Create directory in pluggable standby database before creting pluggable database on primary database.

Example: 

[oracle@srv7 ~]$ mkdir -pv /u02/app/oracle/oradata/PRIMARY19C/pdb3

mkdir: created directory ‘/u02/app/oracle/oradata/PRIMARY19C/pdb3’

  • Create Pluggable database on primary database and mention file_name_convert parameter  below and provide directory of new pdb3 we have mentioned  /u02/app/oracle/oradata/PRIMARY19C/pdb3 and it will be created automatically. 

SQL> CREATE PLUGGABLE DATABASE pdb3 ADMIN USER pdb_adm IDENTIFIED BY Password1 FILE_NAME_CONVERT=('/u02/app/oracle/oradata/PRIMARY19C/pdbseed','/u02/app/oracle/oradata/PRIMARY19C/pdb3');


Pluggable database created.

SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO
         4 PDB3                           MOUNTED

  • Open primary pluggable database 
SQL> alter pluggable database all open;

Pluggable database altered.

SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO
         4 PDB3                           READ WRITE NO


SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO
         4 PDB3                           READ WRITE NO
         5 PDB4                           READ WRITE NO

  • Check the PDB service entry  

SQL> COLUMN name FORMAT A30
SQL> COLUMN PDB FORMAT a40
SQL>
SQL> set lines 200
SQL> SELECT name, pdb FROM   v$services ORDER BY name;

NAME                           PDB
------------------------------ ----------------------------------------
SYS$BACKGROUND                 CDB$ROOT
SYS$USERS                      CDB$ROOT
pdb                            PDB
pdb3                           PDB3
pdb4                           PDB4
primary19c                     CDB$ROOT
primary19cXDB                  CDB$ROOT

7 rows selected.


SQL> connect sys/sys@PDB3 as sysdba
Connected.
SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         4 PDB3                           READ WRITE NO
SQL>

  • Check datafile details below on primary multitenant database 
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/users01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/undotbs01.dbf
/u01/app/oracle/oradata/PRIMARY19C/pdb/users01.dbf

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf

  • Check Details on Multitenant standby database 
[oracle@srv7 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Feb 3 20:49:56 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 PDB                            MOUNTED
         4 PDB3                           MOUNTED
SQL>  sho pdbs

  • Check datafile details below on Standby multitenant database 
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/users01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/undotbs01.dbf
/u01/app/oracle/oradata/PRIMARY19C/pdb/users01.dbf

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf

14 rows selected.


Alter log file file standby database :


Recovery created pluggable database PDB3
2022-02-03T20:48:59.217732+05:30
Recovery copied files for tablespace SYSTEM
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
PDB3(4):WARNING: File being created with same name as in Primary
PDB3(4):Existing file may be overwritten
PDB3(4):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf
PDB3(4):Successfully added datafile 25 to media recovery
PDB3(4):Datafile #25: '/u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf'
2022-02-03T20:49:23.126371+05:30
Recovery copied files for tablespace SYSAUX
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
PDB3(4):WARNING: File being created with same name as in Primary
PDB3(4):Existing file may be overwritten
PDB3(4):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf
PDB3(4):Successfully added datafile 26 to media recovery
PDB3(4):Datafile #26: '/u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf'
2022-02-03T20:49:30.846103+05:30
Recovery copied files for tablespace UNDOTBS1
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
PDB3(4):WARNING: File being created with same name as in Primary
PDB3(4):Existing file may be overwritten
PDB3(4):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf
PDB3(4):Successfully added datafile 27 to media recovery
PDB3(4):Datafile #27: '/u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf'
2022-02-03T20:52:50.952812+05:30


  • Same example now we create   PDB4 multitenant database on primary DB
  • NOTE : Create directory in pluggable standby database before creting pluggable database on primary database.
[oracle@srv7 ~]$ mkdir -pv /u02/app/oracle/oradata/PRIMARY19C/pdb4
mkdir: created directory ‘/u02/app/oracle/oradata/PRIMARY19C/pdb4’
[oracle@srv7 ~]$ cd /u02/app/oracle/oradata/PRIMARY19C/pdb4
[oracle@srv7 pdb4]$ ll

Create Pluggable database on primary database and mention file_name_convert parameter  below and provide directory of new pdb4 we have mentioned  /u02/app/oracle/oradata/PRIMARY19C/pdb4 and it will be created automatically.

SQL> CREATE PLUGGABLE DATABASE pdb4 ADMIN USER pdb_adm IDENTIFIED BY Password1 FILE_NAME_CONVERT=('/u02/app/oracle/oradata/PRIMARY19C/pdbseed','/u02/app/oracle/oradata/PRIMARY19C/pdb4');

Pluggable database created.

SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB                            READ WRITE NO
         4 PDB3                           READ WRITE NO
         5 PDB4                           MOUNTED

  • Open primary pluggable database 
SQL> alter pluggable database PDB4 open;

Pluggable database altered.


SQL> sho parameter file_name_convert

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      /u02/app/oracle/oradata/PRIMAR
                                                 Y19C, /u02/app/oracle/oradata/
                                                 STANDBY19C
log_file_name_convert                string      /u02/app/oracle/oradata/PRIMAR
                                                 Y19C, /u02/app/oracle/oradata/
                                                 STANDBY19C
pdb_file_name_convert                string


SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/users01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/undotbs01.dbf
/u01/app/oracle/oradata/PRIMARY19C/pdb/users01.dbf

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb4/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb4/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb4/undotbs01.dbf

17 rows selected.

SQL>



STANDBY Pluggable database :

[oracle@srv7 ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Feb 3 20:49:56 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 PDB                            MOUNTED
         4 PDB3                           MOUNTED
SQL>  sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 PDB                            MOUNTED
         4 PDB3                           MOUNTED
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/users01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/undotbs01.dbf
/u01/app/oracle/oradata/PRIMARY19C/pdb/users01.dbf

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf

14 rows selected.

SQL> host

total 0
[oracle@srv7 pdb4]$ pwd
/u02/app/oracle/oradata/PRIMARY19C/pdb4
[oracle@srv7 pdb4]$ ll
total 716828
-rw-r----- 1 oracle oinstall 346038272 Feb  3 20:53 sysaux01.dbf
-rw-r----- 1 oracle oinstall 283123712 Feb  3 20:53 system01.dbf
-rw-r----- 1 oracle oinstall 104865792 Feb  3 20:53 undotbs01.dbf
[oracle@srv7 pdb4]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Feb 3 20:54:21 2022
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0

SQL> sho parameter file_name_convert

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      /u02/app/oracle/oradata/STANDB
                                                 Y19C, /u02/app/oracle/oradata/
                                                 PRIMARY19C
log_file_name_convert                string      /u02/app/oracle/oradata/STANDB
                                                 Y19C, /u02/app/oracle/oradata/
                                                 PRIMARY19C
pdb_file_name_convert                string

  • Check datafile details below on primary multitenant database 
SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/users01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb/undotbs01.dbf
/u01/app/oracle/oradata/PRIMARY19C/pdb/users01.dbf

NAME
--------------------------------------------------------------------------------
/u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb4/system01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb4/sysaux01.dbf
/u02/app/oracle/oradata/PRIMARY19C/pdb4/undotbs01.dbf

17 rows selected.

  • Check the multitenant database status on standby database 

SQL> @/home/oracle/d

NAME      INSTANCE_NAME    DB_UNIQUE_NAME                 OPEN_MODE            DATABASE_ROLE    CURRENT_SCN        FAILOVER_SCN
--------- ---------------- ------------------------------ -------------------- ---------------- ------------------ ----------------------------------------
PRIMARY1  standby19c       standby19c                     MOUNTED              PHYSICAL STANDBY NO                 0



SQL> sho pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 PDB                            MOUNTED
         4 PDB3                           MOUNTED
         5 PDB4                           MOUNTED
SQL>


Alter log file file standby database :


Recovery created pluggable database PDB3
2022-02-03T20:48:59.217732+05:30
Recovery copied files for tablespace SYSTEM
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
PDB3(4):WARNING: File being created with same name as in Primary
PDB3(4):Existing file may be overwritten
PDB3(4):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf
PDB3(4):Successfully added datafile 25 to media recovery
PDB3(4):Datafile #25: '/u02/app/oracle/oradata/PRIMARY19C/pdb3/system01.dbf'
2022-02-03T20:49:23.126371+05:30
Recovery copied files for tablespace SYSAUX
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
PDB3(4):WARNING: File being created with same name as in Primary
PDB3(4):Existing file may be overwritten
PDB3(4):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf
PDB3(4):Successfully added datafile 26 to media recovery
PDB3(4):Datafile #26: '/u02/app/oracle/oradata/PRIMARY19C/pdb3/sysaux01.dbf'
2022-02-03T20:49:30.846103+05:30
Recovery copied files for tablespace UNDOTBS1
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
PDB3(4):WARNING: File being created with same name as in Primary
PDB3(4):Existing file may be overwritten
PDB3(4):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf
PDB3(4):Successfully added datafile 27 to media recovery
PDB3(4):Datafile #27: '/u02/app/oracle/oradata/PRIMARY19C/pdb3/undotbs01.dbf'
2022-02-03T20:52:50.952812+05:30
Recovery created pluggable database PDB4
2022-02-03T20:53:08.208662+05:30
Recovery copied files for tablespace SYSTEM
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb4/system01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/system01.dbf
PDB4(5):WARNING: File being created with same name as in Primary
PDB4(5):Existing file may be overwritten
PDB4(5):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb4/system01.dbf
PDB4(5):Successfully added datafile 28 to media recovery
PDB4(5):Datafile #28: '/u02/app/oracle/oradata/PRIMARY19C/pdb4/system01.dbf'
2022-02-03T20:53:39.119703+05:30
Recovery copied files for tablespace SYSAUX
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb4/sysaux01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/sysaux01.dbf
PDB4(5):WARNING: File being created with same name as in Primary
PDB4(5):Existing file may be overwritten
PDB4(5):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb4/sysaux01.dbf
PDB4(5):Successfully added datafile 29 to media recovery
PDB4(5):Datafile #29: '/u02/app/oracle/oradata/PRIMARY19C/pdb4/sysaux01.dbf'
2022-02-03T20:53:45.814030+05:30
Recovery copied files for tablespace UNDOTBS1
Recovery successfully copied file /u02/app/oracle/oradata/PRIMARY19C/pdb4/undotbs01.dbf from /u02/app/oracle/oradata/PRIMARY19C/pdbseed/undotbs01.dbf
PDB4(5):WARNING: File being created with same name as in Primary
PDB4(5):Existing file may be overwritten
PDB4(5):Recovery created file /u02/app/oracle/oradata/PRIMARY19C/pdb4/undotbs01.dbf
PDB4(5):Successfully added datafile 30 to media recovery
PDB4(5):Datafile #30: '/u02/app/oracle/oradata/PRIMARY19C/pdb4/undotbs01.dbf'