Updated on 2024-07-12 GMT+08:00

Creating a DB Instance

Function

This API is used to create a GaussDB instance. GaussDB supports distributed instances. Before calling this API:

This API will be unavailable on March 31, 2025. You are advised to switch workloads to the new API (Creating a DB Instance) before then.

URI

POST https://{Endpoint}/opengauss/v3/{project_id}/instances
Table 1 Parameter description

Parameter

Mandatory

Description

project_id

Yes

Project ID of a tenant in a region.

For details about how to obtain the project ID, see Obtaining a Project ID.

Request Parameters

Table 2 Request Parameters

Parameter

Mandatory

Type

Description

name

Yes

String

DB instance name.

Instances of the same type can have same names under the same tenant.

The name must consist of 4 to 64 characters and start with a letter. It can contain only letters (case-sensitive), digits, hyphens (-), and underscores (_).

datastore

Yes

Object

Database information.

For details, see Table 3.

ha

Yes

Object

Instance deployment model. For details, see Table 4.

configuration_id

No

String

Parameter template ID. If this parameter is not specified, the default parameter template is used.

port

No

String

Database port.

password

Yes

String

Database password.

The password cannot be empty and must contain 8 to 32 characters, containing at least three of the following: uppercase letters, lowercase letters, digits, and special characters ~!@#%^*-_=+?,

Enter a strong password to improve security, preventing security risks such as brute force cracking.

backup_strategy

No

Object

Backup policy.

For details, see Table 5.

enterprise_project_id

No

String

Enterprise project ID. This parameter is suitable only for enterprise tenants.

flavor_ref

Yes

String

Specification code. The value cannot be empty. To obtain its value, see the spec_code field in Querying Instance Specifications.

volume

Yes

Object

Volume information.

For details, see Table 6.

region

Yes

String

Region ID.

The value cannot be empty. For details about how to obtain this parameter value, see Regions and Endpoints.

availability_zone

Yes

String

AZ ID.

The value cannot be empty. You can deploy GaussDB in the same AZ or across three different AZs, and use commas (,) to separate AZs. For example:

  • To deploy a DB instance in the same AZ, enter three same AZ IDs.
  • To deploy a DB instance across three different AZs, enter three different AZ IDs.

The value cannot be empty. For details about how to obtain this parameter value, see Regions and Endpoints.

vpc_id

Yes

String

VPC ID. To obtain this parameter value, use either of the following methods:

  • Method 1: Log in to VPC console and view the VPC ID in the VPC details page.
  • Method 2: See the section "Querying VPCs" in the Virtual Private Cloud API Reference.

subnet_id

Yes

String

Network ID of the subnet. To obtain this parameter value, use either of the following methods:

  • Method 1: Log in to VPC console and click the target subnet on the Subnets page. You can view the network ID on the displayed page.
  • Method 2: See section "Querying Subnets" in the Virtual Private Cloud API Reference.

security_group_id

Yes

String

Security group which the instance is associated with. To obtain this parameter value, use either of the following methods: If you do not need to specify a security group, contact customer service.

  • Method 1: Log in to VPC console. Choose Access Control > Security Groups in the navigation pane on the left. On the displayed page, click the target security group. You can view the security group ID on the displayed page.
  • Method 2: Query the security group through the VPC API. For details, see Querying Security Groups.
  • Method 2: See the section "Querying Security Groups" in the Virtual Private Cloud API Reference.

charge_info

No

Object

Billing type, which is only pay-per-use.

For details, see Table 7.

time_zone

No

String

UTC time zone.

  • If this parameter is not specified, GaussDB uses UTC in the International website by default.
  • If this parameter is specified, the value ranges from UTC-12:00 to UTC+12:00 at the full hour. For example, the parameter can be UTC+08:00 rather than UTC+08:30.
Table 3 datastore field data structure description

Parameter

Mandatory

Type

Description

type

Yes

String

DB engine. Value:

GaussDB.

version

No

String

DB engine version. If this parameter is not specified, the latest version is used by default.

The following versions are supported:

  • 1.1
  • 1.2
  • 1.3
  • 1.4
  • 2.3
Table 4 ha field data structure description

Parameter

Mandatory

Type

Description

