在DMS中录入新的数据库实例。
接口说明
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:
- 操作:是指具体的权限点。
- 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
- 资源类型:是指操作中支持授权的资源类型。具体说明如下:
- 对于必选的资源类型,用前面加 * 表示。
- 对于不支持资源级授权的操作,用
全部资源表示。
- 条件关键字:是指云产品自身定义的条件关键字。
- 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
| 操作 | 访问级别 | 资源类型 | 条件关键字 | 关联操作 |
|---|---|---|---|---|
| dms:RegisterInstance | create | *全部资源 * |
| 无 |
请求参数
| 名称 | 类型 | 必填 | 描述 | 示例值 |
|---|---|---|---|---|
| Tid | long | 否 | 租户 ID,可通过调用接口 GetUserActiveTenant 获取该参数的值。 | 3*** |
| InstanceType | string | 是 | 数据库类型,取值请参见 DbType 参数说明。 | MySQL |
| InstanceSource | string | 是 | 数据库实例来源,取值如下:
| RDS |
| NetworkType | string | 是 | 网络类型,取值如下:
| VPC |
| EnvType | string | 是 | 环境类型,取值如下:
| product |
| EcsInstanceId | string | 否 | ECS 的实例 ID。 说明
如果 InstanceSource 取值为 ECS_OWN,此值必填。
| i-2zei9gs1t7h8l7ac**** |
| VpcId | string | 否 | VPC ID。 说明
如果 InstanceSource 取值为 VPC_IDC 时,此值必填。
| vpc-xxxxxxxxxxxxxxxxxxxxx |
| EcsRegion | string | 否 | 实例所在区域。 说明
如果 InstanceSource 取值为 RDS、ECS_OWN 或 VPC_IDC,此值必填。
| cn-hangzhou |
| Host | string | 是 | 目标数据库的主机地址。 | 172.XX.XXX.254 |
| Port | integer | 是 | 目标数据库的访问端口。 | 3306 |
| Sid | string | 否 | 数据库 SID。 说明
如果 InstanceType 为 ORACLE,此项必填。
| XXX |
| DatabaseUser | string | 是 | 数据库访问账号。 | dmstest |
| DatabasePassword | string | 是 | 数据库访问密码。 | ****** |
| InstanceAlias | string | 是 | 实例别名,可以帮助用户快速区分定位实例。 | 测试实例 |
| DbaUid | long | 是 | 实例 DBA 角色的用户 UID,可通过调用接口 ListUsers 或 GetInstance 获取该参数的值。 | 22275482072787**** |
| SafeRule | string | 是 | 实例的安全规则集(GroupName),可通过调用接口 ListStandardGroups 或 GetInstance 获取该参数的值。 | 测试使用 |
| QueryTimeout | integer | 是 | 查询超时时间,单位:s(秒)。 | 60 |
| ExportTimeout | integer | 是 | 导出超时时间,单位:s(秒)。 | 600 |
| DataLinkName | string | 否 | 输入跨库查询 datalink 名称。 说明
| dblink_test |
| DdlOnline | integer | 否 | 是否开启结构变更优先,取值如下:
说明
支持的数据库类型:RDS MySQL、PolarDB MySQL 引擎、MyBase MySQL、其他来源 MySQL。
| 2 |
| UseDsql | integer | 否 | 是否启用跨实例查询,取值如下:
说明
支持的数据库类型:MySQL、SQL Server、PostgreSQL、PolarDB PostgreSQL 版(兼容 Oracle)、Redis。
| 1 |
| SkipTest | boolean | 否 | 实例是否忽略测试连通性。取值如下:
| true |
| EnableSellSitd | string | 否 |
| Y |
| TemplateId | long | 否 | 分类分级模板 ID。您可以调用 ListClassificationTemplates 接口获取该参数的值。 | 31*** |
| TemplateType | string | 否 | 分类分级模板类型。您可以调用 ListClassificationTemplates 接口获取该参数的值。 | INNER |
| DbaUidByString | string | 否 | 用于替换 DbaUid 字段,可输入角色账号等非数字 DbaUid | 22275482072787**** |
返回参数
示例
正常返回示例
JSON格式
{
"RequestId": "F4E2A94B-604F-43FF-93E7-F4EE3DCF412E",
"ErrorCode": "UnknownError",
"ErrorMessage": "UnknownError",
"Success": true
}错误码
访问错误中心查看更多错误码。
变更历史
| 变更时间 | 变更内容概要 | 操作 |
|---|---|---|
| 2023-11-07 | OpenAPI 入参发生变更 | 查看变更详情 |
Python sdk 示例
示例为 VPC 专线实例的录入。
#coding=utf-8
from typing import List
# 导入必要模块
from alibabacloud_dms_enterprise20181101.client import Client as DmsEnterpriseClient
from alibabacloud_dms_enterprise20181101 import models as dms_models
from alibabacloud_credentials.client import Client as CredentialClient
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_util import models as util_models
def main(args: List[str]) -> None:
config = open_api_models.Config(
access_key_id="<your-access-key-id>",
access_key_secret="<your-access-key-secret>"
)
region_id = "<your-region-id>"
config.endpoint = f'dms-enterprise.{region_id}.aliyuncs.com'
client = DmsEnterpriseClient(config)
# 租户 ID
tid = 1,
# 实例 host
host = "192.168.16.113",
# 实例 port
port = 3314,
# 实例 db 类型 eg : MySQL
instance_type = "MySQL",
# 实例来源 eg : VPC_IDC
instance_source = "VPC_IDC",
# 网络类型 type: eg : VPC
network_type = "VPC",
env_type = "PRODUCT",
vpc_id = "实例 VPC ID",
ecs_region = "实例 ecs region",
database_user = "实例 db 登录用户",
database_password = "实例 db 登录密码",
# 实例别名, 方便 DMS 企业版里面区分实例用
instance_alias = "实例别名",
# 实例 dba 阿里云 uid(此用户必须先在 DMS 企业版录入, 或者使用 API 提前录入)
dba_uid = -1,
safe_rule = "DMS 企业版里面配置的安全规则的规则名",
query_timeout = 60,
export_timeout = 600
request = dms_models.RegisterInstanceRequest(
tid=tid,
host=host,
port=port,
instance_type=instance_type,
instance_source=instance_source,
network_type=network_type,
env_type=env_type,
vpc_id=vpc_id,
ecs_region=ecs_region,
database_user=database_user,
database_password=database_password,
instance_alias=instance_alias,
dba_uid=dba_uid,
safe_rule=safe_rule,
query_timeout=query_timeout,
export_timeout=export_timeout
)
runtime = util_models.RuntimeOptions()
response = client.register_instance_with_options(request, runtime)
print(response.to_map())
