Skip to main content
Delphix

Provision an Oracle VDB via the Delphix Command Line Implementing Multiple Configure Clone Hooks (KBA1852)

 

Oracle VDB Provisioning using the Delphix CLI

This article details the process and commands required to provision an Oracle VDB via the Delphix Command Line Interface (CLI) and implement multiple hook scripts, in this case via the Configure Clone Hook.

Prerequisites

  • An Oracle dSource.
  • Access to the Delphix Command Line Interface as the Delphix Administrator user or another user capable of provisioning VDB's.
  • In this specific case the version of the Delphix Virtualisation Engine used is 5.2.3.0. (CLI commands can differ across releases).
  • A target host that will be used to run the Oracle VDB that has been provisioned.
  • Bash Shell script hooks that are to perform some function against the VDB to be provisioned or the some other function against the target host.

To perform a Delphix CLI based provision of the Oracle VDB

 

The following process and CLI commands will allow you to perform a provision and set multiple hooks.

  • Set the new containers name and group
Delphix5261 database provision *> set container.name=vdbhook2
Delphix5261 database provision *> set container.group=Targets 
  • Set the new VDB's configuration profile
Delphix5261 database provision *> set sourceConfig.type=OracleSIConfig 
Delphix5261 database provision *> set sourceConfig.databaseName=vdbhook2
Delphix5261 database provision *> set sourceConfig.instance.instanceName=vdbhook2
Delphix5261 database provision *> set sourceConfig.instance.instanceNumber=1
Delphix5261 database provision *> set sourceConfig.repository=OEL7SI2/'/u01/app/oracle/product/12.1.0/dbhome_1'
Delphix5261 database provision *> set sourceConfig.uniqueName=vdbhook2
  • Set where the provision is to be performed from, the dSource and the timeflow details
Delphix5261 database provision *> set timeflowPointParameters.container=oel7si1_db121
Delphix5261 database provision *> set timeflowPointParameters.location=LATEST_SNAPSHOT 
  • Set the VDB source parameters including the hooks
Delphix5261 database provision *> set source.allowAutoVDBRestartOnHostReboot=false 
Delphix5261 database provision *> set source.mountBase=/mnt/provision
Delphix5261 database provision *> set source.operations.type=VirtualSourceOperations
Delphix5261 database provision *> set source.name=vdbhook1
Delphix5261 database provision *> set source.type=OracleVirtualSource
  • Using edit add the individual hooks
Delphix5261 database provision *> edit source.operations.configureClone
Delphix5261 database provision source.operations.configureClone *> add
Delphix5261 database provision source.operations.configureClone 0 *> set type=RunBashOnSourceOperation 
Delphix5261 database provision source.operations.configureClone 0 *> set name=hook1
Delphix5261 database provision source.operations.configureClone 0 *> set command=ls
Delphix5261 database provision source.operations.configureClone 0 *> back
Delphix5261 database provision source.operations.configureClone *> ls
Properties
    0:
        type: RunBashOnSourceOperation (*)
        name: hook1 (*)
        command: ls (*)

Use the "add" command to add an element to this array.

Delphix5261 database provision source.operations.configureClone *> add
Delphix5261 database provision source.operations.configureClone 1 *> set name=hook2
Delphix5261 database provision source.operations.configureClone 1 *> set type=RunBashOnSourceOperation
Delphix5261 database provision source.operations.configureClone 1 *> set command=date
Delphix5261 database provision source.operations.configureClone 1 *> back
Delphix5261 database provision source.operations.configureClone *> ls
Properties
    0:
        type: RunBashOnSourceOperation (*)
        name: hook1 (*)
        command: ls (*)
    1:
        type: RunBashOnSourceOperation (*)
        name: hook2 (*)
        command: date (*)

Use the "add" command to add an element to this array.

