ECS: ECSSync-migreringsfel: MySQLSyntaxErrorException: Okänd kolumn "source_md5" i "fältlista"
Summary: ECSSync-migreringen slutförs omedelbart utan att något av Centera-klippen migreras.
Symptoms
Problemet uppstår under en ECSSync-migrering från Centera till ECS.
ECSSync-migreringen slutförs omedelbart utan att något av Centera-klippen faktiskt migreras.
I filen /var/log/ecssync/ecs-sync.log visas följande fel:
2020-05-04 03:08:38 WARN [sync-pool-1-t-15] SyncTask: O--! object DNVBT3VHL1NE1e2NMV9CJDMQV5FG41BCFNF5EM0AC0A4KU05821DC failed
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'source_md5' in 'field list'
at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
... <output truncated> ..
Cause
Felet beror på att du använder en databastabell som har skapats av en tidigare version av ECSSync.
Följande är ett exempel på tabellen som skapats enligt den senaste proceduren. Den här tabellen innehåller inte den source_md5 kolumnen:
MariaDB [ecs_sync]> describe <table_name>; +-------------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------------+------+-----+---------+-------+ | source_id | varchar(54) | NO | PRI | NULL | | | target_id | varchar(54) | YES | | NULL | | | is_directory | int(11) | NO | | NULL | | | size | bigint(20) | YES | | NULL | | | mtime | datetime | YES | | NULL | | | status | varchar(32) | NO | MUL | NULL | | | transfer_start | datetime | YES | | NULL | | | transfer_complete | datetime | YES | | NULL | | | verify_start | datetime | YES | | NULL | | | verify_complete | datetime | YES | | NULL | | | retry_count | int(11) | YES | | NULL | | | error_message | varchar(2048) | YES | | NULL | | | is_source_deleted | int(11) | YES | | NULL | | +-------------------+---------------+------+-----+---------+-------+ 13 rows in set (0.00 sec)
ECSSync version 3.2.9 lade till en kolumn i databastabellen för att spåra MD5-källkontrollsumman (detta nämns i versionskommentarerna).
Resolution
När du har uppgraderat till den här versionen måste du antingen skapa en ny databastabell eller lägga till lämplig kolumn. Utför följande i ett MySQL-gränssnitt:
alter table <table_name> add column source_md5 VARCHAR(32);
Tabellen bör se ut som i följande exempel, med den extra kolumnen:
MariaDB [ecs_sync]> describe <table_name>; +-------------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+---------------+------+-----+---------+-------+ | source_id | varchar(54) | NO | PRI | NULL | | | target_id | varchar(54) | YES | | NULL | | | is_directory | int(11) | NO | | NULL | | | size | bigint(20) | YES | | NULL | | | mtime | datetime | YES | | NULL | | | status | varchar(32) | NO | MUL | NULL | | | transfer_start | datetime | YES | | NULL | | | transfer_complete | datetime | YES | | NULL | | | verify_start | datetime | YES | | NULL | | | verify_complete | datetime | YES | | NULL | | | retry_count | int(11) | YES | | NULL | | | error_message | varchar(2048) | YES | | NULL | | | is_source_deleted | int(11) | YES | | NULL | | | source_md5 | varchar(32) | YES | | NULL | | +-------------------+---------------+------+-----+---------+-------+ 14 rows in set (0.00 sec) MariaDB [ecs_sync]>
(där <table_name> är namnet på den befintliga tabellen).