备份管理(新)
更新时间:2024-10-14
备份管理
修改备份策略
使用以下代码修改备份策略。
Java
1public void modifyBackup(RdsClient rdsClient) {
2 RdsModifyBackupRequest request = new RdsModifyBackupRequest();
3 //指定实例 ID,必选
4 request.setInstanceId("rds-h1XXr7xq");
5 //以英文半角逗号分隔的备份时日间,周日为第一天,取值0
6举例:"0,1,2,3,5,6",必选
7 request.setBackupDays("0");
8 //备份开始时间,这里的时间是用的UTC时间,必选
9 request.setBackupTime("17:00:00Z");
10 //是否启用备份数据持久化,必选
11 request.setPersistent(true);
12 //数据备份保留时长,范围1-730天;未启用则为0或不填,可选
13 request.setExpireInDays(10);
14 //日志备份保留时长,范围1-730天;未启用则为0或不填,可选
15 request.setLogBackupRetainDays(10);
16 //是否开启高频备份,默认为 false,可选
17 request.setIncrementalDataBackupEnable(true);
18 //增量数据备份间隔(秒)最小粒度是小时级别,开启高频备份后必传,值需要可以被3600整除,可选
19 request.setIncrementalDataBackupInterval(6);
20 //最新数据备份保留天数(实例删除后),天级别,不传默认0天,可选
21 request.setLatestDataBackupRetainDays(3);
22 //增量备份保留时长,可选
23 request.setRetentionPeriod(10);
24 //增量备份保留策略时长单位,取值为 week、month,默认为 week,可选
25 request.setTimeUnit("week");
26 AbstractBceResponse response = rdsClient.modifyBackup(request);
27 print("modifyBackup", response);
28 }
查询备份列表
使用以下代码可以查询指定实例的备份列表。
Java
1public void getBackupList(RdsClient rdsClient) {
2 RdsGetBackupListRequest request = new RdsGetBackupListRequest();
3 //实例ID列表,必选
4 request.setInstanceId("rds-h1XXr7xq");
5 //查找的分页的backupId,默认值为-1,表示第一页,可选
6 request.setMarker("-1");
7 //每一页的分页条数,默认值为1000
8 request.setMaxKeys(1000);
9 RdsGetBackupListResponse backupList = rdsClient.getBackupList(request);
10 print("getBackupList", backupList);
11 }
查询备份信息
使用以下代码可以查询备份信息。
Java
1public void getBackupInfo(RdsClient rdsClient) {
2RdsBackupInfoRequest request = new RdsBackupInfoRequest();
3 //实例 ID,必选
4 request.setInstanceId("rds-h1XXr7xq");
5 //备份 ID,必选
6 request.setBackupId("1689087605048013371");
7 RdsBackupInfoResponse backupInfo = rdsClient.getBackupInfo(request);
8 print("getBackupInfo", backupInfo);
9 }
按备份集进行库表恢复
使用以下代码可以按备份集进行库表恢复
Java
1public void recoverForBackUpSet(RdsClient rdsClient) {
2 RdsRecoverForBackUpSetRequest request = new RdsRecoverForBackUpSetRequest();
3 //实例ID,必选
4 request.setInstanceId("rds-JC7L0yFI");
5 //源实例ID,与URL参数instanceId一样,可以不写,可选
6 request.setSourceInstanceId("rds-1Cm4tVAO");
7 //恢复指定的实例ID,忽略此参数默认恢复到原实例,可选
8 request.setTargetInstanceId("rds-1Cm4tVAO");
9 //备份 ID,必选
10 request.setSnapshotId("1720637060912738501");
11 //要恢复的数据信息,必选
12 List<RecoveryToSourceInstanceModel> datas = new ArrayList<>();
13 RecoveryToSourceInstanceModel data = new RecoveryToSourceInstanceModel();
14 List<RecoveryToSourceInstanceTableModel> tables = new ArrayList<>();
15 RecoveryToSourceInstanceTableModel table = new RecoveryToSourceInstanceTableModel();
16 //需要恢复的表名,必选
17 table.setTableName("newcxtest");
18 //恢复后表名,必选
19 table.setNewTablename("cxtest");
20 //需要恢复的库名称,必选
21 data.setDbName("newdeadlock");
22 ////恢复后库名称。恢复至原实例时,dbName和newDbname不一样。恢复至指定实例时,dbName和newDbname可以一样,必选
23 data.setNewDbname("deadlock");
24 data.setRestoreMode("table");
25 data.setTables(tables);
26
27 datas.add(data);
28 request.setData(datas);
29
30 AbstractBceResponse response = rdsClient.recoverForBackUpSet(request);
31 print("recoverForBackUpSet", response);
32 }
按时间点进行库表恢复
可以使用以下代码按时间点进行库表恢复
Java
1public void recoverForTimeNode(RdsClient rdsClient) {
2 RdsRecoverForTimeNodeRequest request = new RdsRecoverForTimeNodeRequest();
3 //实例ID,必选
4 request.setInstanceId("rds-1Cm4tVAO");
5 //与instanceId是一样的,此项不用填写,可选
6 request.setSourceInstanceId("rds-1Cm4tVAO");
7 //要恢复的实例ID。 恢复到指定实例时,必填,值为指定的实例ID,如果恢复到原有实例,可以不写,可选
8 request.setTargetInstanceId("rds-1Cm4tVAO");
9 //备份时间点,必选
10 request.setDatetime("2024-07-10T18:36:46Z");
11 //要恢复的数据信息,必选
12 List<RecoveryToSourceInstanceModel> datas = new ArrayList<>();
13 RecoveryToSourceInstanceModel data = new RecoveryToSourceInstanceModel();
14 //表的对象集合,当restoreMode为table必填项,恢复目标实例 为database必项为非填项,可选
15 List<RecoveryToSourceInstanceTableModel> tables = new ArrayList<>();
16 RecoveryToSourceInstanceTableModel table = new RecoveryToSourceInstanceTableModel();
17 //需要恢复的表名,必选
18 table.setTableName("deadlock");
19 //恢复后表名,必选
20 table.setNewTablename("newdeadlock");
21 tables.add(table);
22 //需要恢复的库名称,必选
23 data.setDbName("cxtest");
24 //恢复后库名称。恢复至原实例时,dbName和newDbname不一样。恢复至指定实例时,dbName和newDbname可以一样,必选
25 data.setNewDbname("newcxtest");
26 //恢复模式,database(数据库),table(表)任选其一,必选
27 data.setRestoreMode("table");
28 data.setTables(tables);
29 datas.add(data);
30 request.setData(datas);
31 AbstractBceResponse response = rdsClient.recoverForTimeNode(request);
32 print("recoverForTimeNode", response);
33 }
获取binlog信息
使用以下代码可以获取binlog信息
Java
1public void getBinLogInfo(RdsClient rdsClient) {
2 RdsGetBinLogInfoRequest request = new RdsGetBinLogInfoRequest();
3 //实例ID,必选
4 request.setInstanceId("rds-1Cm4tVAO");
5 //binlogId,必选
6 request.setLogId("1720685193973036601");
7 //下载有效时间(S),必选
8 request.setDownloadValidTimeInSec("1800");
9 AbstractBceResponse response = rdsClient.getBinLogInfo(request);
10 print("getBinLogInfo", response);
11 }
获取binlog列表
使用以下代码可以获取binlog列表
Java
1public void getBinLogList(RdsClient rdsClient) {
2 RdsGetBinLogListRequest request = new RdsGetBinLogListRequest();
3 //实例 ID,必选
4 request.setInstanceId("rds-1Cm4tVAO");
5 //日志列表备份开始时间,UTC时间,必选
6 request.setDatetime("2024-07-11T06:48:29Z");
7 AbstractBceResponse response = rdsClient.getBinLogList(request);
8 print("getBinLogList", response);
9 }
删除指定的备份集
使用以下代码可以删除指定的备份集
Java
1public void deleteTheSpecifiedBackupSet(RdsClient rdsClient) {
2 RdsDeleteSpecifiedBackUpRequest request = new RdsDeleteSpecifiedBackUpRequest();
3 //实例ID,必选
4 request.setInstanceId("rdsmsn17thg0i4p");
5 //手动全量备份 ID,必选
6 request.setSnapshotId("1720671279584629601");
7 AbstractBceResponse response = rdsClient.deleteTheSpecifiedBackupSet(request);
8 print("deleteTheSpecifiedBackupSet", response);
9 }
手动发起全量的物理备份
使用以下代码可以手动发起全量的物理备份
Java
1public void manuallyInitiateFullPhysicalBackup(RdsClient rdsClient) {
2 RdsFullPhysicalBackupRequest request = new RdsFullPhysicalBackupRequest();
3 //实例 ID,必选
4 request.setInstanceId("rds-5WIldjI3");
5 //窗口字段。操作执行方式,有两种取值:timewindow、immediate。
6 //其中timewindow表示在时间窗口内执行,immediate表示立即执行。默认为immediate。实例默认的时间窗口为05:00~06:00,可选
7 request.setEffectiveTime("timewindow");
8 //备份类型,支持physical/snapshot, 取值为:snapshot,磁盘类型为ssd将不支持快照备份,可选
9 request.setDataBackupType("physical");
10 AbstractBceResponse response = rdsClient.manuallyInitiateFullPhysicalBackup(request);
11 print("manuallyInitiateFullPhysicalBackup", response);
12 }