Delphix5261 database provision source.operations.configureClone *> add
Delphix5261 database provision source.operations.configureClone 2 *> set name=hook3
Delphix5261 database provision source.operations.configureClone 2 *> set type=RunBashOnSourceOperation
Delphix5261 database provision source.operations.configureClone 2 *> set command=env
Delphix5261 database provision source.operations.configureClone 2 *> back
Delphix5261 database provision source.operations.configureClone *> ls
Properties
    0:
        type: RunBashOnSourceOperation (*)
        name: hook1 (*)
        command: ls (*)
    1:
        type: RunBashOnSourceOperation (*)
        name: hook2 (*)
        command: date (*)
    2:
        type: RunBashOnSourceOperation (*)
        name: hook3 (*)
        command: env (*)
  • Using back move up to the provision settings once more
Delphix5261 database provision source.operations.configureClone *> back
  • Confirm everything is in place for the provision
Delphix5261 database provision *> ls
Properties
    type: OracleProvisionParameters (*)
    container:
        type: OracleDatabaseContainer
        name: vdbhook2 (*)
        description: (unset)
        diagnoseNoLoggingFaults: true
        group: Targets (*)
        performanceMode: DISABLED
        preProvisioningEnabled: false
        sourcingPolicy: (unset)
    credential: (unset)
    masked: (unset)
    maskingJob: (unset)
    newDBID: (unset)
    openResetlogs: (unset)
    physicalStandby: (unset)
    source:
        type: OracleVirtualSource (*)
        name: vdbhook1 (*)
        allowAutoVDBRestartOnHostReboot: false (*)
        archivelogMode: (unset)
        config: (unset)
        configParams: (unset)
        configTemplate: (unset)
        customEnvVars: (unset)
        fileMappingRules: (unset)
        mountBase: /mnt/provision (*)
        nodeListeners: (unset)
        operations:
            type: VirtualSourceOperations (*)
            configureClone:
                0:
                    type: RunBashOnSourceOperation (*)
                    name: hook1 (*)
                    command: ls (*)
                1:
                    type: RunBashOnSourceOperation (*)
                    name: hook2 (*)
                    command: date (*)
                2:
                    type: RunBashOnSourceOperation (*)
                    name: hook3 (*)
                    command: env (*)
            postRefresh: (unset)
            postRollback: (unset)
            postSnapshot: (unset)
            postStart: (unset)
            postStop: (unset)
            preRefresh: (unset)
            preRollback: (unset)
            preSnapshot: (unset)
            preStart: (unset)
            preStop: (unset)
        redoLogGroups: (unset)
        redoLogSizeInMB: (unset)
    sourceConfig:
        type: OracleSIConfig (*)
        databaseName: vdbhook2 (*)
        environmentUser: (unset)
        instance:
            type: OracleInstance (*)
            instanceName: vdbhook2 (*)
            instanceNumber: 1 (*)
        linkingEnabled: true
        nonSysCredentials: (unset)
        nonSysUser: (unset)
        repository: OEL7SI2/'/u01/app/oracle/product/12.1.0/dbhome_1' (*)
        services: (unset)
        uniqueName: vdbhook2 (*)
    timeflowPointParameters:
        type: TimeflowPointSemantic
        container: oel7si1_db121 (*)
        location: LATEST_SNAPSHOT (*)
    username: (unset)

Operations
defaults

  • Using commit kick off the provision process.
Delphix5261 database provision *> commit
    vdbhook2
    Dispatched job JOB-335
    DB_PROVISION job started for "Targets/vdbhook2".
    Starting provision of the virtual database "vdbhook1".
    Creating new TimeFlow.
    Generating recovery scripts.
    Exporting storage.
    Mounting filesystems for the virtual database instance "1".
    Mounting read-only archive log filesystem for the virtual database instance "1".
    Recovering Oracle database.
    Opening the virtual database "vdbhook1".
    Creating control file.
    Recovering Oracle database with created control file.
    Starting incomplete recovery.
    Creating Oracle online logs.
    Processing startup init file.
    Configuring initialization and server parameter files.
    Mounting virtual database instance.
    Opening Oracle database.
    Creating tempfiles.
    Renaming readonly datafiles.
    Enabling Oracle instances.
    Registering listeners.
    Oracle recovery was successful.
    Unmounting read-only archive log filesystem for the virtual database instance "1".
    The virtual database "vdbhook1" was successfully provisioned.
    Running user-specified "Configure Clone" operations.
    DB_PROVISION job for "Targets/vdbhook2" completed successfully.

Related Articles

The following articles may provide more information or related information to this article: