搜索本产品文档关键词
备份管理(新)
所有文档
menu

云数据库 RDS

备份管理(新)

备份管理

修改备份策略

使用以下代码修改备份策略。

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    }
上一篇
其他接口
下一篇
知识库