我们目前正在使用用C ++ Builder编写的32位应用程序来访问32位Firebird服务器。作为数据库连接层,我们使用的是Firedac库。我们计划为一些使用大型数据库(> 1e7记录,文件大小约3GB)的客户迁移到64位版本的数据库计算机,原因是性能原因。我想知道除了卸载32位版本的Firebird并在服务器端安装64位版本之外,此转换还需要哪些其他步骤。我对性能调整不感兴趣,我发现elsewhere。
我是否必须重新编译我的应用程序?这需要我的申请变更吗?可以从32位程序访问64位数据库吗?
我是否必须升级数据库文件的二进制格式,以便64位Firebird服务器可以使用它们,还是可以使用它们开箱即用?
答案 0 :(得分:3)
应用程序通过Firebird的有线协议与数据库进行通信,这意味着32位应用程序可以毫无问题地与64位Firebird通信(反之亦然)。唯一的例外是你使用嵌入式Firebird,因为它只是你应用程序中的一个库。
所以不是:您不需要重新编译您的应用程序。
至于你的第二个问题(应该是一个单独的问题):这取决于。
如果您正在使用Firebird 2.0(iirc)或更早版本(ODS 11.0或更早版本)的ODS(On Disk Structure),则必须备份和恢复数据库,因为ODS对于32位和64位是不同的。
如果您使用的是Firebird 2.1或更高版本的ODS(Firebird 2.1为ODS 11.1,Firebird 2.5为11.2,Firebird 3为12)和您正在相同版本之间迁移,那么您不需要#39;需要备份和恢复,因为ODS是相同的。
但是,如果要在点发行版之间进行迁移,则应查看发行说明。例如,旧版Firebird 2.5中存在一些问题需要备份和恢复(或至少是索引重建)以解决问题。
如果要从2.1(ODS 11.1)迁移到2.5(ODS 11.2),则应备份和恢复以升级数据库ODS,以便可以使用新版本的所有功能。
如果要从任何较旧的Firebird版本(ODS 11.2或更早版本)迁移到Firebird 3.0(ODS 12),那么必须备份和还原以升级ODS(因为Firebird 3.0不支持较旧的ODS版本。)
您可以使用gstat -h <your database>
检查ODS版本。