MyCATApache/Mycat-Server · warning
global table: : is ignore!
Error message
global table: ${schemaName}:${tableName} is ignore! What it means
During data migration planning, ConfigComparer.loadMigratorTable detects that the table is defined as a global table (same data replicated on all nodes) in either the old or new configuration. Global tables are excluded from migration because their data is identical across data nodes, so the table is simply skipped — this is an intentional skip, not a failure.
Solutions
- Confirm the table should be global — if so, no migration action is needed; global table data is already replicated on all data nodes
- If the table should be sharded, change its definition in schema.xml (remove type="global" or set a proper rule) in both old and new configs and rerun the migrator
- Review the WARN line in the migrator output to list all skipped global tables and verify each intentionally
Example fix
<!-- before: table skipped by migrator --> <table name="t_dict" type="global" dataNode="dn1,dn2" /> <!-- after: convert to sharded table so it is migrated --> <table name="t_dict" rule="mod-rule" dataNode="dn1,dn2" />
Defensive patterns
Strategy: validation
Validate before calling
// before running the migrator, filter out global tables
if ("global".equalsIgnoreCase(table.getAttribute("type"))) {
System.out.println("skipping global table: " + schema + ":" + table.getName());
continue;
} Try / catch
try {
loadMigratorTables(configs);
} catch (ConfigException e) {
LOGGER.warn("skipped: {}", e.getMessage());
} Prevention
- List all global tables (type="global" in schema.xml) before planning a migration
- Exclude global tables from migration tooling expectations — their data is replicated everywhere
- If a table must be re-sharded, convert it from global to sharded first
When it happens
Trigger: Running the data migrator (loadMigratorTables) against a schema.xml where the table has type="global" in the old and/or new configuration.
Common situations: Migrating a cluster config where some tables were converted to/from global tables; users expecting global tables to be re-sharded and confused when they are missing from migration output.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- : is ignore,no need to migrate!
- SelfCheck### user all node is empty!
- SelfCheck### users node within the item is empty!
- SelfCheck### user refered schemas is empty!
- SelfCheck### schema
AI-assisted analysis of MyCATApache/Mycat-Server@65f8d8beb7 (2026-09-11).
Data as JSON: /api/errors/283b58d5bd8a8a4d.
Report an issue: GitHub.
Appendix: source
Thrown at src/main/java/io/mycat/util/dataMigrator/ConfigComparer.java:175
TableConfig newTable = newTables.get(tableName);
loadMigratorTable(oldTable, newTable,schemaName,tableName);
}
}
}
private void loadMigratorTable(TableConfig oldTable,TableConfig newTable,String schemaName,String tableName){
//禁止配置非拆分表
if(oldTable == null || newTable == null){
throw new ConfigException("please check tableFile.properties,make sure "+schemaName+":"+tableName+" is sharding table ");
}
//忽略全局表
if(oldTable.isGlobalTable()||newTable.isGlobalTable()){
String message = "global table: "+schemaName+":"+tableName+" is ignore!";
System.out.println("Warn: "+message);
LOGGER.warn(message);
}else{
List<DataNode > oldDN = getDataNodes(oldTable,oldDataNodes,oldDataHosts);
List<DataNode > newDN = getDataNodes(newTable,newDataNodes,newDataHosts);
//忽略数据节点分布没有发生变化的表
if(isNeedMigrate(oldDN,newDN)){
LOGGER.info("old table:{}",oldTable);
LOGGER.info("new table:{}",newTable);
if (oldTable.getRule()== null){
LOGGER.info("beacuse {} rule is null,skip it,check it is er child table",oldTable);
return;
}
if (newTable.getRule()==null){
LOGGER.info("beacuse {} rule is null,skip it,check it is er child table.",newTable);
return;
}
checkRuleConfig(oldTable.getRule(), newTable.getRule(),schemaName,tableName);
RuleConfig newRC=newTable.getRule();
TableMigrateInfo tmi = new TableMigrateInfo(schemaName, tableName, oldDN, newDN, newRC.getRuleAlgorithm(), newRC.getColumn());View on GitHub (pinned to 65f8d8beb7)