mode

Yes

String

Distributed deployment model. The value enterprise (Enterprise Edition) and is case-insensitive.

replication_mode

Yes

String

Replication mode for the standby node.

Value:

sync

NOTE:

sync indicates synchronous replication.

consistency

Yes

String

Transaction consistency type. The value can be strong or eventual and is case-insensitive.

Table 5 backup_strategy field data structure description

Parameter

Mandatory

Type

Description

start_time

Yes

String

Backup time window. The creation of an automated backup will be triggered during the backup time window.

The value cannot be empty. It must be a valid value in the "hh:mm-HH:MM" format. The current time is in the UTC format.

  • The HH value must be 1 greater than the hh value.
  • The values of mm and MM must be the same and must be set to any of the following: 00, 15, 30, or 45.

Example value:

  • 08:15-09:15
  • 23:00-00:00

keep_days

No

Integer

Retention days for specific backup files.

The value ranges from 1 to 732. The default value 7.

Table 6 volume field data structure description

Parameter

Mandatory

Type

Description

type

Yes

String

Disk type.

The value is ULTRAHIGH (case-sensitive), indicating the SSD.

size

Yes

Integer

Disk size. For example, if this parameter is set to 40, 40 GB of storage is allocated to the created instance.

: The value is from (Number of shards x 40 GB) to (Number of shards x 16 TB) and must be a multiple of (Number of shards x 4).

Table 7 chargeInfo field data structure description

Parameter

Mandatory

Type

Description

charge_mode

Yes

String

Billing mode. The value can only be postPaid, indicating pay-per-use billing.

Response Parameters

Table 8 Response parameters

Parameter

Type

Description

instance

Object

Instance information.

For details, see Table 9.

job_id

String

Instance creation task ID.

This parameter is returned only when pay-per-use instances are created.

Table 9 instance description

Parameter

Type

Description

id

String

Instance ID.

name

String

DB instance name. Instances of the same type can have same names under the same tenant.

The value must consist of 4 to 64 characters and start with a letter. It is case-insensitive and contains only letters, digits, hyphens (-), and underscores (_).

status

String

Instance status. For example, BUILD indicates that the instance is being created.

This parameter is returned only when pay-per-use instances are created.

datastore

Object

Database information.

For details, see Table 10.

ha

Object

Database deployment model.

For details, see Table 11.

replica_num

Integer

Number of replicas.

port

String

Database port, which is the same as the request parameter.

backup_strategy

Object

Automated backup policy.

For details, see Table 12.

enterprise_project_id

String

Project ID.

flavor_ref

String

Specification code. The value cannot be empty.

volume

Object

Volume information.

For details, see Table 13.

region

String

Region ID.

availability_zone

String

AZ ID.

vpc_id

String

VPC ID.

subnet_id

String

Network ID of the subnet.

security_group_id

String

Security group to which the instance belongs.

charge_info

Object

Payment mode. Only pay-per-use is supported.

For details, see Table 14.

Table 10 datastore field data structure description

Parameter

Type

Description

type

String

DB engine. Value:

GaussDB

version

String

DB engine version.

Table 11 ha field data structure description

Parameter

Type

Description

mode

String

Distributed deployment model. The value enterprise (Enterprise Edition) and is case-insensitive.

replication_mode

String

Replication mode for the standby node.

Value:

  • sync.
NOTE:
  • sync indicates synchronous replication.

consistency

String

(GaussDB reserved parameter) Transaction consistency type. The value can be strong or eventual.

Table 12 backup_strategy field data structure description

Parameter

Type

Description

start_time

String

Backup time window. The creation of an automated backup will be triggered during the backup time window.

The value cannot be empty. It must be a valid value in the "hh:mm-HH:MM" format. The current time is in the UTC format.

  • The HH value must be 1 greater than the hh value.
  • The values of mm and MM must be the same and must be set to any of the following: 00, 15, 30, or 45.

Example value:

  • 08:15-09:15
  • 23:00-00:00

If backup_strategy in the request body is empty, 02:00-03:00 is returned for start_time by default.

keep_days

Integer

Retention days for specific backup files.

The value ranges from 1 to 732. If backup_strategy in the request body is empty, 7 is returned for keep_days by default.

