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