全部产品
专有网络 VPC

云数据库RDS版网络切换

更新时间:2017-08-23 16:11:53   分享:   

本文档介绍了如何通过控制台和API将云数据库RDS版的网络类型切换至专有网络,同时保留经典网络的访问地址。

注意

  • 经典网络的访问地址有保留时间限制,您可以根据需要指定保留期限。到期后,经典网络地址会自动被系统删除。在正式删除前,您会收到短信提醒。

  • 如果要切换的RDS实例是DRDS实例的一个分库,当RDS切换了网络类型后,DRDS与RDS之间的网络连通性会被破坏,需要手动修复。详情参考修复数据库分库链接

开始之前

在开始切换前,确认当前实例是否具备以下切换条件:

  • 确认数据库类型是否支持。支持的数据库类型包括MySQL、SQL Server、PostgreSQL和PPAS。

  • 确认连接模式是否支持。目前只支持高安全模式,如果是标准网络模式,参考以下步骤进行切换:

    1. 数据库连接页面,单击切换访问模式

      切换访问模式

    2. 在弹出的确认对话框,单击确定进行切换。

      确定切换

      链路的切换不会影响数据,可能会有闪断,需要客户端做好重连机制。

      切换中

  • 确认当前网络类型是否为经典网络。

  • 确认在当前数据库实例可用区下是否有可用的VPC和交换机。详情参考创建VPC创建交换机

通过控制台切换网络类型

  1. 登录RDS管理控制台

  2. 找到目标RDS实例,然后单击管理

  3. 在左侧导航栏,单击数据库连接

  4. 单击切换为专有网络

    注意:确保数据库的访问模式为高安全模式

    切换

  5. 在弹出的对话框中,执行以下操作:

    1. 选择切换的目标专有网络和交换机。

    2. 勾选保留原经典网络,然后选择保留时长。

      注意:选择保留经典网络后,经典网络下的ECS仍可访问数据,对业务无影响。当经典网络地址到期后,系统会自动删除经典网络地址,您将无法通过经典网络地址访问数据库。

    3. 单击确定

      保留

  6. 待切换任务结束后,在数据库连接页面,单击刷新

    您可以在控制台上查看新增的专有网络的访问地址和经典网络的访问地址及保留时间。您也可以单击修改过期时间,修改经典网络访问地址的保留时间。

    3

