ECS: ECSSync Migration Error: MySQLSyntaxErrorException: Onbekende kolom 'source_md5' in 'veldenlijst'
Summary: De ECSSync-migratie wordt onmiddellijk voltooid zonder dat een van de Centera-clips daadwerkelijk wordt gemigreerd.
Symptoms
Het probleem doet zich voor tijdens een ECSSync-migratie van Centera naar ECS.
De ECSSync-migratie wordt onmiddellijk voltooid zonder dat een van de Centera-clips daadwerkelijk hoeft te worden gemigreerd.
In het bestand /var/log/ecssync/ecs-sync.log wordt de volgende fout weergegeven:
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
De fout treedt op omdat u een databasetabel gebruikt die is gemaakt door een eerdere versie van ECSSync.
Hieronder volgt een voorbeeld van de tabel die volgens de laatste procedure is gemaakt. Deze tabel bevat niet de kolom source_md5:
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 versie 3.2.9 heeft een kolom toegevoegd aan de databasetabel om de MD5-checksum van de bron bij te houden (dit wordt vermeld in de releaseopmerkingen).
Resolution
Nadat u een upgrade naar deze versie hebt uitgevoerd, moet u een nieuwe databasetabel maken of de juiste kolom toevoegen. Voer het volgende uit in een MySQL-shell:
alter table <table_name> add column source_md5 VARCHAR(32);
De tabel moet er met de extra kolom uitzien als het volgende voorbeeld:
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]>
(waarbij <table_name> de naam is van uw bestaande tabel).