2. 前置条件
1.已 注册 华为云,并完成 实名认证 。
2.获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。
3.已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 访问密钥 。
4.已具备开发环境 ,支持Java JDK 1.8及其以上版本。
3. 安装SDK
您可以通过Maven方式获取和安装SDK,首先需要在您的操作系统中下载并安装Maven ,安装完成后您只需要在Java项目的pom.xml文件中加入相应的依赖项即可。
具体的SDK版本号请参见 SDK开发中心 。
Copied!
<dependency>
<groupId>com.huaweicloud.sdk</groupId>
<artifactId>huaweicloud-sdk-gaussdbforopengauss</artifactId>
<version>3.0.89</version>
</dependency>
4.代码示例
以下代码展示如何使用SDK创建实例:
Copied!
package com.huaweicloud.gaussdbforopengauss.sdk.demo;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.GaussDBforopenGaussClient;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.BackupPolicy;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ListBackupsRequest;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ListBackupsResponse;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.SetBackupPolicyRequest;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.SetBackupPolicyRequestBody;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.SetBackupPolicyResponse;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ShowBackupPolicyRequest;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ShowBackupPolicyResponse;
import com.huaweicloud.sdk.gaussdbforopengauss.v3.region.GaussDBforopenGaussRegion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BackupDemo {
private static final Logger logger = LoggerFactory.getLogger(BackupDemo.class.getName());
public static void main(String[] args) {
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
String instanceId = "<YOUR INSTANCE_ID>";
ICredential auth = new BasicCredentials()
.withAk(ak)
.withSk(sk);
GaussDBforopenGaussClient client = GaussDBforopenGaussClient.newBuilder()
.withCredential(auth)
.withRegion(GaussDBforopenGaussRegion.CN_NORTH_4)
.build();
showBackupPolicy(client, instanceId);
BackupPolicy backupPolicyBody = new BackupPolicy();
backupPolicyBody.withKeepDays(7)
.withStartTime("<START_TIME>")
.withPeriod("<PERIOD>")
.withDifferentialPeriod("<DIFFERENTIAL_PERIOD>");
setBackupPolicy(client, instanceId, backupPolicyBody);
listBackups(client, instanceId);
}
private static void showBackupPolicy(GaussDBforopenGaussClient client, String instanceId) {
ShowBackupPolicyRequest request = new ShowBackupPolicyRequest();
request.withInstanceId(instanceId);
try {
ShowBackupPolicyResponse response = client.showBackupPolicy(request);
logger.info(response.toString());
} catch (ConnectionException e) {
logger.error("ConnectionException", e);
} catch (RequestTimeoutException e) {
logger.error("RequestTimeoutException ", e);
} catch (ServiceResponseException e) {
logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg());
}
}
private static void setBackupPolicy(GaussDBforopenGaussClient client, String instanceId, BackupPolicy backupPolicyBody) {
SetBackupPolicyRequest request = new SetBackupPolicyRequest();
request.withInstanceId(instanceId);
SetBackupPolicyRequestBody body = new SetBackupPolicyRequestBody();
body.withBackupPolicy(backupPolicyBody);
request.withBody(body);
try {
SetBackupPolicyResponse response = client.setBackupPolicy(request);
logger.info(response.toString());
} catch (ConnectionException e) {
logger.error("ConnectionException", e);
} catch (RequestTimeoutException e) {
logger.error("RequestTimeoutException ", e);
} catch (ServiceResponseException e) {
logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg());
}
}
private static void listBackups(GaussDBforopenGaussClient client, String instanceId) {
ListBackupsRequest request = new ListBackupsRequest();
request.withInstanceId(instanceId);
try {
ListBackupsResponse response = client.listBackups(request);
logger.info(response.toString());
} catch (ConnectionException e) {
logger.error("ConnectionException", e);
} catch (RequestTimeoutException e) {
logger.error("RequestTimeoutException ", e);
} catch (ServiceResponseException e) {
logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg());
}
}
}
0. 版本说明
本示例配套的SDK版本为:3.0.89
1. 简介
GaussDB是基于华为主导的openGauss生态推出的企业级分布式关系型数据库。该产品具备企业级复杂事务混合负载能力,同时支持分布式事务,同城跨AZ部署,数据0丢失,支持1000+的扩展能力,PB级海量存储。同时拥有云上高可用,高可靠,高安全,弹性伸缩,一键部署,快速备份恢复,监控告警等关键能力,能为企业提供功能全面,稳定可靠,扩展性强,性能优越的企业级数据库服务。 本示例展示如何通过java版本的SDK方式对备份操作的示例代码。
2. 前置条件
1.已 注册 华为云,并完成 实名认证 。
2.获取华为云开发工具包(SDK),您也可以查看安装JAVA SDK。
3.已获取华为云账号对应的Access Key(AK)和Secret Access Key(SK)。请在华为云控制台“我的凭证 > 访问密钥”页面上创建和查看您的AK/SK。具体请参见 访问密钥 。
4.已具备开发环境 ,支持Java JDK 1.8及其以上版本。
3. 安装SDK
您可以通过Maven方式获取和安装SDK,首先需要在您的操作系统中下载并安装Maven ,安装完成后您只需要在Java项目的pom.xml文件中加入相应的依赖项即可。
具体的SDK版本号请参见 SDK开发中心 。
<dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-gaussdbforopengauss</artifactId> <version>3.0.89</version> </dependency>
4.代码示例
以下代码展示如何使用SDK创建实例:
/* * Copyright (c) Huawei Technologies Co., Ltd. 2022-2022. All rights reserved. */ package com.huaweicloud.gaussdbforopengauss.sdk.demo; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.gaussdbforopengauss.v3.GaussDBforopenGaussClient; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.BackupPolicy; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ListBackupsRequest; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ListBackupsResponse; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.SetBackupPolicyRequest; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.SetBackupPolicyRequestBody; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.SetBackupPolicyResponse; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ShowBackupPolicyRequest; import com.huaweicloud.sdk.gaussdbforopengauss.v3.model.ShowBackupPolicyResponse; import com.huaweicloud.sdk.gaussdbforopengauss.v3.region.GaussDBforopenGaussRegion; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * GaussDB(for openGauss)备份相关示例代码 * * @since 2022-06-13 */ public class BackupDemo { private static final Logger logger = LoggerFactory.getLogger(BackupDemo.class.getName()); public static void main(String[] args) { // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份认证为例,运行示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 String ak = System.getenv("HUAWEICLOUD_SDK_AK"); String sk = System.getenv("HUAWEICLOUD_SDK_SK"); String instanceId = "<YOUR INSTANCE_ID>"; ICredential auth = new BasicCredentials() .withAk(ak) .withSk(sk); GaussDBforopenGaussClient client = GaussDBforopenGaussClient.newBuilder() .withCredential(auth) .withRegion(GaussDBforopenGaussRegion.CN_NORTH_4) .build(); // 查看自动备份策略 showBackupPolicy(client, instanceId); // 设置自动备份策略 BackupPolicy backupPolicyBody = new BackupPolicy(); backupPolicyBody.withKeepDays(7) .withStartTime("<START_TIME>") .withPeriod("<PERIOD>") .withDifferentialPeriod("<DIFFERENTIAL_PERIOD>"); setBackupPolicy(client, instanceId, backupPolicyBody); // 查询备份列表 listBackups(client, instanceId); } private static void showBackupPolicy(GaussDBforopenGaussClient client, String instanceId) { ShowBackupPolicyRequest request = new ShowBackupPolicyRequest(); request.withInstanceId(instanceId); try { ShowBackupPolicyResponse response = client.showBackupPolicy(request); logger.info(response.toString()); } catch (ConnectionException e) { logger.error("ConnectionException", e); } catch (RequestTimeoutException e) { logger.error("RequestTimeoutException ", e); } catch (ServiceResponseException e) { logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg()); } } private static void setBackupPolicy(GaussDBforopenGaussClient client, String instanceId, BackupPolicy backupPolicyBody) { SetBackupPolicyRequest request = new SetBackupPolicyRequest(); request.withInstanceId(instanceId); SetBackupPolicyRequestBody body = new SetBackupPolicyRequestBody(); body.withBackupPolicy(backupPolicyBody); request.withBody(body); try { SetBackupPolicyResponse response = client.setBackupPolicy(request); logger.info(response.toString()); } catch (ConnectionException e) { logger.error("ConnectionException", e); } catch (RequestTimeoutException e) { logger.error("RequestTimeoutException ", e); } catch (ServiceResponseException e) { logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg()); } } private static void listBackups(GaussDBforopenGaussClient client, String instanceId) { ListBackupsRequest request = new ListBackupsRequest(); request.withInstanceId(instanceId); try { ListBackupsResponse response = client.listBackups(request); logger.info(response.toString()); } catch (ConnectionException e) { logger.error("ConnectionException", e); } catch (RequestTimeoutException e) { logger.error("RequestTimeoutException ", e); } catch (ServiceResponseException e) { logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg()); } } }
5.接口及参数说明
请见 查看自动备份策略API 您可以在 API Explorer 中直接运行调试该接口。
请见 设置自动备份策略API 您可以在 API Explorer 中直接运行调试该接口。
请见 查询备份列表API 您可以在 API Explorer 中直接运行调试该接口。
修订记录