This topic describes the process of provisioning a virtual EBS R12.2 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.

Provision the EBS dbTechStack

  1. Login to the Delphix Management application.

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

  5. Click 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 step 16.

  9. Select an Environment User.
    This user should be the oracle user-outlined in Preparing Target EBS R12.2 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 DB Hostname value is the short hostname, not the fully-qualified hostname.

    2. The APPS Password is required to configure virtual dbTechStack.
      This password is encrypted when stored within the Delphix Engine and is available as an environment variable to the adcfgclone process.

    3. Enable the Disable RAC option if you want to permit the Delphix Engine to automatically disable the RAC option for the binaries when applicable. 
      This option is necessary if provisioning from a dSource with RAC dbTier because the binaries are relinked with the rac_on option even after running adcfgclone. If the source binaries already have the RAC option disabled (also the case for SI dbTier), the Delphix Engine ignores this option.
    4. Enable the Cleanup Before Provision option if you want to permit the Delphix Engine to automatically clean up 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. If they are not detached, adcfgclone will fail, citing conflicting oraInventory entries as an issue.

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

  12. Click Next.

  13. Enter a vFiles Name.

  14. Select a Target Group for the vFiles.
    If necessary, click the green 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.

    Snapshot 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.
    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 Datasets 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 Datasets panel. If you select the dbTechStack vFiles in the Datasets panel and click the Configuration tab, you can view information about the virtual files and its Data Management settings.

For tips on monitoring the progress of dbTechStack provisioning, see Monitoring EBS R12.2 dbTechStack Provisioning Progress.

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. Select Oracle as your Dataset Home Type.

  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/11.2.0.

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

    1. Click the Refresh button in the bottom right-hand corner of the environment card.

Provision the Oracle Database

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


    Snapshot 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 should be the virtual dbTechStack you just added to the Delphix Engine.

  3. Enter the SID same as what's provided to the virtual dbTechStack you just added to the Delphix Engine.

  4. Click Advanced.
  5. Select the correct Oracle Node Listeners value.
    This should be the listener corresponding to the virtual dbTechStack you just added to the Delphix Engine.
  6. Add the EBS R12.2 dbTier environment file as a Custom Environment Variables entry
  7. 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.

  8. 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=$(cat /var/tmp/${ORACLE_SID}_source_apps_file.txt)
         
    . ${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
  9. 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 E-Business Suite Release 12.2 with Rapid Clone (Doc ID 1383621.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

    Step #8 to add the second Configure Clone hook...
    hook text line which reads "${TNS_ADMIN}=${ORACLE_HOME}/network/admin/${CONTEXT_NAME}" is syntactically incorrect
    should read "TNS_ADMIN=${ORACLE_HOME}/network/admin/${CONTEXT_NAME}" instead

  10. Set up a Pre-Snapshot hook Run Bash Shell Command operation to run any pre-clone steps necessary and specific to your 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=$(cat /var/tmp/${ORACLE_SID}_source_apps_file.txt)
    TARGET_APPS_PASSWD=<new apps password of the target DB node>
        
    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

    appsFile.txt

    appsFile.txt will be created automatically inside the DATA_DIRECTORY of the target database host once the DBTechStack provisioning is completed

Provision the EBS appsTier

Snapshot Selection

The Target APPS Password should be the same password as source.

  1. Login to the Delphix Management application using Admin credentials.

  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. This environment will also run the WebLogic Admin server (Web Administration service) for the virtual appsTier. 
    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.
    This user should be the applmgr user-outlined in Preparing Target EBS R12.2 Environments for Provisioning.

  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. Enter the  EBS-specific parameters for the virtual appsTier. 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 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 the same as the source.
    4. The Weblogic AdminServer Password is the new WebLogic password required to configure the virtual appsTier. A password change will be performed if this password does not match that of the source EBS instance. This password is encrypted when stored within the Delphix Engine and is available as an environment variable to the adcfgclone, adstrtal, and adstpall processes.

    5. The EBS AppsTier Timeout is required to terminate all the long-running appsTier processes which have exceeded the timeout value when stopping the applications as part of a refresh. This timeout will be calculated in minutes. For example, if set to 30, then we run adstopall at the start of the refresh, and if after 30 minutes the application has not stopped, then the processes will be terminated to allow the refresh to continue.
    6. 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.
    7. 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. If they are not detached, 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 that conflict with the specified Mount Path or desired INST_TOP location will be reported in errors instead of automatically cleaned up. For refresh to succeed, you must manually detach conflicting Oracle Homes and manually remove conflicting INST_TOP directories prior to refresh.

    8. Enable the Start Services After Provision option if you want to permit the Delphix Engine to automatically start the services for EBS appsTier after provisioning.
      1. With this option enabled, the Delphix Engine will start all the services of EBS appsTier after provisioning.
      2. Without this option enabled, the Delphix Engine will NOT start the services of EBS appsTier after provisioning. This will allow customers to prevent EBS services from being started at the conclusion of provisioning or refreshing. That way, customers can perform post-clone processing automation using a configure-clone hook without having to stop services first.
    9. 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 would allow EBS to generate virtual application INST_TOP in /u01/oracle/VIS/fs1/inst/apps/<CONTEXT_NAME > and /u01/oracle/VIS/fs2/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 the 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.

    10. 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.2 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.
  11. Click Next.

  12. Enter a vFiles Name.

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

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


    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.


    Click Next.

  15. Enter any custom hook operations that are needed to help correctly manage the virtual appsTier. 
    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.

  16. Click Next.
  17. Click Submit.

    dbTier Must Be Accessible During appsTier Provisioning

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

    When provisioning starts, you can review the progress of the job in the Datasets 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 Datasets panel. If you select the appsTier vFiles in the Datasets panel and click the Configuration tab, you can view information about the virtual files and its Data Management settings.

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

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

Related Topics