数据库 API¶
API 版本¶
列出所有数据库服务 API 版本的相关信息。
列出所有数据库服务 API 版本的相关信息。无需身份验证。
正常响应代码:200
响应示例¶
{
"versions": [
{
"id": "v1.0",
"links": [
{
"href": "http://127.0.0.1:8779/v1.0/",
"rel": "self"
}
],
"status": "CURRENT",
"updated": "2012-08-01T00:00:00Z"
}
]
}
数据存储¶
获取系统中注册的所有数据存储
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应示例¶
{
"datastores": [
{
"default_version": "9e46a201-e92e-4ae0-af89-4af12a21bb45",
"id": "75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
"rel": "bookmark"
}
],
"name": "mariadb",
"versions": [
{
"id": "9e46a201-e92e-4ae0-af89-4af12a21bb45",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/9e46a201-e92e-4ae0-af89-4af12a21bb45",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/versions/9e46a201-e92e-4ae0-af89-4af12a21bb45",
"rel": "bookmark"
}
],
"name": "10.4"
}
]
},
{
"default_version": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"id": "3bf89e46-c3ed-4db6-a423-6e6709ec21ef",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/3bf89e46-c3ed-4db6-a423-6e6709ec21ef",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/3bf89e46-c3ed-4db6-a423-6e6709ec21ef",
"rel": "bookmark"
}
],
"name": "mysql",
"versions": [
{
"id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/versions/b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"rel": "bookmark"
}
],
"name": "5.7"
}
]
},
{
"id": "cc9ee471-e781-43bf-a796-423c5d549997",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
"rel": "bookmark"
}
],
"name": "postgresql",
"versions": [
{
"id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
"rel": "bookmark"
}
],
"name": "12"
}
]
}
]
}
显示数据存储详情
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore (可选) |
路径 |
字符串 |
数据存储的名称或 ID。 |
响应示例¶
{
"datastore": {
"id": "cc9ee471-e781-43bf-a796-423c5d549997",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/cc9ee471-e781-43bf-a796-423c5d549997",
"rel": "bookmark"
}
],
"name": "postgresql",
"versions": [
{
"id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
"rel": "bookmark"
}
],
"name": "12"
}
]
}
}
删除一个数据存储。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore (可选) |
路径 |
字符串 |
数据存储的名称或 ID。 |
数据存储版本¶
获取给定数据存储的所有已注册版本
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore (可选) |
路径 |
字符串 |
数据存储的名称或 ID。 |
响应示例¶
{
"versions": [
{
"datastore": "cc9ee471-e781-43bf-a796-423c5d549997",
"id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/versions/4eb0179d-fe11-4556-9422-5267d2fc7625",
"rel": "bookmark"
}
],
"name": "12",
"version": "5.7.29"
}
]
}
获取给定数据存储版本(名称或 ID)的信息
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore (可选) |
路径 |
字符串 |
数据存储的名称或 ID。 |
version (可选) |
路径 |
字符串 |
数据存储版本的名称或 ID。如果存在具有相同名称但不同版本号的多个数据存储版本,则需要 ID。 |
响应示例¶
{
"version": {
"id": "800774c4-0505-4ae7-8cf9-aae131e065ae",
"name": "5.7",
"version": "5.7",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/0600c20b16444bfa979b879b099805a1/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
"rel": "bookmark"
}
],
"datastore": "3423e828-3355-48ef-9c16-5c41e7c196fb",
"active": true,
"packages": "",
"image": null,
"registry_ext": "trove.guestagent.datastore.mysql.manager.Manager",
"repl_strategy": "trove.guestagent.strategies.replication.mysql_gtid.MysqlGTIDReplication",
"image_tags": [
"trove"
]
}
}
获取与指定数据存储版本关联的所有配置参数
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore (可选) |
路径 |
字符串 |
数据存储的名称或 ID。 |
version (可选) |
路径 |
字符串 |
数据存储版本的名称或 ID。如果存在具有相同名称但不同版本号的多个数据存储版本,则需要 ID。 |
响应示例¶
{
"configuration-parameters": [
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 1,
"min": 0,
"name": "autocommit",
"restart_required": false,
"type": "integer"
},
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 65535,
"min": 1,
"name": "auto_increment_increment",
"restart_required": false,
"type": "integer"
},
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 65535,
"min": 1,
"name": "auto_increment_offset",
"restart_required": false,
"type": "integer"
},
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 31536000,
"min": 1,
"name": "wait_timeout",
"restart_required": false,
"type": "integer"
}
]
}
获取指定的配置参数定义。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore (可选) |
路径 |
字符串 |
数据存储的名称或 ID。 |
version (可选) |
路径 |
字符串 |
数据存储版本的名称或 ID。如果存在具有相同名称但不同版本号的多个数据存储版本,则需要 ID。 |
parameter_name (可选) |
路径 |
字符串 |
要显示详细信息的参数名称。 |
响应示例¶
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 31536000,
"min": 1,
"name": "wait_timeout",
"restart_required": false,
"type": "integer"
}
获取给定数据存储版本 ID 的信息。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
响应示例¶
{
"version": {
"id": "800774c4-0505-4ae7-8cf9-aae131e065ae",
"name": "5.7",
"version": "5.7",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/0600c20b16444bfa979b879b099805a1/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/datastores/versions/800774c4-0505-4ae7-8cf9-aae131e065ae",
"rel": "bookmark"
}
],
"datastore": "3423e828-3355-48ef-9c16-5c41e7c196fb",
"active": true,
"packages": "",
"image": null,
"registry_ext": "trove.guestagent.datastore.mysql.manager.Manager",
"repl_strategy": "trove.guestagent.strategies.replication.mysql_gtid.MysqlGTIDReplication",
"image_tags": [
"trove"
]
}
}
获取与指定数据存储版本 ID 关联的所有配置参数。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
响应示例¶
{
"configuration-parameters": [
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 1,
"min": 0,
"name": "autocommit",
"restart_required": false,
"type": "integer"
},
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 65535,
"min": 1,
"name": "auto_increment_increment",
"restart_required": false,
"type": "integer"
},
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 65535,
"min": 1,
"name": "auto_increment_offset",
"restart_required": false,
"type": "integer"
},
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 31536000,
"min": 1,
"name": "wait_timeout",
"restart_required": false,
"type": "integer"
}
]
}
获取指定的配置参数定义。
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
parameter_name (可选) |
路径 |
字符串 |
要显示详细信息的参数名称。 |
响应示例¶
{
"datastore_version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf",
"max": 31536000,
"min": 1,
"name": "wait_timeout",
"restart_required": false,
"type": "integer"
}
仅限管理员 API。为指定的数据存储版本注册一个配置参数。参数定义包含类型、最小值和最大值(如果类型为整数),以及参数值更改后是否需要重新启动实例。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
请求示例¶
{
"configuration-parameter": {
"name": "connect_timeout",
"data_type": "integer",
"min_size": 64,
"max_size": 65535,
"restart_required": 0
}
}
响应示例¶
{
"configuration-parameters": [
{
"datastore_version_id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
"max": 65535,
"min": 64,
"name": "connect_timeout",
"restart_required": false,
"type": "integer"
}
]
}
仅限管理员 API。更新指定数据存储版本的配置参数。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
parameter_name (可选) |
路径 |
字符串 |
要显示详细信息的参数名称。 |
请求示例¶
{
"configuration-parameter": {
"name": "connect_timeout",
"data_type": "integer",
"min_size": 64,
"max_size": 65535,
"restart_required": 1
}
}
响应示例¶
{
"datastore_version_id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
"deleted": 0,
"deleted_at": null,
"max_size": 65535,
"min_size": 64,
"name": "connect_timeout",
"restart_required": true,
"type": "integer"
}
仅限管理员 API。删除指定数据存储版本的配置参数。
正常响应代码:204
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
parameter_name (可选) |
路径 |
字符串 |
要显示详细信息的参数名称。 |
仅限管理员 API。注册一个数据存储版本,如果不存在则自动创建数据存储。
允许创建具有相同名称但不同版本号的数据存储版本,反之亦然。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
name |
body |
字符串 |
数据存储版本的名称。不同的数据存储版本可以具有相同的名称。 |
datastore_name |
body |
字符串 |
数据存储的名称。 |
datastore_manager |
body |
字符串 |
数据存储的类型。 |
image (可选) |
body |
字符串 |
镜像的 ID。 在创建数据存储版本时,需要指定 |
image_tags (可选) |
body |
数组 |
镜像标签列表。 在创建数据存储版本时,需要指定 如果未提供镜像 ID,则可以通过镜像标签检索镜像。标签用于整体过滤,而不是单独过滤。使用镜像标签比 ID 更灵活,尤其是在将新客户镜像上传到 Glance 时,Trove 可以自动选择最新的镜像来创建实例。 在更新时,仅指定 |
active |
body |
布尔值 |
数据库版本是否启用。 |
default (可选) |
body |
布尔值 |
如果为 true,则此数据存储版本将在数据存储中创建为默认版本。如果未指定,则对于创建,默认值为 false,对于更新,则忽略它。 |
version (可选) |
body |
字符串 |
数据库的版本号。在基于容器的 Trove 实例部署中,版本号与容器镜像标签相同,例如对于 MySQL,有效的版本号是 5.7.30 |
请求示例¶
{
"version": {
"datastore_name": "mysql",
"datastore_manager": "mysql",
"name": "test",
"image_tags": ["trove"],
"active": true,
"default": false,
"packages": [],
"version": "5.7.30"
}
}
仅限管理员 API。获取所有数据存储版本。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应示例¶
{
"versions": [
{
"active": true,
"datastore_id": "75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
"datastore_manager": "mariadb",
"datastore_name": "mariadb",
"default": false,
"id": "385fa391-f6f1-4444-9d80-7dc3b2188fa3",
"image": "42706631-3b76-4d1c-95c9-6a85e72eebda",
"name": "10.4-dev-train",
"packages": [
""
],
"version": "10.4.12"
},
{
"active": true,
"datastore_id": "cc9ee471-e781-43bf-a796-423c5d549997",
"datastore_manager": "postgresql",
"datastore_name": "postgresql",
"default": false,
"id": "4eb0179d-fe11-4556-9422-5267d2fc7625",
"image": "2eb8005f-270c-492f-977e-3c041a622ef7",
"name": "12",
"packages": [
""
],
"version": "12.4"
}
]
}
仅限管理员 API。获取数据存储版本的信息。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
响应示例¶
{
"version": {
"active": true,
"datastore_id": "75dc45e0-2c3c-47ee-a5b8-5213288e3fe2",
"datastore_manager": "mariadb",
"datastore_name": "mariadb",
"default": false,
"id": "385fa391-f6f1-4444-9d80-7dc3b2188fa3",
"image": "42706631-3b76-4d1c-95c9-6a85e72eebda",
"name": "10.4-dev-train",
"packages": [
""
],
"version": "10.4.12"
}
}
仅限管理员 API。更新特定的数据存储版本。
不允许更新版本号。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
name (可选) |
body |
字符串 |
数据存储版本的名称。不同的数据存储版本可以具有相同的名称。 |
datastore_manager (可选) |
body |
字符串 |
数据存储的类型。 |
image (可选) |
body |
字符串 |
镜像的 ID。 在创建数据存储版本时,需要指定 |
image_tags (可选) |
body |
数组 |
镜像标签列表。 在创建数据存储版本时,需要指定 如果未提供镜像 ID,则可以通过镜像标签检索镜像。标签用于整体过滤,而不是单独过滤。使用镜像标签比 ID 更灵活,尤其是在将新客户镜像上传到 Glance 时,Trove 可以自动选择最新的镜像来创建实例。 在更新时,仅指定 |
active (可选) |
body |
布尔值 |
数据库版本是否启用。 |
default (可选) |
body |
布尔值 |
如果为 true,则此数据存储版本将在数据存储中创建为默认版本。如果未指定,则对于创建,默认值为 false,对于更新,则忽略它。 |
请求示例¶
{
"name": "new name",
"image": "42706631-3b76-4d1c-95c9-6a85e72eebda",
"active": true
}
仅限管理员 API。删除特定的数据存储版本。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore_version_id (可选) |
路径 |
字符串 |
数据存储版本的 UUID。 |
实例¶
列出所有数据库实例的信息。支持的过滤器:include_clustered
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应示例¶
{
"instances": [
{
"datastore": {
"type": "mysql",
"version": "5.7"
},
"flavor": {
"id": "6"
},
"id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"ip": [
"10.1.0.62",
"172.24.5.114"
],
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "bookmark"
}
],
"name": "test",
"operating_status": "HEALTHY",
"region": "RegionOne",
"status": "ACTIVE",
"volume": {
"size": 1
}
}
]
}
仅限管理员 API。获取所有实例,可以显示更多信息,例如 Cinder 卷 ID、Nova 服务器信息等。
支持的过滤器
deleted.include_clustered.project_id:获取指定项目的实例。
正常响应代码:200
响应示例¶
{
"instances": [
{
"addresses": [
{
"address": "10.1.0.62",
"type": "private",
"network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
},
{
"address": "172.24.5.114",
"type": "public"
}
],
"created": "2019-12-23T20:58:35",
"datastore": {
"type": "mysql",
"version": "5.7"
},
"deleted": false,
"deleted_at": null,
"encrypted_rpc_messaging": true,
"flavor": {
"id": "d2"
},
"id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"ip": [
"10.1.0.62",
"172.24.5.114"
],
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/2afa58fd5db34fd8b7b659d997a5341f/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2"
}
],
"name": "test",
"operating_status": "HEALTHY",
"region": "RegionOne",
"server": {
"host": "bdfe3275004d2a98d38d494fd7adfcd0c6d5d5198e86fa0d6ec5d588",
"id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
"name": "test",
"status": "ACTIVE",
"tenant_id": "27ac4b83e9d045eb8c373bacaa994eb7"
},
"server_id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
"service_status": "HEALTHY",
"service_status_updated": "2019-12-24T00:02:55",
"status": "ACTIVE",
"task_description": "No tasks for the instance.",
"tenant_id": "9f8dd5eacb074c9f87d2d822c9092aa5",
"updated": "2019-12-23T23:53:46",
"volume": {
"size": 1
},
"volume_id": "ccb62e29-73ea-4859-b206-3b3a4e30a991"
},
{
"created": "2019-12-23T20:53:38",
"datastore": {
"type": "mysql",
"version": "5.7"
},
"deleted": false,
"deleted_at": null,
"encrypted_rpc_messaging": true,
"fault": {
"created": "2019-12-23T20:53:41",
"details": "Failed to create User port for instance b76a6a76-748b-4064-adec-4c9e6c9abd68",
"message": "Failed to create User port for instance b76a6a76-748b-4064-adec-4c9e6c9abd68"
},
"flavor": {
"id": "6"
},
"id": "b76a6a76-748b-4064-adec-4c9e6c9abd68",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/2afa58fd5db34fd8b7b659d997a5341f/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
"rel": "bookmark"
}
],
"name": "test",
"operating_status": "",
"region": "RegionOne",
"server": null,
"server_id": null,
"service_status": "NEW",
"service_status_updated": "2019-12-23T20:53:38",
"status": "ERROR",
"task_description": "Build error: Port.",
"tenant_id": "9f8dd5eacb074c9f87d2d822c9092aa5",
"updated": "2019-12-23T20:53:41",
"volume": {
"size": 1
},
"volume_id": null
}
]
}
列出所有数据库实例的信息,包含更多详情,例如创建和更新时间、服务状态更新时间、故障消息等。支持的过滤器:include_clustered
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应示例¶
{
"instances": [
{
"addresses": [
{
"address": "10.1.0.62",
"type": "private",
"network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
},
{
"address": "172.24.5.114",
"type": "public"
}
],
"created": "2019-12-23T20:58:35",
"datastore": {
"type": "mysql",
"version": "5.7"
},
"flavor": {
"id": "6"
},
"id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"ip": [
"10.1.0.62",
"172.24.5.114"
],
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "bookmark"
}
],
"name": "test",
"operating_status": "HEALTHY",
"region": "RegionOne",
"service_status_updated": "2019-12-23T21:01:11",
"status": "ACTIVE",
"updated": "2019-12-23T20:58:45",
"volume": {
"size": 1
}
},
{
"created": "2019-12-23T20:53:38",
"datastore": {
"type": "mysql",
"version": "5.7"
},
"fault": {
"created": "2019-12-23T20:53:41",
"details": null,
"message": "Failed to create User port for instance b76a6a76-748b-4064-adec-4c9e6c9abd68"
},
"flavor": {
"id": "6"
},
"id": "b76a6a76-748b-4064-adec-4c9e6c9abd68",
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
"rel": "bookmark"
}
],
"name": "test",
"operating_status": "",
"region": "RegionOne",
"service_status_updated": "2019-12-23T20:53:38",
"status": "ERROR",
"updated": "2019-12-23T20:53:41",
"volume": {
"size": 1
}
}
]
}
创建一个数据库实例。
通常,您必须指定 flavor ID、卷大小以及实例连接的网络。服务会使用请求的大小配置卷,该卷作为数据库实例的存储。
如果创建副本(复制集群的辅助实例),则不需要 flavor 和卷大小。
数据库服务只能在租户网络内访问,除非定义了 access 参数。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
users (可选) |
body |
数组 |
一个 |
users.name |
body |
字符串 |
用户的名称。 |
users.password |
body |
字符串 |
用户的密码。 |
users.host (可选) |
body |
字符串 |
允许用户的 host。 |
users.databases (可选) |
body |
数组 |
一个 |
users.databases.name |
body |
字符串 |
用户可以访问的数据库的名称。 |
datastore (可选) |
body |
对象 |
一个 |
datastore.type (可选) |
body |
字符串 |
数据存储的类型。 |
datastore.version (可选) |
body |
字符串 |
在创建/更新实例时要使用的数据存储版本的名称。 |
datastore.version_number (可选) |
body |
字符串 |
数据库的版本号。在基于容器的 Trove 实例部署中,版本号与容器镜像标签相同,例如对于 MySQL,有效的版本号是 5.7.30 |
name |
body |
字符串 |
实例的名称。 |
flavorRef |
body |
字符串 |
引用(href),它是 flavor 列表响应中 flavor 的实际 URI。您可以传递 flavor ID(整数)作为 |
volume (可选) |
body |
对象 |
一个 |
volume.size |
body |
整数 |
卷大小,以千兆字节 (GB) 为单位。有效值为 1 到 50(此限制由配置 |
volume.type (可选) |
body |
字符串 |
要使用的卷类型。您可以使用 |
modules (可选) |
body |
对象 |
一个 |
modules.id |
body |
字符串 |
模块的 ID。 |
restorePoint (可选) |
body |
对象 |
一个 |
restorePoint.backupRef |
body |
字符串 |
用于创建新实例的备份 ID。 |
availability_zone (可选) |
body |
字符串 |
实例的可用区。 |
nics (可选) |
body |
数组 |
数据库实例的网络接口定义。这是一个映射列表,用于向后兼容,但只允许一个项目。映射中允许的键是:network_id、subnet_id、ip_address 和 net-id(为了向后兼容,已弃用)。 Trove 将使用给定的信息分配端口。为了成功创建数据库实例,用户应确保通过该端口的流量可以访问公共容器镜像注册表(即端口子网与 Neutron 路由器关联),或者云提供商应负责该问题。 |
replica_of |
body |
字符串 |
要从中复制的现有实例的 ID 或名称。 |
replica_count (可选) |
body |
整数 |
要创建的副本数(默认为 1)。 |
locality (可选) |
body |
字符串 |
在创建底层 Nova 实例时,调度程序的提示。有效值为: |
region_name (可选) |
body |
字符串 |
实例的区域名称。 |
databases (可选) |
body |
数组 |
一个 |
databases.characterSet (可选) |
body |
字符串 |
一组符号和编码。默认值为 |
databases.collate (可选) |
body |
字符串 |
字符集中比较字符的规则集。默认值为 |
实例 |
body |
对象 |
一个 |
配置 |
body |
字符串 |
要附加到实例的配置组的 ID。 |
access (可选) |
body |
对象 |
一个 |
access.is_public (可选) |
body |
布尔值 |
数据库服务是否暴露给公众。 |
access.allowed_cidrs (可选) |
body |
数组 |
限制访问数据库服务的 IPv4、IPv6 或两者的 CIDR 列表。如果未提供此参数,则默认使用 |
请求示例¶
{
"instance": {
"name": "test",
"flavorRef": 1,
"volume": {"size": 2},
"nics": [{"net-id": "a5330d7d-0e8c-48b4-9f6c-0f2c4ab1b854"}],
"datastore": {
"type": "mysql",
"version": "5.7"
},
"databases": [
{
"character_set": "utf8mb3",
"collate": "utf8mb3_general_ci",
"name": "sampledb"
},
{
"name": "nextround"
}
],
"users": [
{
"databases": [
{
"name": "sampledb"
}
],
"name": "demouser",
"password": "demopassword"
}
],
"access": {
"is_public": true,
"allowed_cidrs": ["202.78.240.0/24"]
}
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
id |
body |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
实例的名称。 |
status |
body |
字符串 |
实例的状态。 |
operating_status |
body |
字符串 |
Trove 实例内部数据库服务的运行状态。 |
links |
body |
数组 |
实例的 |
links.href |
body |
字符串 |
实例链接的 |
links.rel |
body |
字符串 |
实例链接的 |
flavor |
body |
对象 |
一个 |
flavor.id |
body |
字符串 |
flavor 的 ID。 |
flavor.links |
body |
数组 |
flavor 的 |
flavor.links.href |
body |
字符串 |
flavor 链接的 |
flavor.links.rel |
body |
字符串 |
flavor 链接的 |
datastore |
body |
对象 |
一个 |
datastore.type (可选) |
body |
字符串 |
数据存储的类型。 |
datastore.version |
body |
字符串 |
数据存储版本的名称或 ID。 |
datastore.version_number (可选) |
body |
字符串 |
数据库的版本号。在基于容器的 Trove 实例部署中,版本号与容器镜像标签相同,例如对于 MySQL,有效的版本号是 5.7.30 |
volume (可选) |
body |
对象 |
一个 |
volume.size |
body |
整数 |
卷大小,以千兆字节 (GB) 为单位。有效值为 1 到 50(此限制由配置 |
volume.used (可选) |
body |
float |
卷的已用空间,以千兆字节 (GB) 为单位。 |
创建时间 |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, |
updated |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 例如, 假定使用 UTC 时区。 |
service_status_updated |
body |
字符串 |
更新数据库服务状态的日期和时间。此字段可用于验证“HEALTHY”状态是否陈旧。 |
locality (可选) |
body |
字符串 |
在创建底层 Nova 实例时,调度程序的提示。有效值为: |
密码 (可选) |
body |
字符串 |
数据库 root 用户(即管理员用户)的密码。 |
实例 |
body |
对象 |
一个 |
响应示例¶
{
"instance": {
"id": "b76a6a76-748b-4064-adec-4c9e6c9abd68",
"name": "test",
"status": "BUILD",
"operating_status": "",
"datastore": {
"type": "mysql",
"version": "5.7.29",
"version_number": "5.7.29"
},
"flavor": {
"id": "3ca76fe7-8dc1-4059-b728-de725835abcb",
"links": [
{
"href": "https://192.168.206.8:87 79/v1.0/c37341d7d1934ebc949c9d6b5c9f818c/flavors/3ca76fe7-8dc1-4059-b728-de725835abcb",
"rel": "self"
},
{
"href": "https://192.168.206.8:8779/flavors/3ca76fe7-8dc1-4059-b728-de725835abcb",
"rel": "bookmark"
}
]
},
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/b76a6a76-748b-4064-adec-4c9e6c9abd68",
"rel": "bookmark"
}
],
"region": "RegionOne",
"access": {
"is_public": false
},
"volume": {
"size": 1
},
"created": "2019-12-23T20:53:38",
"updated": "2019-12-23T20:53:38",
"service_status_updated": "2019-12-23T20:53:38"
}
}
显示数据库实例详细信息。
列出卷大小(以千兆字节 (GB) 为单位)和大约使用的 GB 数。实例创建后,used 值大于 0,这是预期的,因为数据库可能会创建一些基本(非空)文件来表示一个空模式。如果实例状态为 BUILD、REBOOT、RESIZE 或 ERROR,则响应不包含 used 属性。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
实例 |
body |
对象 |
一个 |
id |
body |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
实例的名称。 |
status |
body |
字符串 |
实例的状态。 |
operating_status |
body |
字符串 |
Trove 实例内部数据库服务的运行状态。 |
links |
body |
数组 |
实例的 |
links.href |
body |
字符串 |
实例链接的 |
links.rel |
body |
字符串 |
实例链接的 |
flavor |
body |
对象 |
一个 |
flavor.id |
body |
字符串 |
flavor 的 ID。 |
flavor.links |
body |
数组 |
flavor 的 |
flavor.links.href |
body |
字符串 |
flavor 链接的 |
flavor.links.rel |
body |
字符串 |
flavor 链接的 |
datastore |
body |
对象 |
一个 |
datastore.type (可选) |
body |
字符串 |
数据存储的类型。 |
datastore.version |
body |
字符串 |
数据存储版本的名称或 ID。 |
region |
body |
字符串 |
实例的区域名称。 |
tenant_id (可选) |
body |
字符串 |
租户的 ID。 |
volume (可选) |
body |
对象 |
一个 |
volume.size |
body |
整数 |
卷大小,以千兆字节 (GB) 为单位。有效值为 1 到 50(此限制由配置 |
volume.used (可选) |
body |
float |
卷的已用空间,以千兆字节 (GB) 为单位。 |
hostname (可选) |
body |
字符串 |
实例的主机名。 |
ip (可选) |
body |
字符串 |
实例的 IP 地址(已弃用)。 |
addresses (可选) |
body |
数组 |
实例的 IP 地址,包括地址类型(“private”或“public”)和 IP。“network”字段在地址类型为“private”时,自 Xena 起添加。 |
创建时间 |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, |
updated |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 例如, 假定使用 UTC 时区。 |
service_status_updated |
body |
字符串 |
更新数据库服务状态的日期和时间。此字段可用于验证“HEALTHY”状态是否陈旧。 |
fault (可选) |
body |
对象 |
实例的 |
fault.message |
body |
字符串 |
实例的故障消息。 |
fault.created |
body |
字符串 |
实例故障消息的更新时间戳。 |
fault.details |
body |
字符串 |
实例的详细故障说明。 |
replicas (可选) |
body |
数组 |
实例的 |
replicas.id |
body |
字符串 |
副本实例的 ID。 |
replicas.links |
body |
数组 |
副本实例的 |
replicas.links.href |
body |
字符串 |
副本实例链接的 |
replicas.links.rel |
body |
字符串 |
副本实例链接的 |
replica_of (可选) |
body |
字符串 |
此副本的主要实例 ID。 |
configuration (可选) |
body |
对象 |
一个 |
configuration.id |
body |
字符串 |
配置的 ID。 |
configuration.name |
body |
字符串 |
配置的名称。 |
configuration.links |
body |
数组 |
配置的 |
configuration.links.href |
body |
字符串 |
配置链接的 |
configuration.links.rel |
body |
字符串 |
配置链接的 |
locality (可选) |
body |
字符串 |
在创建底层 Nova 实例时,调度程序的提示。有效值为: |
local_storage_used (可选) |
body |
float |
临时磁盘的已用空间,以千兆字节 (GB) 为单位。 |
密码 (可选) |
body |
字符串 |
数据库 root 用户(即管理员用户)的密码。 |
cluster_id (可选) |
body |
字符串 |
实例的集群 ID。 |
shard_id (可选) |
body |
字符串 |
实例的分片 ID。 |
server_id (可选) |
body |
字符串 |
实例的基础 Nova 实例的 ID。 |
volume_id (可选) |
body |
字符串 |
卷的 ID。 |
encrypted_rpc_messaging (可选) |
body |
布尔值 |
实例是否使用加密 rpm 消息传递功能。 |
access (可选) |
body |
对象 |
一个 |
access.is_public (可选) |
body |
布尔值 |
数据库服务是否暴露给公众。 |
access.allowed_cidrs (可选) |
body |
数组 |
限制访问数据库服务的 IPv4、IPv6 或两者的 CIDR 列表。如果未提供此参数,则默认使用 |
响应示例¶
{
"instance": {
"addresses": [
{
"address": "10.1.0.62",
"type": "private",
"network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
},
{
"address": "172.24.5.114",
"type": "public"
}
],
"created": "2019-12-23T20:58:35",
"datastore": {
"type": "mysql",
"version": "5.7"
},
"flavor": {
"id": "6"
},
"id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"ip": [
"10.1.0.62",
"172.24.5.114"
],
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/9f8dd5eacb074c9f87d2d822c9092aa5/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "bookmark"
}
],
"name": "test",
"operating_status": "HEALTHY",
"region": "RegionOne",
"service_status_updated": "2019-12-23T22:15:11",
"status": "ACTIVE",
"updated": "2019-12-23T20:58:45",
"volume": {
"size": 1,
"used": 0.12
}
}
}
仅管理员 API。获取实例信息,包括 Cinder 卷、Nova 服务器等。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应示例¶
{
"instance": {
"addresses": [
{
"address": "10.1.0.62",
"type": "private",
"network": "3dc8f3c2-f335-11eb-878c-00224d6b7bc1"
},
{
"address": "172.24.5.114",
"type": "public"
}
],
"created": "2019-12-23T20:58:35",
"datastore": {
"type": "mysql",
"version": "5.7"
},
"deleted": false,
"deleted_at": null,
"encrypted_rpc_messaging": true,
"flavor": {
"id": "d2"
},
"guest_status": {
"state_description": "healthy"
},
"id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"ip": [
"10.1.0.62",
"172.24.5.114"
],
"links": [
{
"href": "https://127.0.0.1:8779/v1.0/2afa58fd5db34fd8b7b659d997a5341f/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "self"
},
{
"href": "https://127.0.0.1:8779/instances/7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"rel": "bookmark"
}
],
"name": "test",
"operating_status": "HEALTHY",
"region": "RegionOne",
"server": {
"addresses": {
"private": [
{
"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:fc:eb:4a",
"OS-EXT-IPS:type": "fixed",
"addr": "10.1.0.62",
"version": 4
},
{
"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:fc:eb:4a",
"OS-EXT-IPS:type": "floating",
"addr": "172.24.5.114",
"version": 4
}
],
"trove-mgmt": [
{
"OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:f9:0f:6a",
"OS-EXT-IPS:type": "fixed",
"addr": "192.168.254.125",
"version": 4
}
]
},
"host": "bdfe3275004d2a98d38d494fd7adfcd0c6d5d5198e86fa0d6ec5d588",
"id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
"name": "test",
"status": "ACTIVE",
"tenant_id": "27ac4b83e9d045eb8c373bacaa994eb7"
},
"server_id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
"service_status": "HEALTHY",
"service_status_updated": "2019-12-24T00:08:55",
"status": "ACTIVE",
"task_description": "No tasks for the instance.",
"tenant_id": "9f8dd5eacb074c9f87d2d822c9092aa5",
"updated": "2019-12-23T23:53:46",
"volume": {
"attachments": [
{
"attached_at": "2019-12-23T23:11:39.000000",
"attachment_id": "a31526ba-884a-4e1f-8c64-4dc4b987ba4e",
"device": "/dev/vdb",
"host_name": "node.trove.magnum-pg0.utah.cloudlab.us",
"id": "ccb62e29-73ea-4859-b206-3b3a4e30a991",
"server_id": "710a84e5-6adf-4a4c-9167-8bade67a5a1c",
"volume_id": "ccb62e29-73ea-4859-b206-3b3a4e30a991"
}
],
"availability_zone": "nova",
"created_at": "2019-12-23T20:58:39.000000",
"id": "ccb62e29-73ea-4859-b206-3b3a4e30a991",
"size": 1,
"status": "in-use",
"total": 0.95,
"used": 0.12
},
"volume_id": "ccb62e29-73ea-4859-b206-3b3a4e30a991"
}
}
为实例附加或分离配置组。当您只传入实例 ID 并省略配置 ID 时,此操作将分离附加到实例的任何配置组。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
配置 |
body |
字符串 |
要附加到实例的配置组的 ID。 |
请求示例¶
{
"instance": {
"configuration": "2aa51628-5c42-4086-8682-137caffd2ba6"
}
}
更新实例名称。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
实例 |
body |
对象 |
一个 |
name (可选) |
body |
字符串 |
实例的名称。 |
请求示例¶
{
"instance": {
"name": "sample_instance"
}
}
升级数据存储版本。
在数据存储版本升级期间,实例状态更改为 UPGRADE,并在升级完成后更改回 HEALTHY,否则如果升级失败则更改为 ERROR。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
实例 |
body |
对象 |
一个 |
datastore_version (可选) |
body |
字符串 |
在创建/更新实例时要使用的数据存储版本的名称。 |
请求示例¶
{
"instance": {
"datastore_version": "sample_datastore_version"
}
}
从其复制源分离副本。
如果您创建了一个是源实例副本的实例,则以后可以将副本从源分离。如果源不可用,这会很有用。在这种情况下,您可以将副本从源分离,使副本成为一个独立的数据库实例。然后,您可以将新的独立实例并创建该实例的新副本。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
实例 |
body |
对象 |
一个 |
replica_of |
body |
字符串 |
要从中复制的现有实例的 ID 或名称。 |
slave_of (可选) |
body |
字符串 |
要分离副本,请将 |
请求示例¶
{
"instance": {
"replica_of": null
}
}
支持以下操作
如果实例应该暴露给公众。不提供
is_public表示私有。允许访问数据库服务的 CIDR 列表。不提供
allowed_cidrs表示允许所有内容。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
实例 |
body |
对象 |
一个 |
access (可选) |
body |
对象 |
一个 |
access.is_public (可选) |
body |
布尔值 |
数据库服务是否暴露给公众。 |
access.allowed_cidrs (可选) |
body |
数组 |
限制访问数据库服务的 IPv4、IPv6 或两者的 CIDR 列表。如果未提供此参数,则默认使用 |
请求示例¶
{
"instance": {
"access": {
"is_public": true,
"allowed_cidrs": ["10.0.0.0/24"]
}
}
}
删除数据库实例。
此操作不会删除任何从属实例。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
获取实例的所有备份。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应示例¶
{
"backups": [
{
"created": "2019-12-23T22:38:42",
"datastore": {
"type": "mysql",
"version": "5.7",
"version_id": "b3d5c099-dbd5-4518-baa3-7c7c195671bf"
},
"description": null,
"id": "71557643-2245-43ac-b871-3d5a50af21d3",
"instance_id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"locationRef": "http://127.0.0.1:8080/v1/AUTH_9f8dd5eacb074c9f87d2d822c9092aa5/database_backups/71557643-2245-43ac-b871-3d5a50af21d3.xbstream.gz.enc",
"name": "backup-full",
"parent_id": null,
"size": 0.12,
"status": "COMPLETED",
"updated": "2019-12-23T22:38:45"
}
]
}
获取实例的默认配置参数。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应示例¶
{
"instance": {
"configuration": {
"basedir": "/usr",
"connect_timeout": 15,
"datadir": "/var/lib/mysql/data",
"default_storage_engine": "innodb",
"innodb_buffer_pool_size": "2401M",
"innodb_data_file_path": "ibdata1:10M:autoextend",
"innodb_file_per_table": 1,
"innodb_log_buffer_size": "25M",
"innodb_log_file_size": "50M",
"innodb_log_files_in_group": 2,
"join_buffer_size": "1M",
"key_buffer_size": "800M",
"local-infile": 0,
"max_allowed_packet": "16392K",
"max_connections": 1600,
"max_heap_table_size": "256M",
"max_user_connections": 1600,
"myisam-recover-options": "BACKUP,FORCE",
"open_files_limit": 8196,
"performance_schema": "ON",
"pid-file": "/var/run/mysqld/mysqld.pid",
"port": 3306,
"query_cache_limit": "1M",
"query_cache_size": "128M",
"query_cache_type": 1,
"read_buffer_size": "512K",
"read_rnd_buffer_size": "512K",
"server_id": 1468542390,
"skip-external-locking": 1,
"socket": "/var/run/mysqld/mysqld.sock",
"sort_buffer_size": "1M",
"table_definition_cache": 4098,
"table_open_cache": 4098,
"thread_cache_size": 64,
"thread_stack": "192K",
"tmp_table_size": "256M",
"tmpdir": "/var/tmp",
"user": "mysql",
"wait_timeout": 120
}
}
}
实例操作¶
重启实例的数据库服务。
重启操作仅重启数据库实例。重启数据库会擦除您在数据库实例中所做的任何动态配置设置。
数据库服务在实例重启完成后才能使用。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"restart": {}
}
调整实例的 (Nova) flavor。
如果您提供有效的 flavorRef,此操作将更改实例的内存大小,并重启数据库。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
flavorRef |
body |
字符串 |
引用(href),它是 flavor 列表响应中 flavor 的实际 URI。您可以传递 flavor ID(整数)作为 |
请求示例¶
{
"resize": {
"flavorRef": "2"
}
}
调整附加到实例的卷的大小。
您可以使用此操作来增加但不减少卷的大小。有效的卷大小是千兆字节 (GB) 中的整数值。
您不能将卷增大到大于 API 卷大小限制的尺寸。
对于复制集群,调整主实例的卷也会自动调整副本的卷。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
volume (可选) |
body |
对象 |
一个 |
请求示例¶
{
"resize": {
"volume": {
"size": 4
}
}
}
提升一个副本。
如果您设置了复制,并且 master 实例仍然可访问,则可以使用此操作将副本提升为新的 master 实例。
如果您想对 master 实例进行配置更改或维护,这会很有用。如果您直接在 master 实例上进行更改,则需要在操作期间关闭 master 实例。相反,您可以在副本上进行配置更改,然后将副本提升为新的 master 实例。
执行此命令后,所有实例的状态都将设置为 PROMOTE,Trove 将发挥其魔力,直到所有实例都恢复到 HEALTHY。
instanceId 是您想要提升的副本的实例 ID。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"promote_to_replica_source": {}
}
移除复制集中的 master 实例。
这应该仅在主节点失败的情况下执行。此命令会驱逐当前的主节点,然后强制重新选举新的主节点。新的主节点实际上是旧主节点最当前的副本。
执行此命令后,所有实例的状态将被设置为 EJECT,Trove 将发挥其魔力,直到它们全部恢复到 HEALTHY。
instanceId 是当前不可用的主实例的 ID。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"eject_replica_source": {}
}
将实例服务状态设置为 ERROR 并清除当前任务状态。将任何正在运行的备份操作标记为 FAILED。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"reset_status": {}
}
仅限管理员 API。停止实例内的数据库服务。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"stop": {}
}
仅限管理员 API。重启数据库实例,数据库服务将在重启前停止。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"reboot": {}
}
仅限管理员 API。迁移(调整大小)数据库实例,数据库服务将在迁移前停止。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"migrate": {
"host": "compute-001"
}
}
仅限管理员 API。重置实例的任务状态,将任何正在运行的备份操作标记为 FAILED。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"reset-task-status": {}
}
仅限管理员 API。重建数据库实例的 Nova 服务器操作系统。重建操作主要用于 Trove 升级,尤其是在 Trove 控制器和客户端代理之间的接口发生变化时。在 Trove 控制器升级后,云管理员需要使用新的客户端镜像 ID 发送重建请求。需要与最终用户进行沟通,因为数据库服务在此过程中将离线。数据库中的用户数据不受影响。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"rebuild": {
"image_id": "3e50414a-8532-4646-982c-a66fe8f0411b"
}
}
实例日志¶
列出实例的所有日志。
不同的数据存储后端具有自己的 guest_log_exposed_logs 配置,以确定默认情况下将列出哪些类型的日志。管理员用户可以获取所有日志。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
日志 |
body |
数组 |
一个 |
name |
body |
字符串 |
日志的名称。 |
type |
body |
字符串 |
日志的类型。 |
status |
body |
字符串 |
日志状态。 |
已发布 |
body |
字符串 |
已发布日志的大小。 |
待定 |
body |
字符串 |
待发布日志的文件大小。 |
container |
body |
字符串 |
将存储已发布日志数据的对象存储容器。默认为 |
prefix |
body |
字符串 |
如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 |
metafile |
body |
字符串 |
日志元文件位置。 |
响应示例¶
{
"logs": [
{
"name": "general",
"type": "USER",
"status": "Partial",
"published": "128",
"pending": "4096",
"container": "data_logs",
"prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
"metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
},
{
"name": "slow_query",
"type": "USER",
"status": "Ready",
"published": "0",
"pending": "128",
"container": "None",
"prefix": "None",
"metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-slow_query_metafile"
}
]
}
显示实例日志的详细信息。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
日志的名称。 |
请求示例¶
{
"name": "general"
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
log |
body |
数组 |
一个 |
name |
body |
字符串 |
日志的名称。 |
type |
body |
字符串 |
日志的类型。 |
status |
body |
字符串 |
日志状态。 |
已发布 |
body |
字符串 |
已发布日志的大小。 |
待定 |
body |
字符串 |
待发布日志的文件大小。 |
container |
body |
字符串 |
将存储已发布日志数据的对象存储容器。默认为 |
prefix |
body |
字符串 |
如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 |
metafile |
body |
字符串 |
日志元文件位置。 |
响应示例¶
{
"log": {
"name": "general",
"type": "USER",
"status": "Partial",
"published": "128",
"pending": "4096",
"container": "data_logs",
"prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
"metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
}
}
为实例启用日志类型。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
日志的名称。 |
enable (可选) |
body |
整数 |
要启用日志类型,应始终设置为 1。 |
请求示例¶
{
"name": "general",
"enable": 1
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
log |
body |
数组 |
一个 |
name |
body |
字符串 |
日志的名称。 |
type |
body |
字符串 |
日志的类型。 |
status |
body |
字符串 |
日志状态。 |
已发布 |
body |
字符串 |
已发布日志的大小。 |
待定 |
body |
字符串 |
待发布日志的文件大小。 |
container |
body |
字符串 |
将存储已发布日志数据的对象存储容器。默认为 |
prefix |
body |
字符串 |
如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 |
metafile |
body |
字符串 |
日志元文件位置。 |
响应示例¶
{
"log": {
"name": "general",
"type": "USER",
"status": "Eanbled",
"published": "0",
"pending": "0",
"container": "None",
"prefix": "None",
"metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
}
}
为实例禁用日志类型。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
日志的名称。 |
disable (可选) |
body |
整数 |
要禁用日志类型,应始终设置为 1。 |
请求示例¶
{
"name": "general",
"disable": 1
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
log |
body |
数组 |
一个 |
name |
body |
字符串 |
日志的名称。 |
type |
body |
字符串 |
日志的类型。 |
status |
body |
字符串 |
日志状态。 |
已发布 |
body |
字符串 |
已发布日志的大小。 |
待定 |
body |
字符串 |
待发布日志的文件大小。 |
container |
body |
字符串 |
将存储已发布日志数据的对象存储容器。默认为 |
prefix |
body |
字符串 |
如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 |
metafile |
body |
字符串 |
日志元文件位置。 |
响应示例¶
{
"log": {
"name": "general",
"type": "USER",
"status": "Disabled",
"published": "4096",
"pending": "0",
"container": "data_logs",
"prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
"metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
}
}
为实例发布日志类型。
“发布”会自动 启用 日志。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
日志的名称。 |
publish (可选) |
body |
整数 |
要发布日志类型,应始终设置为 1。 |
请求示例¶
{
"name": "general",
"publish": 1
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
log |
body |
数组 |
一个 |
name |
body |
字符串 |
日志的名称。 |
type |
body |
字符串 |
日志的类型。 |
status |
body |
字符串 |
日志状态。 |
已发布 |
body |
字符串 |
已发布日志的大小。 |
待定 |
body |
字符串 |
待发布日志的文件大小。 |
container |
body |
字符串 |
将存储已发布日志数据的对象存储容器。默认为 |
prefix |
body |
字符串 |
如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 |
metafile |
body |
字符串 |
日志元文件位置。 |
响应示例¶
{
"log": {
"name": "general",
"type": "USER",
"status": "Published",
"published": "128",
"pending": "0",
"container": "data_logs",
"prefix": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general/",
"metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
}
}
丢弃实例之前发布的所有日志。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
日志的名称。 |
discard (可选) |
body |
整数 |
要丢弃之前已发布的日志类型,应始终设置为 1。 |
请求示例¶
{
"name": "general",
"discard": 1
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
log |
body |
数组 |
一个 |
name |
body |
字符串 |
日志的名称。 |
type |
body |
字符串 |
日志的类型。 |
status |
body |
字符串 |
日志状态。 |
已发布 |
body |
字符串 |
已发布日志的大小。 |
待定 |
body |
字符串 |
待发布日志的文件大小。 |
container |
body |
字符串 |
将存储已发布日志数据的对象存储容器。默认为 |
prefix |
body |
字符串 |
如果日志已发布,这是存储日志数据的位置前缀。否则,前缀为 |
metafile |
body |
字符串 |
日志元文件位置。 |
响应示例¶
{
"log": {
"name": "general",
"type": "USER",
"status": "Ready",
"published": "0",
"pending": "128",
"container": "None",
"prefix": "None",
"metafile": "5e9e616c-1827-45f5-a487-679084d82f7e/mysql-general_metafile"
}
}
备份¶
列出项目的所有数据库备份信息。您可以使用查询字符串参数过滤结果。支持以下过滤器
instance_id={instance_id}- 返回特定数据库实例的备份列表。all_projects=True/False- 返回所有项目的备份列表,默认情况下这是一个仅限管理员的参数。datastore={datastore}- 返回相同数据存储的备份列表。project_id={project_id}- 获取特定项目的备份。需要管理员权限。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backups |
body |
数组 |
一个 |
创建时间 |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, |
datastore |
body |
对象 |
一个 |
datastore.type |
body |
字符串 |
数据存储的类型。 |
datastore.version |
body |
字符串 |
数据存储版本的名称。不同的数据存储版本可以具有相同的名称。 |
datastore.version_id |
body |
字符串 |
数据存储版本的 UUID。 |
description |
body |
字符串 |
备份的可选描述。 |
id |
路径 |
字符串 |
备份的 ID。 |
instance_id (可选) |
body |
字符串 |
创建备份的实例的 ID。 |
locationRef |
body |
字符串 |
备份位置的 URL。 |
name |
body |
字符串 |
备份的名称。 |
parent_id |
body |
字符串 |
父备份的 ID,用于从最后一个完整备份执行增量备份。 |
size |
body |
字符串 |
备份的大小,单位为 GB。 |
status |
body |
字符串 |
备份的状态。 |
updated |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 例如, 假定使用 UTC 时区。 |
project_id |
body |
字符串 |
资源的 project ID。 |
storage_driver (可选) |
body |
字符串 |
备份策略 |
响应示例¶
{
"backups": [
{
"created": "2014-10-30T12:30:00",
"datastore": {
"type": "mysql",
"version": "5.5",
"version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
},
"description": "My Backup",
"id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
"instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
"locationRef": "https:///path/to/backup",
"name": "snapshot",
"parent_id": null,
"size": 0.14,
"status": "COMPLETED",
"updated": "2014-10-30T12:30:00",
"storage_driver": "cinder"
},
{
"created": "2014-10-30T12:30:00",
"datastore": {
"type": "mysql",
"version": "5.5",
"version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
},
"description": "My Incremental Backup",
"id": "2e351a71-dd28-4bcb-a7d6-d36a5b487173",
"instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
"locationRef": "https:///path/to/backup",
"name": "Incremental Snapshot",
"parent_id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
"size": 0.14,
"status": "COMPLETED",
"updated": "2014-10-30T12:30:00",
"storage_driver": "swift"
}
]
}
为实例创建数据库备份。
在启用服务租户的 Trove 部署中,备份数据将作为对象存储在 OpenStack Swift 服务中的用户容器中。如果未指定,容器名称由云管理员定义。
用户可以在项目范围内或针对特定数据库实例创建备份策略。
在具有地理复制 Swift 的多区域部署中,用户还可以通过手动指定在另一个区域创建的备份数据位置来在区域中恢复备份,然后从备份创建实例。在这种情况下,不需要实例 ID。
警告
恢复的备份依赖于原始备份数据,如果原始备份被删除,恢复的备份将无效。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
name |
body |
字符串 |
备份的名称。 |
instance (可选) |
body |
字符串 |
创建备份的实例的 ID。 |
parent_id (可选) |
body |
字符串 |
父备份的 ID,用于从最后一个完整备份执行增量备份。 |
incremental (可选) |
body |
整数 |
通过将此参数设置为 1 或 0 来基于最后一个完整备份创建增量备份。如果没有找到现有的备份,则将创建一个完整备份。 |
description (可选) |
body |
字符串 |
备份的可选描述。 |
swift_container (可选) |
body |
字符串 |
用户定义的 Swift 容器名称。创建备份时,如果容器不存在,则会自动创建容器。 |
restore_from (可选) |
body |
对象 |
恢复备份所需的信息,包括
|
storage_driver (可选) |
body |
字符串 |
备份策略 |
请求示例¶
{
"backup": {
"description": "My Backup",
"incremental": 0,
"instance": "44b277eb-39be-4921-be31-3d61b43651d7",
"name": "snapshot",
"storage_driver": "cinder"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
创建时间 |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, |
datastore |
body |
对象 |
一个 |
datastore.type |
body |
字符串 |
数据存储的类型。 |
datastore.version |
body |
字符串 |
数据存储版本的名称。不同的数据存储版本可以具有相同的名称。 |
datastore.version_id |
body |
字符串 |
数据存储版本的 UUID。 |
description |
body |
字符串 |
备份的可选描述。 |
id |
路径 |
字符串 |
备份的 ID。 |
instance_id (可选) |
body |
字符串 |
创建备份的实例的 ID。 |
locationRef |
body |
字符串 |
备份位置的 URL。 |
name |
body |
字符串 |
备份的名称。 |
parent_id |
body |
字符串 |
父备份的 ID,用于从最后一个完整备份执行增量备份。 |
size |
body |
字符串 |
备份的大小,单位为 GB。 |
status |
body |
字符串 |
备份的状态。 |
updated |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 例如, 假定使用 UTC 时区。 |
project_id |
body |
字符串 |
资源的 project ID。 |
storage_driver (可选) |
body |
字符串 |
备份策略 |
响应示例¶
{
"backup": {
"created": "2014-10-30T12:30:00",
"datastore": {
"type": "mysql",
"version": "5.5",
"version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
},
"description": "My Backup",
"id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
"instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
"locationRef": null,
"name": "snapshot",
"parent_id": null,
"size": null,
"status": "NEW",
"updated": "2014-10-30T12:30:00",
"storage_driver": "cinder"
}
}
显示备份的详细信息。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
backupId |
路径 |
字符串 |
备份的 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
创建时间 |
body |
字符串 |
创建资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
例如, 如果包含, |
datastore |
body |
对象 |
一个 |
datastore.type |
body |
字符串 |
数据存储的类型。 |
datastore.version |
body |
字符串 |
数据存储版本的名称。不同的数据存储版本可以具有相同的名称。 |
datastore.version_id |
body |
字符串 |
数据存储版本的 UUID。 |
description |
body |
字符串 |
备份的可选描述。 |
id |
路径 |
字符串 |
备份的 ID。 |
instance_id (可选) |
body |
字符串 |
创建备份的实例的 ID。 |
locationRef |
body |
字符串 |
备份位置的 URL。 |
name |
body |
字符串 |
备份的名称。 |
parent_id |
body |
字符串 |
父备份的 ID,用于从最后一个完整备份执行增量备份。 |
size |
body |
字符串 |
备份的大小,单位为 GB。 |
status |
body |
字符串 |
备份的状态。 |
updated |
body |
字符串 |
更新资源的时间和日期。 日期和时间戳格式为 ISO 8601 CCYY-MM-DDThh:mm:ss±hh:mm
如果包含 例如, 假定使用 UTC 时区。 |
project_id |
body |
字符串 |
资源的 project ID。 |
storage_driver (可选) |
body |
字符串 |
备份策略 |
响应示例¶
{
"backup": {
"created": "2014-10-30T12:30:00",
"datastore": {
"type": "mysql",
"version": "5.5",
"version_id": "b00000b0-00b0-0b00-00b0-000b000000bb"
},
"description": "My Backup",
"id": "a9832168-7541-4536-b8d9-a8a9b79cf1b4",
"instance_id": "44b277eb-39be-4921-be31-3d61b43651d7",
"locationRef": "https:///path/to/backup",
"name": "snapshot",
"parent_id": null,
"size": 0.14,
"status": "COMPLETED",
"updated": "2014-10-30T12:30:00",
"storage_driver": "cinder"
}
}
删除数据库备份。删除父备份时,所有子备份将自动删除。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
backupId |
路径 |
字符串 |
备份的 ID。 |
备份策略¶
备份策略允许用户自定义创建备份的方式。用户可以在项目范围内或针对特定数据库实例创建策略。
列出项目的备份策略。您可以使用查询字符串参数过滤结果。支持以下过滤器
instance_id={instance_id}- 返回特定数据库实例的备份策略列表。project_id={project_id}- 返回特定项目的备份策略列表,仅限管理员。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
backup_strategies |
body |
数组 |
一个 |
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instance_id |
body |
字符串 |
数据库实例的 ID。 |
backend |
body |
字符串 |
实例备份的存储后端,目前仅支持 swift。 |
swift_container |
body |
字符串 |
用户定义的 Swift 容器名称。 |
响应示例¶
{
"backup_strategies": [
{
"backend": "swift",
"instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1",
"project_id": "922b47766bcb448f83a760358337f2b4",
"swift_container": "my_trove_backups"
}
]
}
为项目或数据库实例创建或更新备份策略。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instance_id (可选) |
body |
字符串 |
数据库实例的 ID。 |
swift_container |
body |
字符串 |
用户定义的 Swift 容器名称。 |
请求示例¶
{
"backup_strategy": {
"instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1",
"swift_container": "my_trove_backups"
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instance_id |
body |
字符串 |
数据库实例的 ID。 |
backend |
body |
字符串 |
实例备份的存储后端,目前仅支持 swift。 |
swift_container |
body |
字符串 |
用户定义的 Swift 容器名称。 |
响应示例¶
{
"backup_strategy": {
"project_id": "922b47766bcb448f83a760358337f2b4",
"instance_id": "0602db72-c63d-11ea-b87c-00224d6b7bc1",
"backend": "swift",
"swift_container": "my_trove_backups"
}
}
删除项目的数据库策略。如果 URL 查询参数中指定了 instance_id,则删除该特定数据库实例的数据库策略。此外,管理员允许通过在 URL 查询参数中指定 project_id 来删除其他项目的备份策略。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
配置组¶
列出所有配置组。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应示例¶
{
"configurations": [
{
"updated": "2015-07-01T16:38:27",
"datastore_version_id": "2dc7faa0-efff-4c2b-8cff-bcd949c518a5",
"datastore_name": "mysql",
"datastore_version_name": "mysql-5.7",
"datastore_version_number": "5.7.29",
"name": "group1",
"created": "2015-07-01T16:38:27",
"id": "2aa51628-5c42-4086-8682-137caffd2ba6",
"description": null
}
]
}
创建配置组。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
datastore |
body |
字符串 |
分配给配置组的数据存储类型和版本。如果未配置默认数据存储,则需要此项。 |
name |
body |
字符串 |
您正在创建的配置组的名称。 |
values |
body |
字符串 |
列出配置参数名称和相关值的字典。 |
请求示例¶
{
"configuration": {
"name": "group1",
"datastore": {
"type": "mysql",
"version": "mysql-5.7",
"version_number": "5.7.29"
},
"values": {
"connect_timeout": 200
}
}
}
响应示例¶
{
"configuration": {
"created": "2020-06-16T10:40:50",
"updated": "2020-06-16T10:40:50",
"datastore_name": "mysql",
"datastore_version_id": "cf91aa9a-2192-4ec4-b7ce-5cac3b1e7dbe",
"datastore_version_name": "mysql-5.7",
"datastore_version_number": "5.7.29",
"description": null,
"id": "9dcfca0b-d181-4b36-bbf0-09bc47b103ab",
"instance_count": 0,
"name": "group1",
"values": {
"connect_timeout": 200
}
}
}
列出配置组的详细信息,包括其值。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
configId (可选) |
路径 |
字符串 |
配置组的 ID。 |
响应示例¶
{
"configuration": {
"datastore_name": "mysql",
"datastore_version_id": "b9f97132-467b-4f8e-b12d-947cfc223ac3",
"datastore_version_name": "mysql-5.7",
"datastore_version_number": "5.7.29",
"updated": "2015-11-22T19:07:20",
"values": {
"connect_timeout": 17
},
"name": "group1",
"created": "2015-11-20T20:51:24",
"instance_count": 1,
"id": "1c8a4fdd-690c-4e6e-b2e1-148b8d738770",
"description": null
}
}
列出与指定配置组关联的实例。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
configId (可选) |
路径 |
字符串 |
配置组的 ID。 |
响应示例¶
{
"instances": [
{
"id": "7fd2d1d6-a2ef-4a76-8c03-e233db4d86da",
"name": "master_1"
}
]
}
为配置组设置新值。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
configId (可选) |
路径 |
字符串 |
配置组的 ID。 |
values |
body |
字符串 |
列出配置参数名称和相关值的字典。 |
请求示例¶
{
"configuration": {
"values": {
"connect_timeout": 17
}
}
}
为配置组设置新值。还可以更改配置组的名称和描述。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
configId (可选) |
路径 |
字符串 |
配置组的 ID。 |
values |
body |
字符串 |
列出配置参数名称和相关值的字典。 |
description |
body |
字符串 |
配置组的新描述。 |
name |
body |
字符串 |
您正在创建的配置组的名称。 |
请求示例¶
{
"configuration": {
"values": {
"connect_timeout": 18
},
"name": "new_name",
"description": "New description"
}
}
删除配置组。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
configId (可选) |
路径 |
字符串 |
配置组的 ID。 |
数据库¶
目前,数据库和用户 API 仅支持 mysql 数据存储。对于其他存储,推荐的方法是获取 root 密码 (POST /v1.0/{project_id}/instances/{instance_id}/root) 并直接与数据库服务通信以进行数据库和用户管理。
在实例中创建一个数据库。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
name |
body |
字符串 |
您正在创建的配置组的名称。 |
characterSet (可选) |
body |
字符串 |
一组符号和编码。默认值为 |
collate (可选) |
body |
字符串 |
字符集中比较字符的规则集。默认值为 |
请求示例¶
{
"databases": [
{
"character_set": "utf8mb3",
"collate": "utf8mb3_general_ci",
"name": "databaseA"
},
{
"name": "databaseB"
},
{
"name": "databaseC"
}
]
}
列出实例的数据库。
此操作仅返回用户定义的数据库,不返回系统数据库。只有数据库管理员才能获取系统数据库,例如 mysql、information_schema 和 lost+found。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应示例¶
{
"databases": [
{
"name": "databaseB"
},
{
"name": "databaseC"
},
{
"name": "databaseD"
}
]
}
获取用户有权访问的所有数据库。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
user_name (可选) |
路径 |
字符串 |
用户的名称。 |
响应示例¶
{
"databases": [
{
"name": "databaseB"
},
{
"name": "databaseC"
},
{
"name": "databaseD"
}
]
}
授予用户对数据库的访问权限。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
user_name (可选) |
路径 |
字符串 |
用户的名称。 |
请求示例¶
{
"databases":[
{
"name": "test"
}
]
}
撤销用户对数据库的访问权限。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
user_name (可选) |
路径 |
字符串 |
用户的名称。 |
database_name (可选) |
路径 |
字符串 |
数据库的名称。 |
删除数据库。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
database_name (可选) |
路径 |
字符串 |
数据库的名称。 |
用户¶
目前,数据库和用户 API 仅支持 mysql 数据存储。对于其他存储,推荐的方法是获取 root 密码 (POST /v1.0/{project_id}/instances/{instance_id}/root) 并直接与数据库服务通信以进行数据库和用户管理。
创建数据库实例用户。
在指定用户名和密码时,还可以指定用户可以访问的数据库。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"users": [
{
"databases": [
{
"name": "databaseA"
}
],
"name": "dbuser1",
"password": "password"
},
{
"databases": [
{
"name": "databaseB"
},
{
"name": "databaseC"
}
],
"name": "dbuser2",
"password": "password"
},
{
"name": "dbuser3",
"password": "password"
}
]
}
列出数据库实例中的用户以及该用户的关联数据库。
此操作不返回系统用户。系统用户是管理数据库健康的数据库管理员。此外,此操作仅在启用时返回 root 用户。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应示例¶
{
"users": [
{
"databases": [
{
"name": "databaseA"
}
],
"host": "%",
"name": "dbuser1"
},
{
"databases": [
{
"name": "databaseB"
},
{
"name": "databaseC"
}
],
"host": "%",
"name": "dbuser2"
},
{
"databases": [],
"host": "%",
"name": "dbuser3"
}
]
}
获取实例中的特定用户信息。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
user_name (可选) |
路径 |
字符串 |
用户的名称。 |
响应示例¶
{
"user": {
"databases": [
{
"name": "databaseA"
}
],
"host": "%",
"name": "dbuser1"
}
}
删除数据库实例的用户。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
user_name (可选) |
路径 |
字符串 |
用户的名称。 |
修改特定用户的属性(例如,用户名、允许的主机、密码)。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
user_name (可选) |
路径 |
字符串 |
用户的名称。 |
请求示例¶
{
"user": {
"name": "new_name",
"password": "new_password",
"host": "192.168.30.98"
}
}
修改用户密码。
正常响应代码:202
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
请求示例¶
{
"users": [
{
"name": "new_name",
"password": "another_password",
"host": "192.168.30.98"
}
]
}
显示数据库实例的 root 启用状态。
如果数据库实例的 root 用户已启用,则返回 true。否则,返回 false。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应示例¶
{
"rootEnabled": true
}
启用数据库实例的 root 用户并返回 root 密码。
如果未提供,此操作会为 root 用户生成密码并启用 root 用户从任何主机登录。如果提供,用户应保证密码的复杂性并定期更改。
除了管理数据库和用户之外,root 用户还可以更改数据库设置,而无需触及 Trove API,这不建议这样做。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
密码 (可选) |
body |
字符串 |
数据库 root 用户(即管理员用户)的密码。 |
请求示例¶
{
"password": "q5BXXMUMbc8XBf5kkVToKZW4Kx3Egv5VjY0P"
}
响应示例¶
{
"user": {
"name": "root",
"password": "q5BXXMUMbc8XBf5kkVToKZW4Kx3Egv5VjY0P"
}
}
禁用 root 用户。
正常响应代码:204
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
仅限管理员 API。显示 root 用户已启用的日期和时间(如果曾经启用过)的实例。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
instanceId |
路径 |
字符串 |
数据库实例的 ID。 |
响应示例¶
{
"root_history": {
"enabled": "2019-12-24T03:10:16",
"id": "7de1bed8-6983-4d46-9a52-0abfbb0d27a2",
"user": "7578487d3cc843dca904d2f4eced7dd2"
}
}
配额¶
获取当前项目的资源配额和速率限制。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
响应示例¶
{
"limits": [
{
"max_backups": 50,
"max_instances": 10,
"max_volumes": 40,
"verb": "ABSOLUTE"
},
{
"nextAvailable": "2019-12-23T22:38:41Z",
"regex": ".*",
"remaining": 199,
"unit": "MINUTE",
"uri": "*",
"value": 200,
"verb": "POST"
},
{
"nextAvailable": "2019-12-24T02:49:24Z",
"regex": ".*",
"remaining": 199,
"unit": "MINUTE",
"uri": "*",
"value": 200,
"verb": "PUT"
},
{
"nextAvailable": "2019-12-24T03:42:19Z",
"regex": ".*",
"remaining": 200,
"unit": "MINUTE",
"uri": "*",
"value": 200,
"verb": "DELETE"
},
{
"nextAvailable": "2019-12-24T03:42:19Z",
"regex": ".*",
"remaining": 199,
"unit": "MINUTE",
"uri": "*",
"value": 200,
"verb": "GET"
},
{
"nextAvailable": "2019-12-24T03:42:19Z",
"regex": "^/mgmt",
"remaining": 200,
"unit": "MINUTE",
"uri": "*/mgmt",
"value": 200,
"verb": "POST"
}
]
}
管理员可以查询任何项目的资源配额。项目用户只能显示其自身的配额。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
user_project |
路径 |
字符串 |
用户项目的项目 ID。 |
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quotas |
body |
数组 |
资源配额列表。 |
resource |
body |
字符串 |
资源名称。 |
in_use |
body |
整数 |
资源的已用配额。 |
limit |
body |
整数 |
资源配额的限制。 |
reserved |
body |
整数 |
资源的保留配额。 |
响应示例¶
{
"quotas": [
{
"in_use": 5,
"limit": 15,
"reserved": 0,
"resource": "instances"
},
{
"in_use": 2,
"limit": 50,
"reserved": 0,
"resource": "backups"
},
{
"in_use": 1,
"limit": 40,
"reserved": 0,
"resource": "volumes"
}
]
}
默认情况下,仅限管理员操作。支持的资源
instances
backups
如果未设置,则使用 Trove 配置中的默认资源配额。
正常响应代码:200
请求¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
project_id |
路径 |
字符串 |
实例所有者的项目 ID。 |
user_project |
路径 |
字符串 |
用户项目的项目 ID。 |
quotas |
body |
字符串 |
定义资源配额的字典。 |
请求示例¶
{
"quotas": {
"instances": 10,
"backups": 30
}
}
响应参数¶
名称 |
入参 |
类型 |
描述 |
|---|---|---|---|
quotas |
body |
字符串 |
定义资源配额的字典。 |
响应示例¶
{
"quotas": {
"instances": 10,
"backups": 30
}
}