繁体   English   中英

Azure 使用 NodeJs SDK 的表存储故障转移

[英]Azure table storage failover using NodeJs SDK

我已将 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._);
    }
  });

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

检索实体错误:错误。 getaddrinfo ENOTFOUND test0failover-secondary.table.core.windows.net

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

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

从这个link

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM