BigQuery使用DML跨地域迁移数据集遇错:无法设置主副本
解决BigQuery跨区域数据集迁移的错误问题
错误原因分析
你遇到的错误Invalid value: The primary replica can only be assigned from the replica region: EU,本质是系统无法将eu识别为有效的可提升主副本,常见触发场景包括:
- EU副本未完成初始同步(状态未变为
ACTIVE) - EU副本不存在(未执行
ADD REPLICA操作) - 指定的副本名称与实际创建的不符
分步解决方案
1. 验证EU副本的状态与存在性
首先执行以下查询,确认数据集的副本信息:
SELECT replica_name, location, state, sync_time FROM INFORMATION_SCHEMA.SCHEMA_REPLICAS WHERE SCHEMA_NAME = 'covid_938';
- 如果查询无
eu相关结果:先创建EU副本ALTER SCHEMA covid_938 ADD REPLICA `eu` OPTIONS(location='eu'); - 如果
eu副本存在但state不是ACTIVE:等待同步完成(同步时长取决于数据集大小,从几分钟到数小时不等)
2. 切换主副本至EU
当EU副本状态变为ACTIVE后,执行主切换命令(需确保客户端连接的是原主区域us):
ALTER SCHEMA covid_938 SET OPTIONS(primary_replica = 'eu');
3. 删除US副本
主切换完成后,原US主区域会自动转为副本,此时可执行删除操作:
ALTER SCHEMA covid_938 DROP REPLICA IF EXISTS `us`;
(若不确定副本名称,可再次执行步骤1的查询确认)
额外注意事项
- 主切换完成后,所有读写操作将自动指向EU区域的数据集
- 删除US副本前,需确保依赖该数据集的工具、脚本已更新至EU区域的BigQuery端点
- 大数据集的同步与切换过程耗时较长,请勿中途中断操作
内容的提问来源于stack exchange,提问作者REdim.Learning
相关产品推荐
相关产品推荐

