---
name: db2-saas-provision
title: Provision a service instance
description: To deploy an IBM&reg; Db2&reg; as a Service service, you need to create a IBM Db2 SaaS service instance.
last-updated: 2026-05-12
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/db2-saas?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

{:external: target="_blank" .external}
{:shortdesc: .shortdesc}
{:codeblock: .codeblock}
{:screen: .screen}
{:tip: .tip}
{:important: .important}
{:note: .note}
{:deprecated: .deprecated}
{:pre: .pre}
{:video: .video}

# Provision a service instance
{: #provisioning}

To deploy an IBM&reg; Db2&reg; as a Service service, you need to create a IBM Db2 SaaS service instance.
{: shortdesc}

You can provision a deployment by visiting the service's catalog page or by specifying the service ID to the command line, or to the API. The deployment type is determined by the service ID, which you must specify when you create a IBM Db2 SaaS deployment by using the command line or API.

| Deployment Type | Catalog Page | Service ID | Plan IDs |
|-----------------|--------------|------------|----------|
| IBM Db2 SaaS |[Link](https://cloud.ibm.com/catalog/services/db2){: external} | dashdb-for-transactions | `Performance`|

The Performance plan supports both Db2 version 12 and version 11.5. Version 12 is recommended for new deployments. Version 11.5 is available for customers requiring application compatibility.
{: note}

## Using the catalog
{: #prov_catalog}

When you create the deployment from the catalog, you need to specify the following parameters.

1. **Service name** - The name can be any string and is the name that is used on the web and in the command line to identify the new deployment.

1. **Region** - The region in which the deployment resides. Available regions include:
   - `us-south` (Dallas)
   - `us-east` (Washington DC)
   - `eu-de` (Frankfurt)
   - `eu-gb` (London)
   - `eu-es` (Madrid)
   - `ca-tor` (Toronto)
   - `br-sao` (Sao Paulo)
   - `au-syd` (Sydney)
   - `jp-tok` (Tokyo)

1. **Backup Location** - The location of the deployment's backups. Users can choose **Cross Regional** or **Regional** backups. Cross Regional backups can be stored across multiple regions in one zone. Whereas, Regional backups can be stored in one region only.

1. **Resource group** - If you are organizing your services into resource groups, you can specify the resource group in this field. Otherwise, you can leave it at default.

1. **KMS instance** and **disk encryption key** - If you use Key Protect, an instance and key can be selected to encrypt the deployment's disk. If you do not use your own key, the deployment automatically creates and manages its own disk encryption key using the default key provided by the service.

1. **Backup Encryption Key** - If you use Backup Encryption Key, you can provide your own KMS instance and key in order to encrypt your backups. This is an optional parameter, and if not provided the default KMS instance and key will be used.

1. **CPU allocation** - Choose dedicated compute resources for your deployment. With dedicated cores, your resource group is given a single-tenant host with a guaranteed minimum reserve of cpu shares. Your deployments are then allocated the number of CPUs you specify. This defaults to the `Performance plan` if not specified in the provisioning request by using the API or CLI.

2. **Endpoints** - You can configure the types Service Endpoints on your deployment. The default is that connections to your deployment can be made from the public network.

3. **High Availability** - whether the services should be Highly Available

4. **Oracle compatibility** - whether the service instance should have Oracle compatibility enabled

5. **EU cloud supported** - When you select Frankfurt (eu-de) as the deployment region, the **EU cloud supported** option is displayed. Select **YES** if you require your data to be stored and processed under EU policy standards. This option is only available in the Frankfurt (eu-de) region.
![EU cloud supported toggle](images/eu_cloud_supported_toggle.png){: caption="EU cloud supported toggle in the provisioning catalog." caption-side="bottom"}

6. **Db2 Version** - Choose the Db2 version for your deployment.

   When provisioning through the CLI, specify the version by using the `-p` flag:
```
   -p '{"version": "12"}'
```

   When provisioning through the API, include the version in the `parameters` object of the request body:
```
   "parameters": {"version": "12"}
```

   Valid values are `12` or `11.5`. If omitted, the default is `12`.

7. **Instance Profile** -  Choose machine type resource for your deployment based on your CPU and memory requirements. This option is only available with the Performance plan.

After selecting the appropriate settings, click **Create** to start the provisioning process.

## Using the command line
{: #prov_cl}

The IBM Cloud CLI tool is what you use to communicate with IBM Cloud from your terminal or command line. For more information, see [Download and install IBM Cloud CLI](https://cloud.ibm.com/docs/cli?topic=cli-getting-started&format=markdown).

To create a Cloud Databases deployment, you use the CLI to request a service instance with the service ID of the database (or messaging queue) that you want to provision.

Run the following command template:
```
ibmcloud resource service-instance-create <service-name> dashdb-for-transactions Performance <region> --service-endpoints <SERVICE_ENDPOINTS_TYPE> -p '{"version": "<VERSION>"}'
```
{: codeblock}

More general information about this command is available in the [CLI reference for resource groups](https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_commands_resource&format=markdown).

When the command is run, the database deployment begins. The database takes some time to deploy. You can check on its progress on your IBM Cloud dashboard or you can run the following command:
```
ibmcloud resource service-instance-create <service-name>
```
{: codeblock}

This command reports the current state of the service instance.

## Additional flags and parameters
{: #prov_flags_parms}

The `--service-endpoints` flag allows you to specify which types of [service endpoints](https://cloud.ibm.com/docs/db2-saas?topic=db2-saas-endpts&format=markdown) to include in your deployment. Its default is that connections to your deployment can be made from the public network. Possible values are `public`, `private`, `public-and-private`. If the flag is omitted, the default is a `public` endpoint.

The following example command specifies a service endpoint:
```
ibmcloud resource service-instance-create <service-name> --service-endpoints <endpoint-type>
```
{: codeblock}

The `service-instance-create` command supports a `-p` flag, which allows [additional parameters](#prov_add_parms) to be passed to the provisioning process. The parameters are in JSON format. One such parameter value is the Cloud Resource Name (CRN), which uniquely identifies a resource in the cloud. All parameter names and values are passed as strings.

## Provisioning through the Resource Controller API
{: #prov_rc_api}

You can provision new deployments by using the Resource Controller API. However, in order to use the Resource Controller API, you need some additional preparation.

1. [Obtain an IAM token from your API token](https://cloud.ibm.com/docs/db2-saas?topic=db2-saas-iam&format=markdown#iam_accesstoken).

1. You must know the ID of the resource group to which you would like to deploy. This information is available through the [IBM Cloud CLI](https://cloud.ibm.com/docs/cli?format=markdown). You can find a list of resource groups with `ibmcloud resource groups` and the ID of a resource group with `ibmcloud resource group`.
1. You must know the region to which you would like to deploy.

After you have all of the information, the following create request is a `POST` to the `https://resource-controller.cloud.ibm.com/v2/resource_instances` endpoint:
```
curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "Performance",
    "parameters": {"version": "12"}
  }'
```
{: codeblock}

The parameters `name`, `target`, `resource_group`, and `resource_plan_id` are all required. If needed, you can send [additional parameters](#prov_add_parms) in the request body.

More information on the Resource Controller API is found in its [API Reference](https://cloud.ibm.com/apidocs/resource-controller/resource-controller).


## List of additional parameters
{: #prov_add_parms}

- `backup_id` - A CRN of a backup resource to restore from. The backup must have been created by a database deployment with the same service ID. The backup is loaded after provisioning and the new deployment starts up that uses that data. A backup CRN is in the format `crn:v1:<...>:backup:<uuid>`. If omitted, the database is provisioned empty.
- `backup_location` - The location of the deployment's backups.
- `disk_encryption_key_crn` - The CRN of a [KMS key](https://cloud.ibm.com/docs/db2-saas?topic=db2-saas-key-management-services&format=markdown), which is then used for disk encryption. A KMS CRN is in the format `crn:v1:<...>:key:<id>`.
- `backup_encryption_key_crn` - The CRN of a [KMS key](https://cloud.ibm.com/docs/db2-saas?topic=db2-saas-key-management-services&format=markdown), which is then used for backup encryption. A KMS CRN is in the format `crn:v1:<...>:key:<id>`.
   To use a key for your backups, you must first enable the [service-to-service delegation]().
- `members_cpu_allocation_count` - Enables and allocates the number of specified dedicated cores to your deployment. For example, to use two dedicated cores per member, use `"members_cpu_allocation_count":"2"`. If omitted, the default value "Shared CPU" uses compute resources on shared hosts.
- `service-endpoints` - Selects the types [Service Endpoints](https://cloud.ibm.com/docs/db2-saas?topic=db2-saas-endpts&format=markdown) supported on your deployment. Options are `public`, `private`, or `public-and-private`. If omitted, the default is `public`. Note that in the CLI, `service-endpoints` is a flag, and not a parameter.
- `timezone` - The timezone that your database and the underlying operating system should use. Any timezone identifier accepted by Linux will be valid. Example: `"timezone": "America/Toronto"`. If omitted, the default is UTC. For a complete list of valid timezone identifiers, refer to [Wikipedia's tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). *(Performance plan only)*
- `custom_db`, `custom_dbm`, `custom_registry` - This allows you to set custom Db2 DB, DBM, and registry settings. The value should be a JSON array. *(Performance plan only)*
  Example:
```
  "custom_registry": { "DB2_SELECTIVITY": "ALL", "DB2_ANTIJOIN": "EXTEND" }
```
  The [Db2 REST API](https://cloud.ibm.com/apidocs/db2-on-cloud/db2-on-cloud-v4#introduction) can be used to query a full list of changeable Db2 parameters and update Db2 settings on an existing instance.

`backup_encryption_key_crn` is NOT applicable to performance plans. For performance plans, backup will be encrypted with the same key as disk_encryption_key_crn. If disk_encryption_key_crn is not specified, it'll use the default provider managed key.
{: note}