This topic describes the process of provisioning a virtual EBS R12.1 instance.

Prerequisites

Snapshot Coordination

Changes applied to EBS and picked up only in certain dSource snapshots may make certain combinations of snapshots across the appsTier and dbTier incompatible. When provisioning, refreshing, or rewinding a virtual EBS instance, be sure the points in time you select for each dataset are compatible with each other.

Procedure

Provision the EBS dbTechStack

  1. Login to the Delphix Management application.

  2. Click Manage.
  3. Select Datasets.
  4. Select the dbTechStack dSource.

  5. Select the TimeFlow tab.

  6. Select a dSource snapshot.
    All snapshots will have staged configuration prepared by adpreclone.pl and any hook operations placed on the dSource.

  7. Click Provision.
    The Provision vFiles wizard will open.

  8. Select an Environment.
    This environment will host the virtual dbTechStack and be used to execute hook operations specified in a few steps.

  9. Select an Environment User.
    This user should be the oracle user-outlined in Preparing Target EBS R12.1 Environments for Provisioning.

  10. Enter a Mount Path for the virtual dbTechStack files.

  11. Enter the EBS-specific parameters for the virtual dbTechStack. A subset of these parameters are discussed in more detail below.

    1. Ensure that the Target Application Hostname and Target DB Server Node values are the short hostname, not the fully-qualified hostname.

    2. The Target APPS Password is the new apps password that is required to configure and manage the virtual appsTier. This password is encrypted when stored within the Delphix Engine and is available as an environment variable to the adcfgclone, adstrtal, and adstpall processes.

    3. The SYSTEM Password is required to configure the virtual appsTier with the new apps password. This password is not required if the Target Apps Password is same as source.

    4. The EBS AppsTier Timeout is required to terminate all the long-running appsTier processes which have exceeded the timeout value. This timeout value will be calculated in minutes.

    5. Enable the Cleanup Before Provision option if you want to permit the Delphix Engine to automatically cleanup stale EBS configuration during a refresh. This option is recommended, but only available if your Oracle Home is patched with Oracle Universal Installer (OUI) version 10.2 or above.

      1. With this option enabled, the Delphix Engine will inspect the target environment's oraInventory prior to refreshing this virtual dbTechStack. If any Oracle Homes are already registered within the specified Mount Path, the Delphix Engine will detach them from the inventory prior to running adcfgclone. These homes must be detached prior to running post-clone configuration, or else adcfgclone will fail, citing conflicting oraInventory entries as an issue.

      2. Without this option specified, Oracle Homes found to conflict with the specified Mount Path will be reported in an error instead of automatically detached. For refresh to succeed, conflicting Oracle Homes must be manually detached prior to refresh.

    6. Delphix recommends specifying an Instance Home Directory under the Mount Path so that instance-specific EBS files live on Delphix-provided storage. For example, if the provided Mount Path is /u01/oracle/VIS, then providing an Instance Home Directory of /u01/oracle/VIS/inst would allow EBS to generate virtual application INST_TOP in /u01/oracle/VIS/inst/apps/<CONTEXT_NAME> .

        1. If you are provisioning a single-node appsTier, this recommendation is OPTIONAL; putting instance-specific EBS files on Delphix-provided storage merely eases administration of the virtual EBS instance.

        2. If you are provisioning a multi-node appsTier, this recommendation is REQUIRED; the Delphix Engine's automation requires that all nodes in the appsTier have access to instance-specific files via Delphix-provided storage.

      g. If you are provisioning a multi-node appsTier, enter additional appsTier nodes

      Additional Nodes

      1. The Environment User for each node should be the applmgr user-outlined in Preparing Target EBS R12.1 Environments for Provisioning.

      2. Ensure that the Hostname value for each node is the short hostname, not the fully-qualified hostname.

      3. The Mount Path is not configurable for each node individually. The Mount

      Path provided for the primary environment will be used for each additional node.

  12. Click Next.

  13. Enter a vFiles Name.

  14. Select a Target Group for the vFiles.
    If necessary, click the Plus icon to add a new group.

  15. Select a Snapshot Policy for the vFiles.
    If necessary, click the Plus icon to create a new policy.

    EBS SnapSync Conflicts

    When Snapshot is running against the dbTechStack, database, or appsTier, the Delphix Engine also executes pre-clone logic to ensure the latest configuration is staged in the captured snapshots. Unfortunately, if multiple Snapshots are running against the same EBS instance concurrently, this pre-clone logic may fail and produce bad snapshots.

    To avoid SnapSync conflicts, spread out your SnapSync policies for an EBS instance by one hour or more.

  16. Click Next.

  17. Enter any custom hook operations that are needed to help correctly manage the virtual dbTechStack files.
    For more information about these hooks, when they are run, and how operations are written, see Customizing Unstructured Files with Hook Operations.
    The Configure Clone hook will be run after the adcfgclone.pl tool has both mounted and configured the dbTechStack.

  18. Click Next.
  19. Click Submit
    When provisioning starts, you can review the progress of the job in the Databases panel, or in the Job History panel of the Dashboard. When provisioning is complete, the dbTechStack vFiles will be included in the group you designated and listed in the Databases panel. If you select the dbTechStack vFiles in the Databases panel and click the Open icon, you can view its card, which contains information about the virtual files and its Data Management settings.
  20. See Monitoring EBS R12.1 dbTechStack Provisioning Progress for tips for monitoring the progress of dbTechStack provisioning.

