管理 Azure Cosmos 帐户

适用于: SQL API Cassandra API Gremlin API 表 API Azure Cosmos DB API for MongoDB

本文介绍如何使用 Azure 门户、Azure PowerShell、Azure CLI 和 Azure 资源管理器模板管理 Azure Cosmos 帐户中的各种任务。

创建帐户

Azure 门户

  1. 在 Azure 门户菜单或主页中,选择“创建资源” 。

  2. 在“新建”页面中搜索“Azure Cosmos DB”,然后选择它。

  3. 在“Azure Cosmos DB”页上,选择“创建”。

  4. 在“创建 Azure Cosmos DB 帐户”页中,输入新 Azure Cosmos 帐户的基本设置。

    设置 说明
    订阅 订阅名称 选择要用于此 Azure Cosmos 帐户的 Azure 订阅。
    资源组 资源组名称 选择一个资源组,或者选择“新建”,然后输入新资源组的唯一名称。
    帐户名 唯一的名称 输入标识此 Azure Cosmos 帐户的名称。 由于 documents.azure.cn 将追加到所提供的名称以创建 URI,因此,请使用唯一的名称。

    名称只能包含小写字母、数字和连字符 (-)。 它的长度必须介于 3 到 31 个字符之间。
    API 要创建的帐户的类型 选择“Core (SQL)”,以便使用 SQL 语法创建文档数据库并进行查询。

    API 确定要创建的帐户的类型。 Azure Cosmos DB 提供五种 API:适用于文档数据的 Core (SQL) 和 MongoDB、适用于图形数据的 Gremlin、Azure 表和 Cassandra。 目前,你必须为每种 API 创建单独的帐户。

    详细了解 SQL API
    位置 离用户最近的区域 选择用于托管 Azure Cosmos DB 帐户的地理位置。 使用离用户最近的位置,使他们能够以最快的速度访问数据。
    容量模式 预配吞吐量或无服务器 选择“预配吞吐量”以在预配吞吐量模式下创建帐户。 选择“无服务器”以在无服务器模式下创建帐户。
    应用 Azure Cosmos DB 免费层折扣 “应用”或“不应用” 使用 Azure Cosmos DB 免费层,你将在帐户中获得每秒前 1000 RU 的免费吞吐量和 25 GB 的免费存储。 了解免费层的详细信息。

    备注

    每个 Azure 订阅最多可以有一个免费层 Azure Cosmos DB 帐户,并且你必须在创建帐户时选择加入使用。 如果看不到用于应用免费层折扣的选项,这意味着订阅中的另一个帐户已启用免费层。

    Azure Cosmos DB 的“新建帐户”页面

  5. 在“全局分发”选项卡中,配置以下详细信息。 对于本快速入门,可以保留默认值:

    设置 说明
    异地冗余 禁用 通过将你的区域与另一区域进行配对来启用或禁用帐户的全局分发。 稍后可以将更多区域添加到帐户。
    多区域写入 禁用 借助多区域写入功能,可以利用全球数据库和容器的预配吞吐量。

    备注

    如果选择“无服务器”作为“容量模式”,则以下选项不可用 :

    • 应用免费层折扣
    • 异地冗余
    • 多区域写入
  6. (可选)可以在以下选项卡中配置其他详细信息:

    • 网络 - 配置从虚拟网络进行访问

    • 备份策略 -配置定期备份策略。

    • 加密 - 使用服务管理的密钥或客户管理的密钥

    • 标记 - 标记是名称/值对。通过将相同的标记应用到多个资源和资源组,可以对资源进行分类并查看合并的账单。

  7. 选择“查看 + 创建”。

  8. 检查帐户设置,然后选择“创建”。 创建帐户需要几分钟时间。 等待门户页显示“你的部署已完成”消息。

    Azure 门户“通知”窗格

  9. 选择“转到资源”,转到 Azure Cosmos DB 帐户页。

    Azure Cosmos DB 帐户页面

Azure CLI

请参阅使用 Azure CLI 创建 Azure Cosmos DB 帐户

Azure PowerShell

请参阅使用 PowerShell 创建 Azure Cosmos DB 帐户

Azure Resource Manager 模板

请参阅使用 Azure 资源管理器模板创建 Azure Cosmos DB 帐户

在数据库帐户中添加/删除区域

提示

添加新区域时,必须将所有数据完全复制并提交到新区域,然后才能将该区域标记为可用。 此操作所需的时间取决于帐户中存储的数据量。

Azure 门户

  1. 登录到 Azure 门户

  2. 导航到 Azure Cosmos 帐户,打开“全局复制数据”菜单。

  3. 要添加区域,请在地图上选择包含与所需区域对应的 + 标签的六边形。 另外,若要添加某个区域,请选择“+ 添加区域”选项,然后从下拉菜单中选择一个区域。

  4. 若要删除区域,请选择带对号的蓝色六边形以从地图中清除一个或多个区域。 或者选择右侧位于区域旁边的“废纸篓”(🗑) 图标。

  5. 若要保存更改,请选择“确定”。

    添加或删除区域菜单

在单区域写入模式下,不能删除写入区域。 必须先故障转移到另一区域,然后才能删除当前的写入区域。

在多区域写入模式下,如果你至少具有一个区域,则可以添加或删除任何区域。

