RegisterInstance - 录入新的数据库实例(旧)

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

接口说明

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

调试

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

授权信息

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

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

请求参数

名称类型必填描述示例值
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 PostgreSQL 版(兼容 Oracle)、Redis。
    1
    SkipTestboolean

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

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

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

    31***
    TemplateTypestring

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

    INNER
    DbaUidByStringstring

    用于替换 DbaUid 字段,可输入角色账号等非数字 DbaUid

    22275482072787****

    返回参数

    名称类型描述示例值
    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
    }

    错误码

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

    变更历史

    变更时间变更内容概要操作
    2023-11-07OpenAPI 入参发生变更查看变更详情

    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