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 BDA 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
Password file and filename parameter
The --password-filename parameter is an optional parameter that takes the name of a password file, a plain text file that specifies the username on the first line and the password on the second line. If this parameter is specified, all checks related to GA_USERNAME and GA_PASSWORD environment variables are ignored.
Best practice
bdacli
utility.Password file descriptor parameter
For UNIX environments, you can use the optional command line parameter --password-file-descriptor to pass the username and password to the bdacli
utility. If the parameter is specified, all checks related to GA_USERNAME and GA_PASSWORD environment variables are ignored.
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>
Where:
-type
is the type of database on which you want BDA to perform the operation. You can use a shortcut to replace this option by typing the database type and command directly (for example,bdacli_mssql.pl --add-instance
). You can use the DB type as a shortcut to replace thetype
option. For example:bdacli_mssql.pl --add-instance bdacli_oracle.pl --remove-database bdacli_sybase.pl --apply-patch bdacli_db2.pl --add-instance
<COMMAND>
is a set of parameters to be specified. For one command these are host or instance names, and for another a user or cluster name. For example commands, see Provisioning operations.[COMMAND OPTIONS]
are the variable parameters that must accompany a specific command. For example command options, see Provisioning operations.<TEMPLATE>
is the template that is used to pass parameters relevant to that template. For more information, see Working with templates.
The following table describes the command line exit values that are used and their meaning.
Command Line Exit Value | Meaning |
---|---|
| Success |
| Unknown error |
2 | Failed to connect to manager |
3 | Invalid job type specified |
4 | XML input validation error |
5 | One or more targets specified was invalid |
6 | Provisioning command job failed |
20 | The specified template does not exist |
21 | Invalid version specified |
22 | Invalid DB name specified |
23 | Invalid param value specified |
50 | Authentication failed: incorrect username/password |
51 | Authorization failed: insufficient capability to perform operation |
Working with templates
You can specify a template in one of two ways:
Template FQN (for example,
/
oracle_instance_provision_template
)Note
Use the BDA Fully-Qualified Name (FQN) for the template name.
- Template ID
Setting and overriding template parameters
Template parameters can be configured using the command line, an XML file, or the --params
parameter.
Setting and overriding template 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 and overriding template parameters in an .xml file
When you have several parameters, you want to set or override in the template, 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=/app/clarity/cmdutils/TEST/templates/params.xml/oracle_instance_provision_template
Setting and overriding template parameters using the --params parameter
Another option to set or override parameters in a template is to 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
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
).
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>
</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.
Type | Operation | Description | Syntax |
---|---|---|---|
Oracle | Create Database | Create an Oracle database. | bdacli_oracle.pl --create-database --host-name=rh6-si-384.domain.com --database-name=ONE --version=12.1.0.1 /qa-template |
Oracle | Remove Database | Remove an Oracle database. | bdacli_oracle.pl --remove-database --host-name=rh6-si-384.domain.com --database-name=ONE /qa-template |
Oracle | Upgrade Database | Upgrade an Oracle database earlier than version 11.2. Note: Oracle databases earlier than version 11.2 do not require specifying an Oracle Home. | bdacli_oracle.pl --upgrade-database --host-name=rh6-si-384.domain.com --database-name=ONE --version=11.1.01 /qa-template |
Oracle | Upgrade Database | Upgrade an Oracle database earlier equal or later than version 11.2. Note: Oracle databases equal or later than version 11.2 require specifying an Oracle Home. | bdacli_oracle.pl --upgrade-database --host-name=rh6-si-384.domain.com --database-name=ONE --oracle-home=/app/oracle --version=12.1.0.1 /qa-template |
Oracle | Create Oracle Home | Create an Oracle Home. | bdacli_oracle.pl --create-home --host-name=rh6-si-384.domain.com --version=11.2.0.3 --display-name=OH1 /qa-template |
Oracle | Remove Oracle Home | Remove an Oracle Home. | bdacli_oracle.pl |
Oracle | Create Cluster | Create an Oracle cluster. | bdacli_oracle.pl |
Oracle | Remove Cluster | Remove an Oracle cluster. | bdacli_oracle.pl |
Oracle | Upgrade Cluster | Upgrade an Oracle cluster. | bdacli_oracle.pl |
Oracle | Add Node to the Cluster | Add Node to an Oracle cluster. | bdacli_oracle.pl |
Oracle | Remove Node from the Cluster | Remove Node from an Oracle cluster. | bdacli_oracle.pl |
Oracle | Create Database | Create an Oracle cluster. | bdacli_oracle.pl |
Oracle | Remove Database | Remove an Oracle cluster. | bdacli_oracle.pl |
Oracle | Upgrade Database | Upgrade an Oracle cluster. | bdacli_oracle.pl |
Oracle | Add Instance | Add a single instance Oracle database. | bdacli_oracle.pl |
Oracle | Remove Instance | Remove a single instance Oracle database. | bdacli_oracle.pl |
Oracle | Apply/Rollback Patch | Apply or rollback an Oracle patch. | bdacli_oracle.pl |
Oracle RAC One Node | Add Candidate Server | Add a candidate server. | bdacli_oracle.pl |
Oracle RAC One Node | Remove Candidate Server | Remove a candidate server. | bdacli_oracle.pl |
Oracle Pluggable Database | Create Pluggable Database | Create a Pluggable Database. | bdacli_oracle.pl |
Oracle Pluggable Database | Remove Pluggable Database | Remove a Pluggable Database. | bdacli_oracle.pl |
Oracle Pluggable Database | Move Pluggable Database | Move a Pluggable Database. | bdacli_oracle.pl |
Oracle Pluggable Database | Unplug Pluggable Database | Unplug a Pluggable Database. | bdacli_oracle.pl |
SQL Server | Add Instance | Add an instance of SQL Server. | bdacli_mssql.pl |
SQL Server | Remove Instance | Remove an instance of SQL Server. | bdacli_mssql.pl |
SQL Server | Create Database | Create an SQL Server database. | bdacli_mssql.pl |
SQL Server | Remove Database | Remove an SQL Server database. | bdacli_mssql.pl |
SQL Server | Add Clustered Instance | Add a clustered SQL Server instance. | bdacli_mssql.pl |
SQL Server | Remove Clustered Instance | Remove a clustered SQL Server instance. | bdacli_mssql.pl |
SQL Server | Create Clustered Database | Create a clustered SQL Server database. | bdacli_mssql.pl |
SQL Server | Remove Clustered Database | Remove a clustered SQL Server database. | bdacli_mssql.pl |
SQL Server | Add/Remove Node to/from Clustered Instance | Add or remove a node to or from a clustered SQL Server instance. | bdacli_mssql.pl |
SQL Server | Apply/Rollback Patch: Single Instance | Apply or rollback a patch of a single SQL Server instance. | bdacli_mssql.pl |
SQL Server | Apply/Rollback Patch: | Apply or rollback a patch of a clustered SQL Server 2005 instance. | GA_AD_PASSWORD=”PASSWORD” |
SQL Server | Apply/Rollback Patch: | Apply or rollback a patch of two clustered SQL Server 2005 instances in the same cluster. | GA_AD_PASSWORD=”PASSWORD” |
SQL Server | Apply/Rollback Patch: | Apply or rollback a patch of a clustered instance of SQL Server 2008 or later. | GA_AD_PASSWORD=”PASSWORD” Note: The --use-allinstances parameter is applicable for version 8.9.01 and later. |
SQL Server | Apply/Rollback Patch: | Apply or rollback a patch of a clustered instance of SQL Server 2008 or later on all nodes in the cluster. | GA_AD_PASSWORD=”PASSWORD” Note : The --use-allinstances parameter is applicable for version 8.9.01 and later. |
SQL Server AlwaysOn | Add Availability Group | Add an Availability Group. | bdacli_mssql.pl |
SQL Server AlwaysOn | Remove Availability Group | Remove an Availability Group. | bdacli_mssql.pl |
SQL Server AlwaysOn | Add DB to Availability Group | Add a database to an Availability Group. | bdacli_mssql.pl |
SQL Server AlwaysOn | Remove DB from Availability Group | Remove a database from an Availability Group. | bdacli_mssql.pl |
SQL Server AlwaysOn | Add Replica to Availability Group | Add a Replica to an Availability Group. | bdacli_mssql.pl |
SQL Server AlwaysOn | Remove Replica from Availability Group | Remove a Replica from an Availability Group. | bdacli_mssql.pl |
SQL Server AlwaysOn | Fail Over Availability Group | Fail over an Availability Group. | bdacli_mssql.pl |
Sybase | Add Instance | Add a Sybase instance. | bdacli_sybase.pl |
Sybase | Remove Instance | Remove a Sybase instance. | export GA_DB_PASSWORD=”PASSWORD” |
Sybase | Add Instance to the VCS cluster | Add a Sybase instance to the VCS cluster. Note: For dataservers only. | bdacli_sybase.pl |
Sybase | Create Home | Create a Sybase Dataserver or Replication Server Home. | bdacli_sybase.pl |
Sybase | Remove Home | Remove a Sybase Dataserver or Replication Server Home. | bdacli_sybase.pl |
Sybase | Apply Patch: Single-target mode | Apply a Sybase patch in single-target mode using a global SA password. | export GA_DB_PASSWORD="PASSWORD1" |
Sybase | Apply Patch: | Apply a Sybase patch in single-target mode using a different username/password per instance. | export GA_DB_PASSWORD="PASSWORD1" |
Sybase | Apply Patch: | Apply a Sybase patch in a single-target mode where /root/creds.xml has the specified syntax. | <credentials> |
Sybase | Apply Patch: | Apply a Sybase patch in multi-target mode. | bdacli_sybase.pl |
Sybase | Apply Patch: | Apply a Sybase patch in multi-target mode where /root/sybase_targets.xml has the specified syntax. | <targets> |
DB2 | Add Instance | Add a DB2 instance. | bdacli_db2.pl Note: For Fixpacks, ensure that you specify the Fixpack name in the --version parameter. For example:--version |
DB2 | Create Database | Create a DB2 database | bdacli_db2.pl Note: For DB2, you must specify the display name, and not the database name, in the syntax for creating the database using bdacli .For Fixpacks, ensure that you specify the Fixpack name in the --version parameter. For example:--version |
DB2 | Remove Instance | Remove a DB2 instance. | bdacli_db2.pl |
DB2 | Apply/Rollback Patch | Apply or rollback a DB2 patch. | bdacli_db2.pl |
1
For SQL Server, the value for the --version
parameter might not always match the file name generated by the mediaprep utility. For example:
- The file name generated after preparing SQL Server 2012 RTM media is sql_2012_x64_enterprise.zip. However, the
--version
parameter must also have the RTM appended to the filename (sql_2012_x64_enterprise_rtm
). - However, the file name generated after preparing rep SQL Server 2014 slipstreamed with Service Pack 1 is sql_2014_x64_enterprise_4100.zip. In this case the value for the
--version
parameter issql_2014_x64_enterprise_4100
.
List operations
In addition to enabling provisioning operations, the bdacli
utility provides the ability to generate lists that help you perform pre- or post-provisioning operations, as described in the following examples.
List available patches for a specific database type
The bdacli_{type}.pl command enables you to list patches for a specific database type.
# 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
List unapproved objects that are under Pending Approval
The bdacli_unapproved.pl
tool (formerly named list_unapproved.pl
in version 8.8 of BDA) enables you to list unapproved objects that are under Pending Approval in BDA.
# bdacli_unapproved.pl --manager=http://myhost.mydomain.com:8087 --sessid=myname --node=mynode.com
The following command options can be used in the syntax for the bdacli_unapproved.pl
tool:
--manager
: Specify BDA manager URL to connect to. Can be set globally via GA_MANAGER.--sessid
: Session ID (optional). Used locally in the client for logging purposes. Default value is auto-generated.--client-version
: BDA cmdutils version information.--server-version
: BDA mtd version information. Requires valid server credentials.--type
: The specific object type. Options are node, oradb, sqlinst, ds, rs, db2_instance, db2_database, orapdb, avgrp, app, or ohome.--help
: Command line tool help message.
Using bdacli_approve.pl
after determining objects that are Pending Approval
You can subsequently approve any objects into BDA that are listed when running the bdacli_unapproved.pl
command using the bdacli_approve.pl
command line tool:
bdacli_approve.pl --type-database <options> --host-name=node --instance-name=<name> --database-name=<name> [--database-name=<name> ... | --display-name=<name>]
bdacli_approve.pl
tool:--manager
: Specify BDA manager URL to connect to. Can be set globally via GA_MANAGER--sessid
: Session ID (optional). Used locally in the client for logging purposes. Default value is auto-generated.--client-version
: BDA cmdutils version information--server-version
: BDA mtd version information. Requires valid server credentials.--db2-database
: Approve a DB2 database.--host-name=hostname
: The host on which the database is located--instance-name=name
: The name of the instance displayed in BDA--database-name=name
: The name of the database--display-name=name
: (optional) BDA name to approve. The default is the database name.--help
: Command line tool help message
For example, the following script approves the DB2 instance db2inst2 on the specified manager, which is also reflected in the BDA GUI:
bdacli_approve.pl --db2-instance --manager http://rh5-ma-126.gridapp-dev.com:8087 --host-name=rh6-si-369.gridapp-dev.com --instance-name=db2inst2 --sessionid 2016_aug_29
Comments
Log in or register to comment.