- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们公司在其产品中使用 Firebird 数据库已有 4 - 5 年了。在此之前我们一直使用Interbases数据库。最近出现了新的需求,需要启用 unicode 字符集(目前我们使用字符集“NONE”)。在调查该问题后,我发现解决方案需要升级 ODS(磁盘结构)二进制格式的数据库文件作为步骤之一。我读到推荐的解决方案是使用 gbak 实用程序备份然后恢复数据库。这有一个问题。在 original manual给 Firebird 的信中写道:
The backup should be taken using the gbak utility supplied by the old ODS version of InterBase or Firebird. The restore should be carried out using gbak from the newer version of Firebird.
这是一个问题,因为我正在开发的产品已经开发了 20 年,我真的无法说出我们的客户使用的所有 ODS 版本。如果我遵循上述说明,则意味着我的升级实用程序应该具有从 Interbase 1.0 至今发布的所有可能版本的 gbak 实用程序。根据检测到的 ODS 版本(例如,通过调用作为 Firebird 安装的一部分提供的命令行实用程序“gstat”),我应该调用正确的 gbak.exe 文件。对我来说,这似乎过于复杂的解决方案。是否可以仅使用最新的 gbak 实用程序进行备份和恢复阶段?我担心的是我在这个过程中犯了一些错误并且数据会丢失。所以我不能仅仅依靠 gbak 实用程序进行备份,而是手动备份 *.gdb 文件。
最佳答案
您应该能够使用当前 Firebird 版本的 gbak 备份数据库,并使用要迁移到的 Firebird 版本的 gbak 进行恢复。如果这是同一个版本,那就没问题。
专门使用创建 ODS 版本的 Firebird 或 Interbase 版本的 gbak 的指令通常是多余的,因为 gbak 可以理解旧格式。如果您的数据库在当前 Firebird 版本上运行良好,那么应该可以使用该版本的 gbak 进行备份。据我所知,该指令的含义是,您应该使用目标Firebird版本的gbak进行恢复。
忽略一些边缘情况,通常在升级 ODS 时它可以工作到 Firebird 2.5。从 Firebird 2.5 迁移到 Firebird 3 时,您需要按照此说明正确升级。
还要确保在进行正常备份时使用正确的版本。例如,使用 Firebird 2.1 gbak 备份 ODS 11.2/Firebird 2.5 数据库似乎可以工作,但它会使备份在 Firebird 2.5 上无法恢复,因为较旧的 gbaks 不知道它们需要跳过 RDB$ADMIN角色。恢复到 Firebird 2.5 时,这会导致尝试插入重复的角色,这将破坏恢复。
但是,当您将数据库更改为使用 UTF-8 时,您可能需要考虑使用正确的字符集重新创建数据库,并将数据(通过适当的字符集转换)从旧数据库抽取到新数据库。
关于upgrade - Firebird 数据库升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35621143/
我有一个关于 Firebird 客户端和服务器版本的问题。我知道由于 ODS 更改,数据库文件必须与 Firebird 服务器匹配。即 Firebird 建议在服务器版本 2.5.1 和 2.5.2
是否可以使用相同 Firebird 版本的 Firebird Embedded 打开 Firebird 数据库文件?当然,我知道我不能同时通过 FB Embedded 和 FB 打开同一个文件。但在关
首先我读到了这个问题: Firebird database replication 但我不想复制...我只想将数据库上已更改的数据添加到我们的主数据库中。有什么想法吗? 最佳答案 AFAICT 这也是
我同时使用 Firebird 嵌入式和 Firebird 服务器,有时我需要使用如下程序重新索引表: CREATE PROCEDURE MAINTENANCE_SELECTIVITY ASDECLAR
firebird 是否支持事务模式更改?在我看来,MySQL 没有(我说得对吗?)。 最佳答案 我打算发布一个简单的"is",但 Stack Overflow 不接受少于 15 个字符的答案。简而言之
我正在尝试将 Firebird 2.5.1 迁移到 Firebird 3.0 做了什么: 备份 Firebird 2.5.1 在 Firebird 3 上恢复 问题是并不是所有的表都被迁移了;过程、触
我的意思是,即使数据库为空,您也必须删除 varchar(50) 字段并重新创建它以使其成为 varchar(30)。更别说约束了…… 这是非常令人沮丧的。我是 SYSDBA,Firebird 使非常
当我尝试更改 Firebird 中不同所有者的表时,出现此错误: unsuccessful metadata update MODIFY RDB$RELATION_FIELDS failed no p
我有下表 create table LIST_PIPE_TABLE ( ID INT, ITEM VARCHAR(4000), IS_FOLDER VARCHAR
有没有一种快速的方法来列出为数据库定义的所有实际上没有被任何字段使用的 Firebird 域?我有一个包含许多表和许多域的大型数据库,似乎其中很多不再使用,所以我想是时候进行清理了! 我认为这可以通过
我有一个表 t,其中一列是 int 类型,有几行。 我想循环它。当然,我可以为此编写一个选择查询。不过我是学程序的,写了个程序, set term ^; create procedure qt ret
我正在尝试使用 FlameRobin 打开一个 .fdb (Firebird) 数据库,但它给了我以下错误消息: *** IBPP::SQLException *** Context: Databas
我有一个旧版 Firebird(版本 2.5.2)数据库,并使用 FlameRobin(版本 0.0.2.1851)来检查它。 我已在 RDB$RELATION_CONSTRAINTS 表上运行以下查
我是这里的 Firebird 新手。我正在尝试从 ASP.Net 应用程序使用 Firebird Embedded。一切都连接正常,但我遇到了列名称长度的问题。我正在尝试创建一个名为“Orchard_
刚刚开始将 Firebird 与 Delphi XE 结合使用。需要一些从客户端计算机连接到服务器的帮助。 我可以 ping 服务器,因此存在连接。但是当我从 firebird/bin 文件夹运行 i
我在 Ubuntu 中打开命令提示符,然后登录 Firebird,如下所示: $ isql-fb SQL> connect "localhost:/var/lib/firebird/2.5/data/
已下载 Firebird 数据库 Firebird-3.0.3.32900-0_x64_pdb.zip。解压文件夹install_service.bat并能够访问EMPLOYEE.FDB数据库。无需
如何在 Firebird 中将多个数据库合并为一个?我尝试了 fbexport,但没有在 Ubuntu 上编译 fbexport,我不断收到此错误。 g++ -pthread -lfbclient -
我想查询以下内容:所有表及其列和数据类型 到目前为止,我从 http://www.firebirdfaq.org/faq174/ 得到了这个 select f.rdb$relation_name, f
我有一个接近 4GB 文件系统限制大小的 firebird 数据库。如何将单个数据库文件拆分为多个文件? 最佳答案 对于单个文件数据库,Firebird 数据库可以跨越数 TB。 InterBase
我是一名优秀的程序员,十分优秀!