On 29/04/2024 09:50, Tomasz Dubiel wrote:
> Can I ask why? Backup and restore takes time. gfix -icu is exactly for that:
> " -icu switch
>
> /gfix/ has a new switch -icu to update ICU-dependent collations and
> rebuild dependent indices.
>
> This can be used to make indices usable again when moving databases —
> without backup and restore — between Firebird instances using different
> ICU versions, or when the ICU version used by a Firebird instance
> changed (for example on Linux, when Firebird uses the ICU provided by
> the OS, and ICU was updated by an OS update)."
Because it is possible when you switch between OSes, that you might also
switch hardware platforms, and the database file has some platform
specific things. Mostly big endian vs little endian, I think, but I'm
not sure if there might be other things (in the past 32-bit vs 64-bit
could even matter). That is one of the reasons Firebird records the
"Implementation" information on the header page, which for a database
file created on Windows x64 records:
HW=AMD/Intel/x64 little-endian OS=Windows CC=MSVC
Using gfix -icu might also be needed when moving a database between
different versions of the OS, or different (major) versions of Firebird
on the same OS, or if its system provided ICU library is upgraded.
For moves between different OSes, I'd recommend doing a backup and restore.
Mark
--
Mark Rotteveel