Table 13 volume field data structure description

Parameter

Type

Description

type

String

Disk type.

The value is ULTRAHIGH (case-sensitive), indicating the SSD.

size

Integer

Disk size.

When creating a distributed instance, you need to specify the size to be a multiple of (Number of shards x 4 GB). Value range: (Number of shards x 40 GB) to (Number of shards x 16 TB).

Table 14 chargeInfo field data structure description

Parameter

Type

Description

charge_mode

String

Billing information, which is pay-per-use.

Example Request

  • Creating a distributed DB instance in the independent deployment (pay-per-use billing, DB engine 1.4, single AZ, three CNs, three shards, three replicas, and 8 vCPUs and 64 GB)
    https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/opengauss/v3/0483b6b16e954cb88930a360d2c4e663/instances
    {
        "name": "user1-v3-independent-01", 
        "datastore": {
            "type": "GaussDB", 
            "version": "1.4"
        }, 
        "flavor_ref": "gaussdb.opengauss.ee.dn.m6.2xlarge.8.in", 
        "volume": {
            "type": "ULTRAHIGH", 
            "size": 120
        },
        "disk_encryption_id": "24ae42b5-4009-4ea2-b66a-0b211e424dab",
        "region": "aaa", 
        "availability_zone": "bbb,bbb,bbb", 
        "vpc_id": "1f011c32-2de2-4aa8-a161-9498dbcef329", 
        "subnet_id": "54a44bec-e36f-441e-86bb-d749ace9c189", 
        "security_group_id": "c6123999-8532-421c-9db6-e078013ff58f", 
        "backup_strategy": {
            "start_time": "17:00-18:00", 
            "keep_days": 7
        }, 
        "charge_info": {
            "charge_mode": "postPaid"
        }, 
        "password": "xxxxxx", 
        "configuration_id": "", 
        "enterprise_project_id": "", 
        "time_zone": "UTC+08:00",
        "ha":{
            "mode":"enterprise",
            "consistency":"strong",
            "replication_mode":"sync"
        },
        "sharding_num": 3,
        "coordinator_num": 3,
        "replica_num": 3,
        "port":8000,
        "enable_force_switch":true
    }
    
  • Creating a distributed DB instance in the independent deployment (one-year yearly/monthly billing, DB engine 1.4, three AZs, three CNs, three shards, three replicas, and 8 vCPUs and 64 GB)
    https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/opengauss/v3/0483b6b16e954cb88930a360d2c4e663/instances
    {
        "name": "user1-v3-independent-02", 
        "datastore": {
            "type": "GaussDB", 
            "version": "1.4"
        }, 
        "flavor_ref": "gaussdb.opengauss.ee.dn.m6.2xlarge.8.in", 
        "volume": {
            "type": "ULTRAHIGH", 
            "size": 120
        },
        "disk_encryption_id": "24ae42b5-4009-4ea2-b66a-0b211e424dab",
        "region": "aaa",
        "availability_zone": "bbb,ccc,ddd", 
        "vpc_id": "1f011c32-2de2-4aa8-a161-9498dbcef329", 
        "subnet_id": "54a44bec-e36f-441e-86bb-d749ace9c189", 
        "security_group_id": "c6123999-8532-421c-9db6-e078013ff58f", 
        "backup_strategy": {
            "start_time": "17:00-18:00", 
            "keep_days": 7
        }, 
        "charge_info": {
            "charge_mode": "prePaid",
            "period_type": "year",
            "period_num": 1
        },
        "password": "xxxxxx", 
        "configuration_id": "", 
        "enterprise_project_id": "", 
        "time_zone": "UTC+08:00",
        "ha":{
            "mode":"enterprise",
            "consistency":"strong",
            "replication_mode":"sync"
        },
        "sharding_num": 3,
        "coordinator_num": 3,
        "replica_num": 3,
        "port":8000,
        "enable_force_switch":true
    }
  • Creating a primary/standby (1 primary + 2 standby) DB instance (pay-per-use billing, DB engine 1.4, single AZ, 8 vCPUs and 64 GB)
    https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/opengauss/v3/0483b6b16e954cb88930a360d2c4e663/instances
    {
        "name": "user1-v3-ha-01",
        "datastore": {
            "type": "GaussDB",
            "version": "1.4"
        },
        "flavor_ref": "gaussdb.opengauss.ee.km1.2xlarge.arm8.ha",
        "volume": {
            "type": "ULTRAHIGH",
            "size": 120
        },
        "disk_encryption_id": "24ae42b5-4009-4ea2-b66a-0b211e424dab",
        "region": "aaa",
        "availability_zone": "bbb,bbb,bbb", 
        "vpc_id": "1f011c32-2de2-4aa8-a161-9498dbcef329",
        "subnet_id": "54a44bec-e36f-441e-86bb-d749ace9c189",
        "security_group_id": "c6123999-8532-421c-9db6-e078013ff58f",
        "backup_strategy": {
            "start_time": "17:00-18:00",
            "keep_days": 7
        },
        "charge_info": {
            "charge_mode": "postPaid",
        },
        "password": "xxxxxx",
        "configuration_id": "", 
        "enterprise_project_id": "",
        "time_zone": "UTC+08:00",
        "ha": {
            "mode": "centralization_standard",
            "consistency": "strong",
            "replication_mode": "sync"
        },
        "replica_num": 3,
        "port": 8000,
        "enable_force_switch": true
    }
  • Creating a primary/standby (1 primary + 2 standby) DB instance (one-year yearly/monthly billing, DB engine 1.4, three AZs, 8 vCPUs and 64 GB)
    https://gaussdb-opengauss.ap-southeast-1.myhuaweicloud.com/opengauss/v3/0483b6b16e954cb88930a360d2c4e663/instances
    {
        "name": "user1-v3-ha-02",
        "datastore": {
            "type": "GaussDB",
            "version": "1.4"
        },
        "flavor_ref": "gaussdb.opengauss.ee.km1.2xlarge.arm8.ha",
        "volume": {
            "type": "ULTRAHIGH",
            "size": 120
        },
        "disk_encryption_id": "24ae42b5-4009-4ea2-b66a-0b211e424dab",
        "region": "aaa",
        "availability_zone": "bbb,ccc,ddd", 
        "vpc_id": "1f011c32-2de2-4aa8-a161-9498dbcef329",
        "subnet_id": "54a44bec-e36f-441e-86bb-d749ace9c189",
        "security_group_id": "c6123999-8532-421c-9db6-e078013ff58f",
        "backup_strategy": {
            "start_time": "17:00-18:00",
            "keep_days": 7
        },
        "charge_info": {
            "charge_mode": "prePaid",
            "period_type": "year",
            "period_num": 1
        },
        "password": "xxxxxx",
        "configuration_id": "", 
        "enterprise_project_id": "",
        "time_zone": "UTC+08:00",
        "ha": {
            "mode": "centralization_standard",
            "consistency": "strong",
            "replication_mode": "sync"
        },
        "replica_num": 3,
        "port": 8000,
        "enable_force_switch": true
    }

Example Response

Creating an instance of the enterprise edition

{
    "instance": {
        "id": "ad8cd1440aa94a02ae4580fcbebb3143in14",
        "name": "user1-v3-independent",
        "status": "BUILD",
        "datastore": {
            "type": "GaussDB",
            "version": "1.4"
        },
        "ha": {
            "mode": "Enterprise",
            "replication_mode": "sync",
            "consistency": "strong"
        },
        "port": "8000",
        "volume": {
            "type": "ULTRAHIGH",
            "size": 120
        },
        "replica_num": 3,
        "backup_strategy": {
            "start_time": "17:00-18:00",
            "keep_days": 7
        },
        "flavor_ref": "gaussdb.opengauss.ee.dn.m6.2xlarge.8.in",
        "vpc_id": "1f011c32-2de2-4aa8-a161-9498dbcef329",
        "subnet_id": "54a44bec-e36f-441e-86bb-d749ace9c189",
        "security_group_id": "c6123999-8532-421c-9db6-e078013ff58f",
        "charge_info": {
            "charge_mode": "postPaid"
        }
    },
    "job_id": "30f2790a-a5b6-4a13-a5ab-733c746609af"
}

Status Code

Error Code

For details, see Error Codes.