Performing provisioning operations using bdacli


Command line utilities support using templates to perform provisioning operations on all the databases supported by BMC Database Automation (BDA). The bdacli utility uses command-based syntax that specifies what operations will be performed on the database by referencing a template for those operations.

Before you begin

Ensure that you have downloaded the command line utilities and have configured your environment to use them. For more information, see Setting-up-the-CLI-environment.

Manager address and user credentials

To successfully initiate a job, provide a manager address and login/password using environment variables or command line parameters. You will most likely use environment variables because of the likelihood that you will use one manager with its own BMC Database Automation credentials. Note, however, that command line parameters take a precedence over environment variables.

The following environment variables are used:

  • GA_MANAGER (manager address)
  • GA_USERNAME (user)
  • GA_PASSWORD (password)

Alternatively, the following command line parameters can be used:

  • --manager
  • --username
  • --password
Success

Best practice

  • Specify the password in a plain text file that has read-only permissions and is owned by a user responsible for running scripts using the bdacli utility.
  • Alternatively, on UNIX, use a file descriptor to pass the username and password to the bdacli utility. The file descriptor can be used while using the mtd_client in shell scripts. The following example shows how to use FIFO to pass the file descriptor to bdacli:

    mkfifo fifo

    exec 4<>fifo; (echo sysadmin; echo pass) >&4; ./bdacli.pl --password-file-descriptor 4 ....

    rm fifo

Using the utility

To use the tool, type the following command:

bdacli.pl -type <mssql|oracle|sybase|db2> <COMMAND> [COMMAND OPTIONS] <TEMPLATE>

You can use the DB type as a shortcut to replace the type option. For example:

bdacli_mssql.pl --add-instance
bdacli_oracle.pl --remove-database
bdacli_sybase.pl --apply-patch
bdacli_db2.pl --add-instance

The following table describes the command line arguments that are used in the syntax for the bdacli tool.

Working with templates

You can specify a template in one of two ways:

  • Template FQN (for example, /oracle_instance_provision_template)
  • Template ID

Overriding template parameters

To override existing parameters in a template, set the --params parameter in the bdacli utility. For example, the following existing template:

ora_home_location=/app/oracle

can be overridden using the utility, as follows:

# bdacli_oracle.pl --create-database --host-name=rh6-si-384.domain.com --database-name=ONE --version=12.1.0.1 --params="ora_home_location=/opt/oracle" /oracle_instance_provision_template

Warning

Note

To override more than one argument within the --params argument to bdacli.pl, separate each with a comma (for example, params=”name=value,another_name=another-value).

Setting wizard parameters

Wizard parameters for a template can be configured using the command line or an XML file.

Setting wizard parameters using the command line

Using the command line to set parameters is especially effective for operations that can be easily expressed in a wizard. For example the following syntax is used for Oracle single instance provisioning:

bdacli_oracle.pl --create-database --host-name=rh6-si-384.domain.com --database-name=ONE --version=12.1.0.1 --params="display_name=MYDB" /oracle_instance_provision_template

Setting wizard parameters in an .xml file

When you have several parameters you want to set, you can type them into an XML file, as shown in the following example:

<parameters> <display_name>MYDB</display_name> <ora_home_location>/opt/oracle</ora_home_location> </parameters>

You then reference the saved file in your command line syntax, as shown in the following example:

bdacli_oracle.pl --create-database --host-name=rh6-si-384.domain.com --database-name=ONE --version=12.1.0.1 --params-file=./params.xml /oracle_instance_provision_template

 

Using custom fields and parameters to set and substitute values

You can define any number of custom fields, set field values as those custom fields and then, using the --params argument, override those values.

For example, set this custom field in your template:

       <field>
            <name>ASM_DISK_GROUP_NAME</name>
            <value/>
            <required>true</required>
            <editable>true</editable>
            <hidden>false</hidden>
     </field>    
    

Then, use it as a replacement custom field. For example:   

        <!--
             Name: Disk Group Name
             Description: The name of the diskgroup.
             Required: This is a required field if specifying diskgroups.
        -->
         <name>{ASM_DISK_GROUP_NAME}</name>

Next, specify a new value using the params option. For example:

--params=”ASM_DISK_GROUP_NAME=LAB”

Provisioning operations

To locate a specific operation to perform using the bdacli command line tool, perform any of the following actions:

  • Select an option from the Type list to filter the table by database type.
  • Select an option from the Operation list to filter the table by a specific provisioning operation that you want to perform for the selected database type, such as Create Database.
  • Type a character string in the Description boxes to filter the list of operations (for example, typing cre in the Description field displays all operations with Create in the description.  
  • Click any column heading to sort this table or change sort direction.

 Back to top

List operations

In addition to enabling provisioning operations, the bdacli utility provides the ability to list the available patches for a specific database type, as shown in the following example:

Information
Example
# bdacli_oracle.pl --patch-list /LINUX/myhost.mydomain.com/MYDATABASE
/PSU-Apr2012-11.2.0.3-Linux-x86_64
/PSU-Jul2012-11.2.0.3-Linux-x86_64

 Back to top

 

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Database Automation 8.7