---
title: 恢复租户报错 -4002, invalid locality-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 恢复租户报错 -4002, invalid locality相关的常见问题和使用技巧，帮助您快速解决 恢复租户报错 -4002, invalid locality的难题。
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 恢复租户报错 -4002, invalid locality

更新时间：2026-05-13 07:31

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：Troubleshoot  

## 适用版本

OceanBase 数据库 V2.x 和 V3.x 版本。

## 问题现象

使用 `RESTORE` 命令恢复租户 `cz_converge_uat2` 到 `cxl_restore` 中。

```shell
obclient> ALTER SYSTEM RESTORE cxl_restore FROM cz_converge_uat2 at 'file:///backup/' until '2022-05-05 06:00:00.071670' with 'backup_cluster_name=newcore_sit2&backup_cluster_id=2&pool_list=restore_pool';

```

出现如下报错。

```shell
[2022-05-05 16:32:43.553871] WARN  [COMMON] parse_locality (ob_locality_util.cpp:1254) [114009][674][YB42C0A80033-0005DCFED3F3E5C5] [lt=27] [dc=0] invalid locality(ret=-4002)
[2022-05-05 16:32:43.553940] WARN  parse_locality (ob_locality_util.cpp:1255) [114009][674][YB42C0A80033-0005DCFED3F3E5C5] [lt=67] [dc=0] Incorrect arguments to locality, zone name illegal
[2022-05-05 16:32:43.554094] WARN  [RS] parse_and_set_create_tenant_new_locality_options (ob_ddl_service.cpp:3143) [114009][674][YB42C0A80033-0005DCFED3F3E5C5] [lt=5] [dc=0] fail to parse locality(ret=-4002)
[2022-05-05 16:32:43.554265] WARN  [RS] check_create_tenant_locality (ob_ddl_service.cpp:17002) [114009][674][YB42C0A80033-0005DCFED3F3E5C5] [lt=14] [dc=0] fail to parse and set new locality option(ret=-4002)
[2022-05-05 16:32:43.554545] WARN  [RS.RESTORE] fill_create_tenant_arg (ob_restore_scheduler.cpp:368) [114009][674][YB42C0A80033-0005DCFED3F3E5C5] [lt=11] [dc=0] locality not match(tmp_ret=-4002, arg=tenant_schema:{tenant_id:18446744073709551615, schema_version:1, tenant_name:"cxl_restore", replica_num:0, zone_list:[], primary_zone:"", charset_type:2, locked:false, comment:"", name_case_mode:-1, read_only:false, rewrite_merge_version:0, locality_str:"FULL{1}@zone1, FULL{1}@zone2, LOGONLY{1}@zone3", logonly_replica_num:0, zone_replica_attr_array:[], primary_zone_array:[], storage_format_version:0, storage_format_work_version:0, previous_locality_str:"", sysvars:[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], default_tablegroup_id:18446744073709551615, default_tablegroup_name:"", compatibility_mode:1, drop_tenant_time:-1, status:0, in_recyclebin:false}, pool_list:["restore_pool"], if_not_exist:false, sys_var_list:[], name_case_mode:-1, is_

```

修改 `RESTORE` 命令，指定 `locality` 为目标恢复集群的 `locality`。

```shell
obclient> ALTER SYSTEM RESTORE cxl_restore FROM cz_converge_uat2 at 'file:///backup/' until '2022-05-05 06:00:00.071670' with 'backup_cluster_name=newcore_sit2&backup_cluster_id=2&pool_list=restore_pool&locality=F@ZONE_1,F@ZONE_2,F@ZONE_3';

```

但是依然报错。

