我有firebird 1.0数据库。和ubuntu 12.04,x86_64。我想从这个数据库中获取一些数据,但我不知道我该怎么做。
当我尝试连接isql-fb(来自firebird2.5-superclassic pkg)时,我收到此数据库无效的错误消息。
我尝试从官方网站http://www.firebirdsql.org/en/odbc-driver/下载odbc驱动程序v1.2(最小版本),但它适用于x86系统。并且ldd表明它不可执行。我也尝试编译它,但得到一些错误(可能完全引用os的架构)。
我不知道接下来该做什么。
1)可能有一些方法可以在64位系统上运行32位odbc驱动程序吗? 2)还是其他一些方法? 3)有没有机会升级"数据库到更高版本?所以我可以通过当前包读出来吗?
非常感谢!
答案 0 :(得分:1)
问题是Firebird数据库的确切内部格式是特定于平台的。这通常与字节序(x86和x86_64相同)有关,但对于较旧的Firebird版本(我相信在Firebird 2.1,ODS 11.1之前),平台的位数(32/64)是一个因素。好。
因此,如果此数据库来自32位平台上的Firebird 1.0,则需要在32位平台上创建可传输备份,然后在目标64位平台上恢复该备份。您可以使用gbak创建可传输备份(选项-T
,默认情况下为最近的Firebird版本。)
我不确定ODBC驱动程序与您的问题有什么关系:如果Firebird无法读取您的数据库,那么ODBC驱动程序将无法帮助(如果您在编译时遇到问题,那就是单独的问题)。但请注意,对于x86_64平台,您需要ODBC驱动程序的 amd64 变体(amd64和x86_64相同)。
答案 1 :(得分:0)
可能是数据库确实已损坏或实际上是数据库备份(需要在使用前恢复)
这将尝试备份数据库,这也将验证它是否正常 gbak -user sysdba -pass -backup path_of_database path_for_backup_file