Register the EBS dbTechStack

Register the freshly-provisioned dbTechStack with the Delphix Engine.

  1. Login to the Delphix Management application.

  2. Click Manage.
  3. Select Environments.
  4. Select the target dbTier environment.

  5. Click the Databases tab.

  6. Click the Plus icon next to Add Dataset Home.

  7. For your Dataset Home Type, select Oracle.

  8. Enter an Installation Home.
    This path should be the value of $ORACLE_HOME on your target dbTier; this path will live under the mount path specified when you provisioned the virtual dbTechStack.
    Commonly, this path looks like /u01/oracle/VIS/db/tech_st/11.1.0.

  9. Click the Confirm icon to save your dataset home.
    If necessary, scroll down the list of dataset homes to view and edit this dataset home.
  10. Refresh the target dbTier environment.
    Refreshing the environment will discover the EBS database listener and ensure that it is available for selection when provisioning the EBS database. 

    1. Click the Refresh button.

Provision the Oracle Database

  1. Provision the EBS database to the target dbTier environment by following the steps outlined in Provisioning an Oracle VDB.

    EBS SnapSync Conflicts

    When Snapshot is running against the dbTechStack, database, or appsTier, the Delphix Engine also executes pre-clone logic to ensure the latest configuration is staged in the captured snapshots. Unfortunately, if multiple Snapshots are running against the same EBS instance concurrently, this pre-clone logic may fail and produce bad snapshots.

    To avoid SnapSync conflicts, spread out your SnapSync policies for an EBS instance by one hour or more.

  2. Select the correct Installation Home.
    This selection should be the virtual dbTechStack you just added to the Delphix Engine.

  3. Enter the SID . This should be the same as what is provided to the virtual dbTechStack you just added to the Delphix Engine.

  4. Click  Advanced .

  5. Select the correct Oracle Node Listeners value. 
    This selection should be the listener corresponding to the virtual dbTechStack you just added to the Delphix Engine.

  6. Add the EBS R12.1 dbTier environment file as a  Custom Environment Variables   entry.  
    This file can be specified as an Environment File with Path Parameters of   $ORACLE_HOME/<CONTEXT_NAME>.env   .
    Replace   <CONTEXT_NAME>  with the virtual EBS instance's context name. The Delphix Engine will expand the   $ORACLE_HOME  variable at runtime.
    For more information, see   Customizing Oracle VDB Environment Variables   .

  7. Add a Run Bash Shell Command  operation to the Configure Clone hook to ensure that adcfgclone is run against the newly provisioned database. Typically, this operation will look similar to the script below.

    NOTE: Ensure the below environment variables will be set up correctly by the shell. If not, hardcode or generate the values below.
    CONTEXT_NAME=${ORACLE_SID}_$(hostname -s)
    APPS_PASSWD=<passwd>
       
    . ${ORACLE_HOME}/${CONTEXT_NAME}.env
       
    sqlplus "/ as sysdba" <<EOF
    @${ORACLE_HOME}/appsutil/install/${CONTEXT_NAME}/adupdlib.sql so
    EOF
       
    perl ${ORACLE_HOME}/appsutil/clone/bin/adcfgclone.pl dbconfig ${ORACLE_HOME}/appsutil/${CONTEXT_NAME}.xml <<EOF
    ${APPS_PASSWD}
    EOF
  8. If the EBS database is Oracle 12.1 or above, add a Run Bash Shell Command operation to the Configure Clone hook to ensure that sqlnet.ora or sqlnet_ifile.ora specify a value for SQLNET.ALLOWED_LOGON_VERSION_SERVER. Typically, this operation will look similar to the script below. This requirement is outlined in Cloning Oracle Applications Release 12 with Rapid Clone (Doc ID 406982.1) found at http://docs.oracle.com.

    NOTE: Ensure the below environment variables will be set up correctly by the shell. If not, hardcode or generate the values below.
    If you are using sqlnet_ifile.ora, change the script below to reflect sqlnet_ifile.ora
    CONTEXT_NAME=${ORACLE_SID}_$(hostname -s)
    TNS_ADMIN=${ORACLE_HOME}/network/admin/${CONTEXT_NAME}
    check_value=`sqlplus -s "/ as sysdba" <<EOF
    set head off termout off feedback off wrap off
    select DISPLAY_VALUE from v\\$parameter where NAME='sec_case_sensitive_logon'; 
    EOF`
        
    if [[ ${check_value} -eq "FALSE" ]]; then
        sed -i '$ i\SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8' ${TNS_ADMIN}/sqlnet.ora 
    elif [[ ${check_value} -eq "TRUE" ]]; then 
        sed -i '$ i\SQLNET.ALLOWED_LOGON_VERSION_SERVER = 10' ${TNS_ADMIN}/sqlnet.ora
    else
        echo "sec_case_sensitive_logon parameter is not set in the database. So the sqlnet.ora has not been updated."
    fi
  9.  Set up a Pre-Snapshot hook Run Bash Shell Command operation to run any pre-clone steps necessary and specific to the virtual EBS database. Normally, these steps will include running Oracle's adpreclone tool. Below is an example of a simple Run Bash Shell Command  hook operation:

    NOTE: Ensure the below environment variables will be set up correctly by the shell. If not, hardcode or generate the values below.
    CONTEXT_NAME=${ORACLE_SID}_$(hostname -s)
    SOURCE_APPS_PASSWD=<source apps passwd>
    TARGET_APPS_PASSWD=<new apps password>
    
    timeout=3600
    waittime=0
    . ${ORACLE_HOME}/${CONTEXT_NAME}.env
    
    testAppsPassword() {
        local passwordInQuestion=$1
        ERROR=`sqlplus "apps/${passwordInQuestion}" <<< "exit;"`
    
        grep ORA-01017 <<< ${ERROR} >/dev/null && return 1
        return 0
    
    }
    
    testAppsPassword ${SOURCE_APPS_PASSWD}
    testResult=$?
    
    if [[ ${testResult} == 0 ]]; then
        APPS_PASSWD=${SOURCE_APPS_PASSWD}
    else
        APPS_PASSWD=${TARGET_APPS_PASSWD}
    fi
    
    while [[ -f "${ORACLE_HOME}/.delphix_adpreclone.lck" || "$(ps -Ao args | grep "^${ORACLE_HOME}" | grep -v grep |  grep "adpreclone")" ]] ; do
    if [[ $waittime -gt $timeout  ]]; then
            echo "Another adpreclone process is still running from last 60 mins.Delphix cannot proceed until it is complete. Exiting Now."
            exit 1
        fi
        echo  " Another adpreclone process is running. waiting for the process to complete before starting adpreclone of the database...."
        (( timeout += 10 ))
        sleep 10
    done
    echo "No other adpreclone process is running on database, proceeding ...."
    ${ORACLE_HOME}/perl/bin/perl ${ORACLE_HOME}/appsutil/scripts/${CONTEXT_NAME}/adpreclone.pl database <<-EOF
    ${APPS_PASSWD}
    EOF

    Provision the EBS appsTier