通过API切换网络类型

  1. 单击SDK链接下载相关SDK。

  2. 调用ModifyDBInstanceNetworkType接口进行网络切换。

    请求参数说明

    名称类型是否必须说明
    ActionString

    系统规定参数

    取值:ModifyDBInstanceNetworkType

    DBInstanceIdString实例 ID
    InstanceNetworkTypeString

    VPC:专有网络类型的实例

    Classic:经典网络类型的实例

    VPCIdString专有网络的ID
    VSwitchIdString

    交换机的ID

    如果指定了VPC ID,则该参数也必须指定

    PrivateIpAddressString

    输入交换机网段内的一个IP地址

    如果不输入,系统根据VPC ID和交换机ID自动分配一个私网IP地址

    RetainClassicString

    是否保留经典网络地址,默认False

    True:保留;False:不保留

    ClassicExpiredDaysString

    经典网络地址保留的天数,最短1天,最长180天,默认7天

    若选择保留经典网络地址,则该参数必传

    返回参数说明

    名称类型说明
    RequestIdString每次接口调用请求,无论成功与否,系统都会返回一个唯一识别码
    TaskIdString任务ID

    参考代码

    注意:当要选择保留经典网络地址时:

    • 配置RetainClassic参数,设置为True,保留经典网络地址。
    • 配置ClassicExpiredDays参数,设置保留时间。到期后将删除经典网络地址。
    1. import com.aliyuncs.DefaultAcsClient;
    2. import com.aliyuncs.IAcsClient;
    3. import com.aliyuncs.exceptions.ClientException;
    4. import com.aliyuncs.exceptions.ServerException;
    5. import com.aliyuncs.profile.DefaultProfile;
    6. import com.aliyuncs.profile.IClientProfile;
    7. import com.aliyuncs.rds.model.v20140815.ModifyDBInstanceNetworkTypeRequest;
    8. import com.aliyuncs.rds.model.v20140815.ModifyDBInstanceNetworkTypeResponse;
    9. import org.junit.Test;
    10. public class ModifyDBInstanceNetworkTypeTest {
    11. @Test
    12. public void switchNetwork_success() {
    13. ModifyDBInstanceNetworkTypeRequest request=new ModifyDBInstanceNetworkTypeRequest ();
    14. request.setInstanceId("<您的实例ID>");
    15. request.setInstanceNetworkType ("VPC");
    16. request. setVPCId("<VpcId:当TargetNetworkType为VPC时必填>");
    17. request.setVSwitchId("<VSwitchId:当TargetNetworkType时VPC时必填>");
    18. request.setRetainClassic("<是否保留CLASSIC的网络链接:True保留,False不保留>");
    19. request.setClassicExpiredDays("保留CLASSIC的网络链接的天数");
    20. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<您的AK>",
    21. "<您的Security>");
    22. IAcsClient client = new DefaultAcsClient(profile);
    23. try {
    24. ModifyDBInstanceNetworkTypeResponse response
    25. = client.getAcsResponse(request);
    26. System.out.println(response.getRequestId());
    27. }catch (ServerException e) {
    28. e.printStackTrace();
    29. }
    30. catch (ClientException e) {
    31. e.printStackTrace();
    32. }
    33. }
    34. }
  3. 调用DescribeDBInstanceNetInfo接口查看经典网络和专有网络的访问地址。

    请求参数

    名称类型是否必须说明
    ActionString

    系统规定参数

    取值:DescribeDBInstanceNetInfo

    DBInstanceIdString实例 ID

    返回参数

    名称类型说明
    DBInstanceNetInfosList实例的连接信息
    InstanceNetworkTypeString

    VPC:VPC类型的实例

    Classic:经典网络类型的实例

    DBInstanceNetInfo数据结构

    名称类型说明
    ConnectionStringStringDNS连接串
    IPAddressStringIP地址
    IPTypeString

    经典网络类型的实例的IP类型有:Inner、Public

    VPC类型的实例的IP类型有:Private、Public

    PortString端口信息
    VPCIdStringVPC ID
    VSwitchIdString交换机ID
    ExpiredTimeString过期时间

    错误描述

    名称错误码说明
    Forbidden.InstanceNotFound404The specified instance is not found.

    参考代码

    1. import com.aliyuncs.DefaultAcsClient;
    2. import com.aliyuncs.IAcsClient;
    3. import com.aliyuncs.exceptions.ClientException;
    4. import com.aliyuncs.exceptions.ServerException;
    5. import com.aliyuncs.profile.DefaultProfile;
    6. import com.aliyuncs.profile.IClientProfile;
    7. import com.aliyuncs.rds.model.v20140815.DescribeDBInstanceNetInfoRequest;
    8. import import com.aliyuncs.rds.model.v20140815.DescribeDBInstanceNetInfoResponse;
    9. import org.junit.Test;
    10. /**
    11. *
    12. */
    13. public class DescribeDBInstanceNetInfoTest {
    14. @Test
    15. public void describeDBInstanceNetInfo_success() {
    16. DescribeDBInstanceNetInfoRequest request=new DescribeDBInstanceNetInfoRequest();
    17. request.setInstanceId("<您的实例ID>");
    18. IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<您的AK>",
    19. "<您的Security>");
    20. IAcsClient client = new DefaultAcsClient(profile);
    21. try {
    22. DescribeDBInstanceNetInfoResponse response
    23. = client.getAcsResponse(request);
    24. System.out.println(response.getRequestId());
    25. }catch (ServerException e) {
    26. e.printStackTrace();
    27. }
    28. catch (ClientException e) {
    29. e.printStackTrace();
    30. }
    31. }
    32. }

延长保留时间

设置经典网络访问地址的保留时间后,您可以在过期前通过控制台延长其保留时间。

  1. 登录RDS管理控制台

  2. 找到目标RDS实例,然后单击管理

  3. 在左侧导航栏,单击数据库连接

  4. 在保留的经典网络地址区域,单击修改过期时间

    1

  5. 在弹出的对话框中,选择新的过期时间,单击确定

    在正式删除前,您会有短信提醒。

本文导读目录
本文导读目录
以上内容是否对您有帮助?