```sql
[2022-05-05 16:52:24.069554] WARN  [SHARE] construct_zone_array (ob_primary_zone_util.cpp:144) [113899][476][YB42C0A80033-0005DCFED3F3E5EE] [lt=10] [dc=0] zone not exist(ret=-4016, zone_score={zone_:"zone1", score_:0}, primary_zone_str_="zone1;zone2;zone3", zone_list_=["ZONE_1", "ZONE_2", "ZONE_3"])
[2022-05-05 16:52:24.069732] WARN  [SHARE] check_and_parse_primary_zone (ob_primary_zone_util.cpp:119) [113899][476][YB42C0A80033-0005DCFED3F3E5EE] [lt=177] [dc=0] fail to construct zone array(ret=-4016)
[2022-05-05 16:52:24.070092] WARN  [RS] check_and_set_primary_zone (ob_ddl_service.cpp:22506) [113899][476][YB42C0A80033-0005DCFED3F3E5EE] [lt=7] [dc=0] invalid primary zone(ret=-4002)
[2022-05-05 16:52:24.070108] WARN  check_and_set_primary_zone (ob_ddl_service.cpp:22507) [113899][476][YB42C0A80033-0005DCFED3F3E5EE] [lt=14] [dc=0] Incorrect arguments to primary zone
[2022-05-05 16:52:24.070283] WARN  [RS] check_create_schema_replica_options (ob_ddl_service.cpp:22576) [113899][476][YB42C0A80033-0005DCFED3F3E5EE] [lt=6] [dc=0] fail to check and set primary zone(ret=-4002)
[2022-05-05 16:52:24.070295] WARN  [RS] check_create_tenant_replica_options (ob_ddl_service.cpp:22315) [113899][476][YB42C0A80033-0005DCFED3F3E5EE] [lt=11] [dc=0] fail to check replica options(ret=-4002)
[2022-05-05 16:52:24.070465] WARN  [RS] check_tenant_schema (ob_ddl_service.cpp:16957) [113899][476][YB42C0A80033-0005DCFED3F3E5EE] [lt=5] [dc=0] check replica options failed(tenant_schema={tenant_id:18446744073709551615, schema_version:1, tenant_name:"cxl_restore", replica_num:0, zone_list:["ZONE_1", "ZONE_2", "ZONE_3"], primary_zone:"zone1;zone2;zone3", charset_type:2, locked:false, comment:"", name_case_mode:-1, read_only:false, rewrite_merge_version:0, locality_str:"FULL{1}@ZONE_1, FULL{1}@ZONE_2, FULL{1}@ZONE_3", logonly_replica_num:0, zone_replica_attr_array:[{replica_attr_set:{full_replica_attr_array:[{num:1, memstore_percent:100}], logonly_replica_attr_array:[], readonly_replica_attr_array:[], encryption_logonly_replica_attr_array:[]}, zone_set:["ZONE_1"], zone:"ZONE_1"}, {replica_attr_set:{full_replica_attr_array:[{num:1, memstore_percent:100}], logonly_replica_attr_array:[], readonly_replica_attr_array:[], encryption_logonly_replica_attr_array:[]}, zone_set:["ZONE_2"], zone:"ZONE_2"}, {replica_attr_set:{full_replica_attr_array:[{num:1, memstore_percent:100}], logonly_replica_attr_array:[], readonly_replica_attr_array:[], encryption_logonly_replica_attr_array:[]}, zone_set:["ZONE_3"], zone:"ZONE_3"}], primary_zone_array:[], storage_format_version:0, storage_format_work_version:0, previous_locality_str:"", sysvars:[null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], default_tablegroup_id:18446744073709551615, default_tablegroup_name:"", compatibility_mode:1, drop_tenant_time:-1, status:0, in_recyclebin:false}, ret=-4002)

```

## 问题原因

备份集群的 `zone list` 是 `zone1;zone2;zone3`，恢复集群的 `zone list` 是 `ZONE_1;ZONE_2;ZONE_3`，zone 的命名不一致。 ​ RS 在恢复时会去比对租户的 `locality` 和 `primary_zone` 信息，如果 `RESTORE` 命令中不指定 `locality` 和 `primary_zone`，则会使用备份集群的 `locality` 和 `primary_zone` 信息。当备份集群的 `locality` 和 `primary_zone` 信息与恢复集群的不一致时，则会报错。

## 解决方法

在 `RESTORE` 命令中显式指定恢复机器的 `locality` 和 `primary_zone`。

```shell
obclient> ALTER SYSTEM RESTORE cxl_restore FROM cz_converge_uat2 at 'file:///backup/' until '2022-05-05 06:00:00.071670' with 'backup_cluster_name=newcore_sit2&backup_cluster_id=2&pool_list=restore_pool&locality=F@ZONE_1,F@ZONE_2,F@ZONE_3&primary_zone=ZONE_1;ZONE_2;ZONE_3';

```

上一篇

[如何复制备份数据到异地进行恢复](https://www.oceanbase.com/knowledge-base/oceanbase-database-20000010165)

下一篇

[数据恢复报错 1235 should not have backup_dest and restore_source at the same time not supported](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000208053) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