Snapshot Selection

Snapshots of dsource or VDB selected for provision which have been taken prior to 5.2 will not support password change functionality. The Target APPS Password should be the same password as source.

  1. Login to the Delphix Management application.

  2. Click Manage.
  3. Select Datasets.
  4. Select the appsTier dSource .

  5. Select a dSource snapshot.
    All snapshots will have staged configuration prepared by adpreclone.pl and any hook operations placed on the dSource.

  6. Click Provision.
    The Provision vFiles wizard will open.

  7. Select an Environment. 
    This environment will host the virtual appsTier and be used to execute hook operations specified in a few steps. 
    If you are provisioning a multi-node appsTier, you will be able to specify additional environments to host the virtual appsTier in a few steps.

  8. Select an  Environment User.

  9. Enter a Mount Path for the virtual appsTier files.
    If you are provisioning a multi-node appsTier, this mount path will be used across all target environments.

  10. This user should be the applmgr user outlined in Preparing Target EBS R12.1 Environments for Provisioning.

  11. Enter the EBS-specific parameters for the virtual appsTier. A subset of these parameters is discussed in more detail below.

    1. Ensure that the Target Application Hostname and Target DB Server Node values are the short hostnames, not the fully-qualified hostnames.

    2. The Target APPS Password is the new apps password that is required to configure and manage the virtual appsTier.
      This password is encrypted when stored within the Delphix Engine and is available as an environment variable to the adcfgcloneadstrtal, and adstpall processes.

    3. The SYSTEM Password is required to configure the virtual appsTier with the new apps password. This password is not required if the Target Apps Password is same as source.
    4. Enable the Cleanup Before Provision option if you want to permit the Delphix Engine to automatically cleanup stale EBS configuration during a refresh. This option is recommended, but only available if your Oracle Home is patched with Oracle Universal Installer (OUI) version 10.2 or above.

      1. With this option enabled, the Delphix Engine will inspect the target environment's oraInventory prior to refreshing this virtual appsTier. If any Oracle Homes are already registered within the specified Mount Path, the Delphix Engine will detach them from the inventory prior to running adcfgclone. These homes must be detached prior to running post-clone configuration, or else adcfgclone will fail, citing conflicting oraInventory entries as an issue. The Delphix Engine will also remove any conflicting INST_TOP directories left on the environment. Non-conflicting INST_TOP directories will not be modified.

      2. Without this option enabled, Oracle Homes or INST_TOP directories found to conflict with the specified Mount Path or desired INST_TOP location will be reported in errors instead of being automatically cleaned up. For refresh to succeed, conflicting Oracle Homes must be manually detached and conflicting INST_TOP directories must be manually removed prior to refresh.

    5. Delphix recommends specifying an Instance Home Directory under the Mount Path so that instance-specific EBS files live on Delphix-provided storage.
      For example, if the provided Mount Path is /u01/oracle/VIS, then providing an Instance Home Directory of /u01/oracle/VIS/inst would allow EBS to generate virtual application INST_TOP in /u01/oracle/VIS/inst/apps/<CONTEXT_NAME> .

      1. If you are provisioning a single-node appsTier, this recommendation is OPTIONAL; putting instance-specific EBS files on Delphix-provided storage merely eases administration of the virtual EBS instance.

      2. If you are provisioning a multi-node appsTier, this recommendation is REQUIRED; the Delphix Engine's automation requires that all nodes in the appsTier have access to instance-specific files via Delphix-provided storage.

    6. The EBS AppsTier Timeout is required to terminate all the long-running appsTier processes which have exceeded the timeout value. This timeout will be calculated in minutes.
    7. The Java Color Scheme is an optional parameter and is used to change the JAVA color for provisioned Oracle EBS JAVA based form interface. Please choose any of the following colors (Swan, Blue, Khaki, Olive, Purple, Red, Teal, Titanium) to set Java Color Scheme for EBS appsTier java based forms interface.
    8. If you are provisioning a multi-node appsTier, enter additional appsTier nodes as Additional Nodes.
      1. The Environment User for each node should be the applmgr  user outlined in  Preparing Target EBS R12.1 Environments for Provisioning .
      2. Ensure that the Hostname value for each node is the short hostname, not the fully-qualified hostname.  
      3. The Mount Path is not configurable for each node individually. The Mount Path provided for the primary environment will be used for each additional node.
  12. Click Next.

  13. Enter a vFiles Name.

  14. Select a Target Group for the vFiles.
    If necessary, click the Plus icon to add a new group.

  15. Select a Snapshot Policy for the vFiles.
    If necessary, click the Plus icon to create a new policy.

    EBS SnapSync Conflicts

    When Snapshot is running against the dbTechStack, database, or appsTier, the Delphix Engine also executes pre-clone logic to ensure the latest configuration is staged in the captured snapshots. Unfortunately, if multiple Snapshots are running against the same EBS instance concurrently, this pre-clone logic may fail and produce bad snapshots.

    To avoid SnapSync conflicts, spread out your SnapSync policies for an EBS instance by one hour or more.

      

  16. Click Next.

  17. Enter any custom hook operations that are needed to help correctly manage the virtual appsTier.
    For more information about these hooks, when they are run, and how operations are written, see Customizing Unstructured Files with Hook Operations.
    The Configure Clone hook will be run after the adcfgclone.pl tool has both mounted and configured the appsTier.
    All hook operations run against the environment specified for provision. For a multi-node appsTier, hook operations never run against additional nodes specified.

  18. Click Next.
  19. Click Submit.

    dbTier Must Be Accessible During appsTier Provisioning

    Post-clone configuration will fail if the appsTier cannot connect to the database. Ensure that the target dbTier is accessible to the appsTier during the provisioning process. Ensure that both the database and the database listener are running.

    When provisioning starts, you can review progress of the job in the Databases panel, or in the Job History panel of the  Dashboard. When provisioning is complete, the appsTier vFiles will be included in the group you designated and listed in the Databases panel. If you select the appsTier vFiles in the Databases panel and click the Open icon, you can view its card, which contains information about the virtual files and its Data Management settings.

  20. For tips on monitoring the progress of appsTier provisioning , see Monitoring EBS R12.1 appsTier Provisioning Progress   .

Once all three EBS virtual datasets have been provisioned successfully, your virtual EBS instance should be running and accessible.

Related Links