实例管理
更新时间:2023-04-20
实例管理
云数据库 RDS (Relational Database Service)是专业、高性能、高可靠的云数据库服务。云数据库 RDS 提供 Web 界面进行配置、操作数据库实例,还为您提供可靠的数据备份和恢复、完备的安全管理、完善的监控、轻松扩展等功能支持。相对于自建数据库,云数据库 RDS 具有更经济、更专业、更高效、更可靠、简单易用等特点,使您能更专注于核心业务。
创建RDS主实例
使用以下代码可以创建一个RDS主实例
Plain Text
1# 用户自定义实例名,可选
2instance_name = 'rds-py-create'
3# 计费相关参数,pay_method取值为 预付费:Prepaid,后付费:Postpaid;reservationLength:时长,[1,2,3,4,5,6,7,8,9,12,24,36],支付方式为后支付时不需要设置,预支付时必须设置;reservationTimeUnit:时间单位,Month,支付方式为后支付时不需要设置,预支付时必须设置;必选
4billing = model.Billing(pay_method='Postpaid')
5# 批量创建云数据库 RDS 实例个数, 最大不超过10;默认1,可选
6purchase_count = 1
7# 指定rds的数据库引擎,取值mysql,sqlserver,postgresql,必选
8engine= 'MySql'
9# 指定rds的数据库版本,必选
10engine_version = '5.7'
11# 所属系列。Singleton:单机基础版,Standard:双机高可用版,可选
12category = 'Standard'
13# CPU核数,必选
14cpu_count = 1
15# 套餐内存大小,单位GB,必选
16memory_capacity = 2
17# 套餐磁盘大小,单位GB。每5G递增,必选
18volume_capacity = 100
19# 磁盘类型。normal_io : 本地盘ssd磁盘;cloud_high : 高性能云磁盘;cloud_nor :通用型SSD;cloud_enha: 增强型SSD,必选
20disk_io_type = 'cloud_enha'
21# vpc,如果不提供则属于默认vpc,可选
22vpc_id = 'vpc-ph7237ym686c'
23# 是否进行直接支付,默认false,设置为直接支付的变配订单会直接扣款,不需要在走支付逻辑,可选
24is_direct_pay = bool(1)
25# vpc内,每个可用区的subnetId;如果不是默认vpc则必须指定 subnetId,可选
26subnets = [
27 model.SubnetMap(u'cn-bj-d', u'sbn-p1va817v3qn0')
28]
29# 实例绑定的标签信息,可选
30#tags = [
31# model.Tag(u'key', u'value'),
32# model.Tag(u'zyh', u'haha')
33#]
34# 参数模板ID,可选
35#parameter_template_id = "167"
36# 克隆实例的参数
37#initial_data_reference = model.InitialDataReference(instance_id='rds-gvQDRheI', reference_type='snapshot', snapshot_id='1681225244867371501')
38# 库表恢复到新实例,恢复的库表信息
39#data = [
40# model.RecoveryToSourceInstanceModel(db_name='test2', new_dbname='test22', restore_mode='table',
41# tables=[
42# model.Tables(table_name='table1', new_tablename='table11')
43# ]
44# )
45#]
46response = rds_client.create_instance(instance_name=instance_name, billing=billing,
47 purchase_count=purchase_count, engine=engine,
48 engine_version=engine_version, category=category,
49 cpu_count=cpu_count, memory_capacity=memory_capacity,
50 volume_capacity=volume_capacity, disk_io_type=disk_io_type,
51 vpc_id=vpc_id, subnets=subnets,
52 is_direct_pay=is_direct_pay)
创建RDS只读实例
使用以下代码可以创建一个RDS只读实例
Plain Text
1# 用户自定义实例名,可选
2instance_name = 'rds-py-create-read'
3# 主实例ID,必选
4source_instance_id='rds-6fGKPL1O'
5# 计费相关参数,必选
6billing = model.Billing(pay_method='Postpaid')
7# CPU核数,必选
8cpu_count = 1
9# 套餐内存大小,单位GB,必选
10memory_capacity = 1
11# 套餐磁盘大小,单位GB。每5G递增,必选
12volume_capacity = 100
13# vpc,如果不提供则属于默认vpc,可选
14vpc_id = 'vpc-ph7237ym686c'
15# 是否进行直接支付,默认false,设置为直接支付的变配订单会直接扣款,不需要在走支付逻辑,可选
16is_direct_pay = bool(1)
17# vpc内,每个可用区的subnetId;如果不是默认vpc则必须指定 subnetId,可选
18subnets = [
19 model.SubnetMap(u'cn-bj-d', u'sbn-p1va817v3qn0')
20]
21response = rds_client.create_read_instance(instance_name=instance_name, source_instance_id=source_instance_id,
22 billing=billing, vpc_id=vpc_id, is_direct_pay=is_direct_pay,
23 subnets=subnets,
24 cpu_count=cpu_count, memory_capacity=memory_capacity,
25 volume_capacity=volume_capacity)
创建RDS代理实例
使用以下代码可以创建一个RDS代理实例
Plain Text
1# 用户自定义实例名,可选
2instance_name = 'rds-py-create-proxy'
3# 主实例ID,必选
4source_instance_id='rds-6fGKPL1O'
5# 计费相关参数,必选
6billing = model.Billing(pay_method='Postpaid')
7# 代理实例节点数。取值范围2,4,6,8,16,必选
8node_amount = 2
9# vpc,如果不提供则属于默认vpc,可选
10vpc_id = 'vpc-ph7237ym686c'
11# 是否进行直接支付,默认false,设置为直接支付的变配订单会直接扣款,不需要在走支付逻辑,可选
12is_direct_pay = bool(1)
13# vpc内,每个可用区的subnetId;如果不是默认vpc则必须指定 subnetId,可选
14subnets = [
15 model.SubnetMap(u'cn-bj-d', u'sbn-p1va817v3qn0')
16]
17response = rds_client.create_proxy_instance(instance_name=instance_name, source_instance_id=source_instance_id,
18 billing=billing, vpc_id=vpc_id, is_direct_pay=is_direct_pay,
19 subnets=subnets, node_amount=node_amount)
查询RDS列表
使用以下代码可以查询RDS列表。
Plain Text
1# marke:批量获取列表的查询的起始位置,是一个由系统生成的字符串,可选
2# maxKeys:每页包含的最大数量(主实例),最大数量通常不超过1000,缺省值为1000,可选
3response = rds_client.list_instances(max_keys=10)
查询指定RDS实例信息
使用以下代码可以查询指定RDS实例信息。
Plain Text
1 # instance_id:指定实例Id
2 response = rds_client.get_instance_detail("instance_id")
3 LOG.debug('\n%s', response)
删除RDS实例
使用以下代码可以删除RDS实例。
Plain Text
1# instance_ids:实例Id,多个实例间用英文半角逗号","隔开,最多可输入10个
2response = rds_client.delete_instance("instance_ids")
3LOG.debug('\n%s', response)
RDS实例扩缩容
使用以下代码可以对RDS实例扩缩容操作。
Plain Text
1# instance_id:实例Id
2instance_id = 'rds-UK8i9we1'
3# CPU核数,可选
4cpu_count = 1
5# 套餐内存大小,单位GB,可选
6memory_capacity = 2
7# 套餐磁盘大小,单位GB。每5G递增,可选
8volume_capacity = 100
9# 代理实例节点数。取值范围2,4,6,8,16,可选
10#node_amount = 4
11# 是否进行直接支付,默认false,设置为直接支付的变配订单会直接扣款,不需要在走支付逻辑,可选
12is_direct_pay = bool(1)
13response = rds_client.resize_instance(instance_id=instance_id, cpu_count=cpu_count,
14 memory_capacity=memory_capacity, volume_capacity=volume_capacity,
15 is_direct_pay=is_direct_pay)
重启实例
使用以下代码可重启实例
Plain Text
1# instance_id:实例Id
2response = rds_client.reboot_instance("rds-cteusMhZ")
启动实例
使用以下代码可重启实例
Plain Text
1# instance_id:实例Id
2instance_id = "rds-cteusMhZ"
3response = rds_client.start_instance(instance_id=instance_id)
暂停实例
使用以下代码可以重启实例
Plain Text
1# instance_id:实例Id
2instance_id = "rds-cteusMhZ"
3response = rds_client.suspend_instance(instance_id=instance_id)
更新实例名称
使用以下代码可以更新实例名称
Plain Text
1# instance_id:实例Id
2instance_id = "rds-cteusMhZ"
3# instance_name:实例名
4instance_name = "py-test"
5response = rds_client.rename_instance(instance_id=instance_id, instance_name=instance_name)
更新实例同步模式
使用以下代码可以更新实例同步模式
Plain Text
1# instance_id:实例Id
2instance_id = "rds-cteusMhZ"
3#sync_mode:同步模式。异步复制:Async;半同步复制:Semi_sync
4sync_mode = "Semi_sync"
5response = rds_client.modify_sync_mode_instance(instance_id=instance_id, sync_mode=sync_mode)
6
更新实例连接信息
使用以下代码可以更新实例连接信息
Plain Text
1# instance_id:实例Id
2instance_id = "rds-cteusMhZ"
3#address:域名前缀。域名前缀由小写字母和数字组成,以小写字母开头,长度在3-30之间
4address = "python"
5response = rds_client.modify_endpoint_instance(instance_id=instance_id, address=address)
6
更新实例连接信息
使用以下代码可以更新实例连接信息
Plain Text
1# instance_id:实例Id
2instance_id = "rds-cteusMhZ"
3#address:域名前缀。域名前缀由小写字母和数字组成,以小写字母开头,长度在3-30之间
4address = "python"
5response = rds_client.modify_endpoint_instance(instance_id=instance_id, address=address)
6
更新实例公网访问状态
使用以下代码可以更新实例公网访问状态
Plain Text
1# instance_id:实例Id
2instance_id = "rds-cteusMhZ"
3#true:开启公网访问;false:关闭公网访问
4public_access = bool(1)
5response = rds_client.modify_public_access_instance(instance_id=instance_id, public_access=public_access)
6LOG.debug('\n%s', response)
7
更新时间窗口
使用以下代码可以更新时间窗口
Plain Text
1# 实例维护时间窗口的开始时间,local时间,如17:00:00
2maintain_start_time = "19:00:00"
3# 实例维护时间窗口的持续时间,单位是小时,如:1;每1个小时为一个时间段,开始时间+持续时间不可跨天
4maintain_duration= 1
5# instance_id:实例Id
6instance_id = "rds-cteusMhZ"
7response = rds_client.maintaintime_instance(instance_id=instance_id,
8 maintain_duration=maintain_duration,
9 maintain_start_time=maintain_start_time)
获取价格
使用以下代码可以获取价格
Plain Text
1# engine:数据库引擎。MySQL;sqlserver;postgresql,必选
2# engine_version:数据库版本。MySQL:5.5/5.6/5.7/8.0; sqlserver:2012/2016/2008r2/2012sp3/2016sp1; postgresql:10/11/12/13,必选
3# cpu_count:CPU核数,必选
4# allocated_memory_in_g_b:套餐内存大小,单位GB,必选
5# allocated_storage_in_g_b:套餐磁盘大小,单位GB,必选
6# category:所属系列。 Singleton:单机基础版,Standard:双机高可用版。 默认Standard,必选
7# disk_io_type:磁盘类型。 normal_io : 本地盘ssd磁盘 cloud_high : 高性能云磁盘 ,必选cloud_nor : 通用型SSD cloud_enha: 增强型SSD
8instance = model.Instance(engine='sqlserver', engine_version='2016', cpu_count=2, allocated_memory_in_g_b=8,
9 allocated_storage_in_g_b=50, category='Singleton', disk_io_type='cloud_enha')
10# duration:时长。支付方式为后支付时不需要设置,预支付时必须设置。时间单位,Month,必选
11duration = 1
12# 购买数量,必选
13number = 1
14# 付费方式。 预付费:Prepaid,后付费:Postpaid,必选
15product_type = "prepay"
16response = rds_client.price_instance(instance=instance, duration=duration, number=number,
17 product_type=product_type)
18
开启自动续费
使用以下代码可以为已创建的预付费实例开启自动续费
Plain Text
1# instance_id:实例Id
2instance_ids = ["rds-cteusMhZ"]
3// 自动续费单位("year";"month")必选
4auto_renew_time_unit = "month"
5// 自动续费时长(续费单位为year 不大于3,续费单位为month 不大于9)必选
6auto_renew_time = 1
7response = rds_client.auto_renew_instance(instance_ids=instance_ids, auto_renew_time_unit=auto_renew_time_unit, auto_renew_time=auto_renew_time)
获取可用区列表
使用以下代码可以获取可用区列表
Plain Text
1response = rds_client.zone()
获取子网列表
使用以下代码可以获取子网列表
Plain Text
1#vpc_id:所属vpc的id,可选
2#zone_name:所属可用区的名称,可选
3response = rds_client.zone()
