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 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())