调用RegisterInstance接口在DMS中录入新的数据库实例。

前提条件:

您的用户角色为管理员或DBA。可通过调用接口ListUsersGetUser获取用户角色RoleIdList。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称 类型 是否必选 示例值 描述
Action String RegisterInstance

系统规定参数。取值:RegisterInstance

Tid Long 3***

租户ID,可通过调用接口GetUserActiveTenant获取该参数的值。

InstanceType String MySQL

数据库类型,取值请参见DbType参数说明

InstanceSource String RDS

数据库实例来源,取值如下:

  • PUBLIC_OWN:代表公网自建实例
  • RDS:代表RDS实例
  • ECS_OWN:代表ECS自建实例
  • VPC_IDC:代表VPC IDC自建实例
NetworkType String VPC

网络类型,取值如下:

  • CLASSIC:经典网络
  • VPC:VPC网络
EnvType String product

环境类型,取值如下:

  • product:生产环境
  • dev:开发环境
  • pre:预发环境
  • test:测试环境
  • sit:SIT环境
  • uat:UAT环境
  • pet:压测环境
  • stag:STAG环境
EcsInstanceId String i-2zei9gs1t7h8l7ac****

ECS的实例ID。

说明 如果InstanceSource取值为ECS_OWN,此值必填。
VpcId String vpc-xxxxxxxxxxxxxxxxxxxxx

VPC ID。

说明 如果InstanceSource取值为VPC_IDC时,此值必填。
EcsRegion String cn-hangzhou

实例所在区域。

说明 如果InstanceSource取值为RDS、ECSOWN或VPCIDC,此值必填。
Host String 172.XX.XXX.254

目标数据库的主机地址。

Port Integer 3306

目标数据库的访问端口。

Sid String XXX

数据库SID。

说明 如果InstanceType为ORACLE,此项必填。
DatabaseUser String dmstest

数据库访问账号。

DatabasePassword String ******

数据库访问密码。

InstanceAlias String 测试实例

实例别名,可以帮助用户快速区分定位实例。

DbaUid Long 22275482072787****

实例DBA角色的用户UID,可通过调用接口ListUsersGetInstance获取该参数的值。

SafeRule String 测试使用

实例的安全规则集(GroupName),可通过调用接口ListStandardGroupsGetInstance获取该参数的值。

QueryTimeout Integer 60

查询超时时间,单位:s(秒)。

ExportTimeout Integer 600

导出超时时间,单位:s(秒)。

DataLinkName String dblink_test

输入跨库查询datalink名称。

说明
  • 如果UseDsql取值为1,此值必填。
  • DBLink名称只能使用小写字母和下划线(_)。
  • DBLink名称需要在租户内保持全局唯一性。
DdlOnline Integer 2

是否开启结构变更优先,取值如下:

  • 0 :不使用
  • 1 :原生onlineDDL优先
  • 2 :DMS无锁表结构变更优先
说明 支持的数据库类型:RDS MySQL、PolarDB MySQL引擎、MyBase MySQL、其他来源MySQL。
UseDsql Integer 1

是否启用跨实例查询,取值如下:

  • 0:不开启
  • 1:开启
说明 支持的数据库类型:MySQL、SQL Server、PostgreSQL、PolarDB O引擎、Redis。
SkipTest Boolean true

实例是否忽略测试连通性。取值如下:

  • true:忽略
  • false:不忽略
RegionId String cn-hangzhou

DMS服务地域,取值请参见RegionID参数说明

返回数据

名称 类型 示例值 描述
RequestId String F4E2A94B-604F-43FF-93E7-F4EE3DCF412E

请求ID。

ErrorCode String 404

错误码。

ErrorMessage String The specified instance already exists.

错误消息。

Success Boolean true

请求是否成功,返回值如下:

  • true:请求成功
  • false:请求失败

示例

请求示例

http(s)://[Endpoint]/?Action=RegisterInstance
&Tid=3***
&InstanceType=MySQL
&InstanceSource=RDS
&NetworkType=VPC
&EnvType=product
&EcsInstanceId=i-2zei9gs1t7h8l7ac****
&VpcId=vpc-xxxxxxxxxxxxxxxxxxxxx
&EcsRegion=cn-hangzhou
&Host=172.XX.XXX.254
&Port=3306
&Sid=XXX
&DatabaseUser=dmstest
&DatabasePassword=******
&InstanceAlias=测试实例
&DbaUid=22275482072787****
&SafeRule=测试使用
&QueryTimeout=60
&ExportTimeout=600
&DataLinkName=dblink_test
&DdlOnline=2
&UseDsql=1
&SkipTest=true
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<RegisterInstanceResponse>
    <RequestId>F4E2A94B-604F-43FF-93E7-F4EE3DCF412E</RequestId>
    <ErrorCode>404</ErrorCode>
    <ErrorMessage>The specified instance already exists.</ErrorMessage>
    <Success>true</Success>
</RegisterInstanceResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "F4E2A94B-604F-43FF-93E7-F4EE3DCF412E",
  "ErrorCode" : "404",
  "ErrorMessage" : "The specified instance already exists.",
  "Success" : true
}

错误码

访问错误中心查看更多错误码。

Python sdk示例

示例为VPC专线实例的录入。


#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkdms_enterprise.request.v20181101.RegisterInstanceRequest import RegisterInstanceRequest
client = AcsClient(
    "<your-access-key-id>",
    "<your-access-key-secret>",
    "<your-region-id>"
)
# VPC_IDC实例注册示例
request = RegisterInstanceRequest()
# 租户ID
request.set_Tid(1)
# 实例host
request.set_Host("192.168.16.113")
# 实例port
request.set_Port(3314)
# 实例db类型 eg : MySQL
request.set_InstanceType("MySQL")
# 实例来源 eg : VPC_IDC
request.set_InstanceSource("VPC_IDC")
# 网络类型 type: eg : VPC
request.set_NetworkType("VPC")
request.set_EnvType("PRODUCT")
# request.set_EcsInstanceId()
# 实例 vpc id
request.set_VpcId("实例 VPC ID")
# 实例 ecs region eg: cn-hangzhou
request.set_EcsRegion("实例 ecs region")
# request.set_Sid();
# 实例db登录用户
request.set_DatabaseUser("实例db登录用户")
# 实例db登录密码
request.set_DatabasePassword("实例db登录密码")
# 实例别名, 方便DMS企业版里面区分实例用
request.set_InstanceAlias("实例别名")
# 实例dba 阿里云uid(此用户必须先在DMS企业版录入, 或者使用API提前录入)
request.set_DbaUid(-1)
request.set_SafeRule("DMS企业版里面配置的安全规则的规则名")
request.set_QueryTimeout(60)
request.set_ExportTimeout(600)
response = client.do_action_with_exception(request)
print response