This text is a work in progress—highly subject to change—and may not accurately describe any released version of the Apache™ Subversion® software. Bookmarking or otherwise referring others to this page is probably not such a smart idea. Please visit http://www.svnbook.com/ for stable versions of this book.
一个 Berkeley DB 环境由一个或多个数据库, 日志文件, 区域文件和 配置文件封装而成. Berkeley DB 环境有一套自己的默认配置, 例如在任意 时刻允许持有的数据库锁的个数, 日志文件的最大大小等. Subversion 的 文件系统逻辑根据自己的需要, 为某些 Berkeley DB 配置选项额外选取了默认 值. 然而, 你的仓库可能存放的是非常独特的数据, 而且访问模式也很特殊, 这时候你可能需要一套不同的配置选项值.
Berkeley DB 的开发人员明白不同的应用程序和数据库环境具有不同的需求,
所以他们提供了一种机制, 支持在运行时修改 Berkeley DB 环境的众多配置选项.
BDB 在环境目录 (也就是仓库内的 db
子目录) 内检查
文件 DB_CONFIG
是否存在, 如果存在则解析该文件内
的选项.
Subversion 在创建仓库时会去创建文件 DB_CONFIG
,
初始时, 文件包含了一些默认选项, 以及指向 Berkeley DB 在线文档的链接,
以便管理员了解选项的意义.
$ svnadmin create --fstype bdb /var/svn/repos $ ls /var/svn/repos/db changes __db.003 __db.register log.0000000001 revisions checksum-reps __db.004 format miscellaneous strings copies __db.005 fs-type node-origins transactions __db.001 __db.006 locks nodes uuids __db.002 DB_CONFIG lock-tokens representations $
当然, 管理员也可以往 DB_CONFIG
添加更多的
BDB 选项, 但要注意 Subversion 从来不会去读取或解释
DB_CONFIG
的内容, 更不会直接使用文件内的选项.
管理员需要避免的是配置上的变化可能会导致 Berkeley DB 表现出的行为
与 Subversion 所期待的不符. 另外, DB_CONFIG
的
变化只有在恢复数据库环境 (使用 svnadmin recover)
时才会生效.