3

我有一个接近 4GB 文件系统限制大小的 firebird 数据库。如何将单个数据库文件拆分为多个文件?

4

1 回答 1

6

对于单个文件数据库,Firebird 数据库可以跨越数 TB。InterBase 6.0 手册中提到了 4GB 的限制,但该限制仅适用于不支持更大文件的文件系统。据我所知,几乎所有文件系统都支持比这更大的文件(一个值得注意的例外当然是 FAT(32))。另请参阅Firebird 数据库限制

如果确实需要拆分文件,则需要添加辅助文件。有两种方法可以解决这个问题:

1)ALTER DATABASE用于添加附加文件:

ALTER DATABASE ADD FILE '<path-to-file>' LENGTH <number> PAGES 
   STARTING AT PAGE <number>

请注意,指定STARTING AT PAGE已创建的数字只会在分配下一页时创建文件。所以它不会从指定的页面开始,而是从<current page count>+1开始。另见InterBase 6.0语言参考中的第22页(可从http://www.firebirdsql.org/en/reference-manuals/获得)或页面海伦·博里 (Helen Borrie ) 的《火鸟书》第238 - 240页。

2)(如果需要拆分现有数据库):备份数据库并恢复,同时指定多个文件和每个文件的大小:

gbak -C <backupfile> <file1> <maxsize of file1> 
    <file2> <maxsize of file2> .... <fileN>

对于您未指定大小的最后一个文件,它将增长直到达到文件系统限制(如果有),在这种情况下,您将需要添加额外的辅助文件,如上所述。另请参阅Interbase 6.0 Operations Guide的第 162 页(也可从http://www.firebirdsql.org/en/reference-manuals/获得)或The Firebird Book的第 825-827 页。

但正如我所说:在几乎任何(现代)文件系统上,4 GB 限制都不适用。

于 2012-07-12T17:59:18.593 回答