Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
Requirements: full backup database, but the database is relatively large, if mysqldump backup mysql in a heavy load on other machines, the study api documentation Ali wrote a python script in their linux automatic backup with regular tasks.
First, install the SDK module Ali cloud rds
pip install aliyun-python-sdk-rds
参考地址:https://help.aliyun.com/document_detail/100865.html
本地用的python环境是最新的python3.8.0
服务器上用的python环境是python3.7.4
Second, create an instance of RDS Ali cloud Python SDK interface to call the RDS CreateDBInstance
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#安装:pip install aliyun-python-sdk-rds
from aliyunsdkcore.client import AcsClient
from aliyunsdkrds.request.v20140815.CreateBackupRequest import CreateBackupRequest
from aliyunsdkcore.profile import region_provider
region_provider.modify_point('Rds', 'cn-shanghai', 'rds.aliyuncs.com')
client = AcsClient(
"<your-access-key-id>",
"<your-access-key-secret>",
"<your-region-id>"
);
#创建备份的RDS实例
request = CreateBackupRequest()
print(request)
参考地址:https://helpcdn.aliyun.com/document_detail/67121.html
Third, call CreateBackup interface to create a backup set as an example
#系统规定参数,取值:CreateBackup
request.set_action_name("CreateBackup")
#实例ID
request.set_DBInstanceId("**************")
#备份类型, Logical:逻辑备份;Physical:物理备份;Snapshot:快照备份。默认值:Physical
request.set_BackupMethod("Logical")
#备份策略,db:单库备份;instance:实例备份
request.set_BackupStrategy('db')
#数据库列表,多个数据库之间用英文逗号(,)隔开
request.set_DBName('ds_sys')
#备份方式,Auto:自动选择全量备份或增量备份;FullBackup:全量备份。默认值:Auto。
#request.set_BackupType("Auto")
response = client.do_action_with_exception(request)
参考地址:https://help.aliyun.com/document_detail/26272.html
Fourth, the full backup codes
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from aliyunsdkcore.client import AcsClient
from aliyunsdkrds.request.v20140815.CreateBackupRequest import CreateBackupRequest
from aliyunsdkcore.profile import region_provider
region_provider.modify_point('Rds', 'cn-shanghai', 'rds.aliyuncs.com')
client = AcsClient(
"**************",
"**************",
"cn-shanghai"
)
#备份RDS
request = CreateBackupRequest()
#系统规定参数,取值:CreateBackup
request.set_action_name("CreateBackup")
#实例ID
request.set_DBInstanceId("**************")
#备份类型, Logical:逻辑备份;Physical:物理备份;Snapshot:快照备份。默认值:Physical
request.set_BackupMethod("Logical")
#备份策略,db:单库备份;instance:实例备份
request.set_BackupStrategy('db')
#数据库列表,多个数据库之间用英文逗号(,)隔开
request.set_DBName('ds_sys')
#备份方式,Auto:自动选择全量备份或增量备份;FullBackup:全量备份。默认值:Auto。
#request.set_BackupType("Auto")
try:
response = client.do_action_with_exception(request)
print(response)
except Exception as e:
print(e)
##运行后返回结果:
b'{"RequestId":"ADC8B9B4-7CBD-484B-A646-A412825BF967","BackupJobId":"7349181"}'
View the backup tasks on the console