You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Java SDK在创建Azure SQL DW时禁用异地备份策略

没问题!我刚好做过类似的操作,用Java SDK创建Azure SQL数据仓库时禁用异地备份策略其实很 straightforward,我给你一步步拆解:

步骤说明与代码示例

核心逻辑是:在创建数据仓库的同时,直接配置**异地备份策略(Geo Backup Policy)**为禁用状态,对应Azure SDK里的GeoBackupPolicyState.DISABLED枚举值。

1. 依赖准备

确保你的项目引入了Azure SQL管理的SDK依赖,以Maven为例,在pom.xml中添加:

<dependency>
    <groupId>com.azure.resourcemanager</groupId>
    <artifactId>azure-resourcemanager-sql</artifactId>
    <version>1.41.4</version> <!-- 建议使用最新稳定版 -->
</dependency>

2. 完整代码实现

下面是包含认证、创建数据仓库并禁用异地备份的完整示例代码:

import com.azure.core.credential.DefaultAzureCredential;
import com.azure.resourcemanager.sql.SqlManager;
import com.azure.resourcemanager.sql.models.GeoBackupPolicyState;
import com.azure.resourcemanager.sql.models.SqlDatabase;
import com.azure.resourcemanager.sql.models.SqlDatabaseCreateOrUpdateParameters;
import com.azure.resourcemanager.sql.models.Sku;

public class CreateDWWithDisabledGeoBackup {
    public static void main(String[] args) {
        // 替换成你的资源信息
        String subscriptionId = "your-subscription-id";
        String resourceGroupName = "your-resource-group";
        String sqlServerName = "your-sql-server";
        String dwName = "your-data-warehouse";
        String region = "eastus"; // 替换成你的目标区域

        // 初始化Azure认证(推荐用DefaultAzureCredential,支持多种认证方式)
        DefaultAzureCredential credential = new DefaultAzureCredential();
        SqlManager sqlManager = SqlManager.authenticate(credential, subscriptionId);

        // 构建数据仓库创建参数
        SqlDatabaseCreateOrUpdateParameters dwParams = new SqlDatabaseCreateOrUpdateParameters()
                .withLocation(region)
                // 指定数据仓库的SKU,根据需求选择,比如DW100c
                .withSku(new Sku().withName("DW100c").withTier("DataWarehouse"))
                // 关键:禁用异地备份策略
                .withGeoBackupPolicy(
                        sqlManager.geoBackupPolicies().define("Default")
                                .withState(GeoBackupPolicyState.DISABLED)
                                .create()
                );

        // 执行创建操作
        SqlDatabase dataWarehouse = sqlManager.databases().createOrUpdate(
                resourceGroupName,
                sqlServerName,
                dwName,
                dwParams
        ).waitForCompletion();

        // 验证结果
        System.out.printf("数据仓库 %s 创建成功,异地备份状态:%s%n",
                dataWarehouse.name(),
                dataWarehouse.geoBackupPolicy().state()
        );
    }
}

3. 关键代码解释

  • withGeoBackupPolicy:这里直接在创建参数中定义默认异地备份策略并设置为DISABLED,确保数据仓库创建完成后异地备份直接处于禁用状态,无需后续额外操作。
  • DefaultAzureCredential:这是Azure SDK推荐的认证方式,支持本地开发的环境变量、Azure CLI、Visual Studio等多种认证渠道,不用硬编码密钥,安全性更高。
  • SKU配置:示例中用的DW100c是基础规格,你可以根据业务需求替换成DW2000c等更高规格的SKU。

4. 补充:创建后修改异地备份策略

如果已经创建了数据仓库,想要事后禁用异地备份,也可以单独执行更新操作:

// 更新已存在的数据仓库的异地备份策略
sqlManager.geoBackupPolicies().update(
        resourceGroupName,
        sqlServerName,
        dwName,
        GeoBackupPolicyState.DISABLED
);

内容的提问来源于stack exchange,提问作者Galet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:47:28