azure cli 触发故障转移地理位置缓存redis

问题描述 投票:0回答:1

我已为 Redis 资源创建了两个高级 Azure 缓存并设置了异地复制。门户中有一个按钮可以手动进行故障转移。

如何使用 Azure CLI 触发此故障转移?

我尝试了

az redis force-reboot --resource-group $resourceGroupName --name $redisPrimary --reboot-type $rebootType
命令,但没有成功。

azure-cli azure-redis-cache
1个回答
0
投票

我在 PowerShell 中通过断开缓存之间的(异地复制)链接然后重新创建它来完成此操作,确保反转主缓存和辅助缓存。

使用配置状态来监控删除或创建链接后的状态:

$provisioningState = (Get-AzRedisCache -Name $cacheNamePrimary).ProvisioningState

if ($provisioningState -eq 'Succeeded') { etc.. }

有一个问题,删除链接

Remove-AzRedisCacheLink
并尝试创建新链接
New-AzRedisCacheLink
后,即使配置状态将报告“成功”,也可能会出现错误。错误消息:
Operation returned an invalid status code 'Conflict'

在本例中,我创建了一个 while 循环,当

New-AzRedisCacheLink
没有返回错误时,该循环会中断:

# Create cache link (geo-replication)
while ($true) {
    $provisioningState = (Get-AzRedisCache -Name $cacheNamePrimary).ProvisioningState

    if ($provisioningState -eq 'Succeeded') {
        try {
            New-AzRedisCacheLink -PrimaryServerName $cacheNameSecondary -SecondaryServerName $cacheNamePrimary -ErrorAction Stop
            break
        } catch {
            Write-Output "Trying to creating cache link but received an error '$($_)'.. probably busy processing something.. retrying.."
            Start-Sleep -Milliseconds 20000
        }
    } else {
        Start-Sleep -Milliseconds 30000
        Write-Output "Still waiting for cache link to be removed.. provisioning status '$provisioningState'.."
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.