Azure CLI

请参阅使用 Azure CLI 添加或删除区域

Azure PowerShell

请参阅使用 PowerShell 添加或删除区域

配置多个写入区域

Azure 门户

打开“全局复制数据”选项卡,选择“启用”以启用多区域写入 。 启用多区域写入后,你的帐户当前拥有的所有读取区域将变为读取和写入区域。

Azure Cosmos 帐户配置多区域写入屏幕截图

Azure CLI

请参阅使用 Azure CLI 启用多写入区域

Azure PowerShell

请参阅使用 PowerShell 启用多写入区域

Resource Manager 模板

可部署资源管理器模板(用于创建帐户)和 enableMultipleWriteLocations: true 设置,将该帐户从单个写入区域迁移到多个写入区域。 以下 Azure 资源管理器模板是一个极简模板,它将为 SQL API 部署 Azure Cosmos 帐户,并启用两个区域和多个写入位置。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "name": {
            "type": "String"
        },
        "location": {
            "type": "String",
            "defaultValue": "[resourceGroup().location]"
        },
        "primaryRegion":{
            "type":"string",
            "metadata": {
                "description": "The primary replica region for the Cosmos DB account."
            }
        },
        "secondaryRegion":{
            "type":"string",
            "metadata": {
              "description": "The secondary replica region for the Cosmos DB account."
          }
        }
    },
    "resources": [
        {
            "type": "Microsoft.DocumentDb/databaseAccounts",
            "kind": "GlobalDocumentDB",
            "name": "[parameters('name')]",
            "apiVersion": "2021-04-15",
            "location": "[parameters('location')]",
            "tags": {},
            "properties": {
                "databaseAccountOfferType": "Standard",
                "consistencyPolicy": { "defaultConsistencyLevel": "Session" },
                "locations":
                [
                    {
                        "locationName": "[parameters('primaryRegion')]",
                        "failoverPriority": 0,
                        "isZoneRedundant": false
                    },
                    {
                        "locationName": "[parameters('secondaryRegion')]",
                        "failoverPriority": 1,
                        "isZoneRedundant": false
                    }
                ],
                "enableMultipleWriteLocations": true
            }
        }
    ]
}

为 Azure Cosmos 帐户启用自动故障转移

借助自动故障转移选项,在某个区域不可用时,Azure Cosmos DB 可以故障转移到具有最高故障转移优先级的区域,无需用户操作。 如果启用自动故障转移,则可修改区域优先级。 帐户必须具有两个或更多区域以启用自动故障转移。

Azure 门户

  1. 在 Azure Cosmos 帐户中,打开“全局复制数据”窗格。

  2. 在窗格顶部选择“自动故障转移”。

    “多区域复制数据”菜单

  3. 在“自动故障转移”窗格中,确保将“启用自动故障转移”设置为“开”。

  4. 选择“保存” 。

    自动故障转移门户菜单

Azure CLI

请参阅使用 Azure CLI 启用自动故障转移

Azure PowerShell

请参阅使用 PowerShell 启用自动故障转移

为 Azure Cosmos 帐户设置故障转移优先级

Cosmos 帐户配置为自动故障转移后,可以更改区域的故障转移优先级。

重要

帐户配置为自动故障转移后,不能修改写入区域(故障转移优先级为零)。 要更改写入区域,必须禁用自动故障转移并执行手动故障转移。

Azure 门户

  1. 在 Azure Cosmos 帐户中,打开“多区域复制数据”窗格。

  2. 在窗格顶部选择“自动故障转移”。

    “多区域复制数据”菜单

  3. 在“自动故障转移”窗格中,确保将“启用自动故障转移”设置为“开”。

  4. 若要修改故障转移优先级,请将鼠标指针悬停在读取区域上,并通过在行左侧出现的三个点拖动读取区域。

  5. 选择“保存” 。

    自动故障转移门户菜单

Azure CLI

请参阅使用 Azure CLI 设置故障转移优先级

Azure PowerShell

请参阅使用 PowerShell 设置故障转移优先级

在 Azure Cosmos 帐户上执行手动故障转移

重要

Azure Cosmos 帐户必须配置为手动故障转移,才能成功执行此操作。

执行手动故障转移的过程涉及将帐户的写入区域(故障转移优先级 = 0)更改为已为该帐户配置的其他区域。

备注

具有多个写入区域的帐户无法进行手动故障转移。 对于使用 Azure Cosmos SDK 的应用程序,SDK 会检测某个区域何时变为不可用,然后自动重定向到下一个最近的区域。

Azure 门户

  1. 导航到 Azure Cosmos 帐户,打开“全局复制数据”菜单。

  2. 在菜单顶部,选择“手动故障转移”。

    “多区域复制数据”菜单

  3. 在“手动故障转移”菜单上,选择你的新写入区域。 选中相应的复选框,以指示你了解此选项会更改你的写入区域。

  4. 若要触发故障转移,请选择“确定”。

    手动故障转移门户菜单

Azure CLI

请参阅使用 Azure CLI 触发手动故障转移

Azure PowerShell

请参阅使用 PowerShell 触发手动故障转移

后续步骤

有关如何管理 Azure Cosmos 帐户以及数据库和容器的详细信息和示例,请阅读以下文章: