我有一个firebird数据库,它正在削弱4GB文件系统的限制大小。 如何将单个数据库文件拆分为多个文件?
答案 0 :(得分:6)
对于单个文件数据库,Firebird数据库最多可以达到几TB。 InterBase 6.0手册中提到了4GB的限制,但该限制仅适用于不支持较大文件的文件系统。据我所知,几乎所有文件系统都支持比这更大的文件(一个值得注意的例外当然是FAT(32))。另请参阅Firebird Database Limits。
如果确实需要拆分文件,则需要添加辅助文件。有两种方法可以解决这个问题:
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的 The Firebird Book 第238-240页。
2)(如果您需要拆分现有数据库):备份数据库并在指定多个文件和每个文件的大小时恢复它:
gbak -C <backupfile> <file1> <maxsize of file1>
<file2> <maxsize of file2> .... <fileN>
对于最后一个文件,您没有指定大小,它会增长直到达到文件系统限制(如果有),在这种情况下,您将需要添加其他辅助文件,如上所述。另请参阅 Interbase 6.0操作指南的第162页(也可从http://www.firebirdsql.org/en/reference-manuals/获得)或 The Firebird Book 的第825 - 827页。
但正如我所说:在几乎所有(现代)文件系统中,4 GB限制都不适用。