【问题标题】:Azure table storage failover using NodeJs SDK使用 NodeJs SDK 的 Azure 表存储故障转移
【发布时间】:2021-03-05 12:24:45
【问题描述】:

我已将 Azure 表存储帐户配置为 RA-GRS,并使用以下代码访问它:

const host = {
    primaryHost: `https://${primaryAccountName}.table.core.windows.net`,
    secondaryHost: `https://${primaryAccountName}-secondary.table.core.windows.net`
  };
var tableSvc = azure.createTableService(primaryAccountName, accessKey, host);
const entGen = azure.TableUtilities.entityGenerator;
const locationMode = azure.StorageUtilities.LocationMode;
const tableName = 'testTable';

  const options = {
    locationMode: locationMode.PRIMARY_THEN_SECONDARY,
    requestLocationMode: locationMode.PRIMARY_THEN_SECONDARY
   };
  tableSvc.retrieveEntity(tableName, 'hometasks', '1', options, function(error, result, response){
    if(error){
      console.log('Error on retrieveEntity!', error, result, response);
    } else {
      console.log('Entity retrieved', result.published._);
    }
  });

我手动启动了故障转移,预计一旦故障转移完成,它会选择新帐户并继续工作,但它没有并失败并出现以下错误:

retrieveEntity 出错!错误:getaddrinfo ENOTFOUND test0failover-secondary.table.core.windows.net

有没有什么办法可以顺利过渡到二级账户?我正在寻找的是在发生故障转移时对辅助帐户具有读取权限。

【问题讨论】:

    标签: node.js azure azure-storage azure-table-storage failover


    【解决方案1】:

    发生这种情况是因为一旦您进行手动故障转移,在故障转移完成后,您的存储帐户将变为本地冗余 (LRS)。您必须手动将该帐户转换为地理冗余(RAGRS 或 GRS)。

    来自link

    故障转移后,您的存储帐户类型会自动 在新的主数据库中转换为本地冗余存储 (LRS) 地区。您可以重新启用异地冗余存储 (GRS) 或读取访问 帐户的异地冗余存储 (RA-GRS)。 请注意,转换 从 LRS 到 GRS 或 RA-GRS 会产生额外费用。对于额外的 信息,请参阅带宽定价详细信息。

    为您的存储帐户重新启用 GRS 后,Microsoft 开始 将您账户中的数据复制到新的次要区域。 复制时间取决于被复制的数据量。

    【讨论】:

    • 正确但不是很好,所以我必须更新我的客户端应用程序代码,直到我重新启用异地冗余。
    猜你喜欢
    • 1970-01-01
    • 2020-08-31
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多