全部产品
Search
文档中心

数据管理 DMS:RegisterInstance - 录入新的数据库实例

更新时间:Mar 17, 2023

在DMS中录入新的数据库实例。

接口说明

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

调试

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

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
dms:RegisterInstanceRead
    全部资源

请求参数

名称类型必填描述示例值
Tidlong

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

3***
InstanceTypestring

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

MySQL
InstanceSourcestring

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

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

网络类型,取值如下:

  • CLASSIC:经典网络
  • VPC:VPC网络
VPC
EnvTypestring

环境类型,取值如下:

  • product:生产环境
  • dev:开发环境
  • pre:预发环境
  • test:测试环境
  • sit:SIT环境
  • uat:UAT环境
  • pet:压测环境
  • stag:STAG环境
product
EcsInstanceIdstring

ECS的实例ID。

说明如果InstanceSource取值为ECS_OWN,此值必填。
i-2zei9gs1t7h8l7ac****
VpcIdstring

VPC ID。

说明如果InstanceSource取值为VPC_IDC时,此值必填。
vpc-xxxxxxxxxxxxxxxxxxxxx
EcsRegionstring

实例所在区域。

说明如果InstanceSource取值为RDS、ECS_OWN或VPC_IDC,此值必填。
cn-hangzhou
Hoststring

目标数据库的主机地址。

172.XX.XXX.254
Portinteger

目标数据库的访问端口。

3306
Sidstring

数据库SID。

说明如果InstanceType为ORACLE,此项必填。
XXX
DatabaseUserstring

数据库访问账号。

dmstest
DatabasePasswordstring

数据库访问密码。

******
InstanceAliasstring

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

测试实例
DbaUidlong

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

22275482072787****
SafeRulestring

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

测试使用
QueryTimeoutinteger

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

60
ExportTimeoutinteger

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

600
DataLinkNamestring

输入跨库查询datalink名称。

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

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

    • 0 :不使用
    • 1 :原生无锁优先,失败转DMS执行
    • 2 :DMS无锁变更执行
    说明支持的数据库类型:RDS MySQL、PolarDB MySQL引擎、MyBase MySQL、其他来源MySQL。
    2
    UseDsqlinteger

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

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

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

    • true:忽略
    • false:不忽略
    true
    EnableSellSitdstring
    • Y:开启敏感数据保护
    • NULL或其它:不开启敏感数据保护
    Y
    TemplateIdlong

    分类分级模板ID。您可以调用ListClassificationTemplates接口获取该参数的值。

    31***
    TemplateTypestring

    分类分级模板类型。您可以调用ListClassificationTemplates接口获取该参数的值。

    INNER

    返回参数

    名称类型描述示例值
    object
    RequestIdstring

    请求ID。

    F4E2A94B-604F-43FF-93E7-F4EE3DCF412E
    ErrorCodestring

    错误码。

    UnknownError
    ErrorMessagestring

    错误消息。

    UnknownError
    Successboolean

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

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

    示例

    正常返回示例

    JSON格式

    {
      "RequestId": "F4E2A94B-604F-43FF-93E7-F4EE3DCF412E",
      "ErrorCode": "UnknownError",
      "ErrorMessage": "UnknownError",
      "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