0

I'm using firebird with docker with the image jacobalberty/firebird:2.5.8-sc

I use it in local and in the remote server. The problem is the database seems unreadable in the remote server, it says no table in this database even though in the local environment it works fine.

I use isql command inside the container to run the query

root@8978428b8a97:/usr/local/firebird/bin# ./isql
Use CONNECT or CREATE DATABASE to specify a database
SQL> CONNECT "/firebird/data/data.GDB"
CON> user 'guest' password 'guest';
Database:  "/firebird/data/data.GDB", User: guest
SQL>show tables;
There are no tables in this database

I thought maybe the database file is corrupted, but I already uploaded the database file several times using filezilla, and checking the md5sum then compare the hash, it's already the same.

Update

The database is originally from Windows 10 64 bit, it's from another application (probably 32bit application) my employer used. this is the result running gstat /firebird/data/data.GDB -h

Database "/firebird/data/data.GDB"
Gstat execution time Fri Jan  4 08:02:15 2019

Database header page information:
        Flags                   0
        Checksum                12345
        Generation              211656
        Page size               4096
        ODS version             11.1
        Oldest transaction      211394
        Oldest active           211546
        Oldest snapshot         211546
        Next transaction        211549
        Bumped transaction      1
        Sequence number         0
        Next attachment ID      736
        Implementation ID       16
        Shadow count            0
        Page buffers            0
        Next header page        0
        Database dialect        3
        Creation date           May 26, 2010 16:09:32
        Attributes              force write, no reserve

    Variable header data:
        Sweep interval:         20000
        *END*

In Windows I use flamerobin to read the database directly and used it in node.js application using the same user and password, and it works.

  • What is the exact platform where the database was originally created (version, OS, bitness, etc)? Also include the header page information from gstat -h. Databases can't always be copied between platforms, and sometimes backup and restore is the only way. – Mark Rotteveel Jan 4 '19 at 7:37
  • @MarkRotteveel it's originally created on Windows 10 64bit the database is from another application. I already updated my question with the result of gstat -h – otong Jan 4 '19 at 8:15
  • I keep forgetting the exact rules, but IIRC, moving between Windows and Linux (the docker image) will require a backup and restore, especially if they have differing bitness. I'll try and test it to make sure. – Mark Rotteveel Jan 4 '19 at 8:33
  • I tried using the backup file (.fbk) I successfully created the backup file using flamerobin but when I tried to restore the database it says ` ERROR: Your login SYSDBA is same as one of the SQL role name.` probably the previous application is blocking the use of SYSDBA user – otong Jan 4 '19 at 10:09
  • Then restore with a different user than sysdba – Mark Rotteveel Jan 4 '19 at 11:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.