Subversion 1.2.x 升級 Berkeley DB 4.3 步驟

根據官方說法Subversion 1.1.x 升級至 1.2.x, 檔案庫的 Berkeley DB 的存取方式也必須由 4.2.52 升級至 4.3.27。


由於 TortoiseSVN 1.2.0 開始也以 Subversion 1.2.0 為基礎來存取檔案庫,因此在未升級的狀況下存取檔案庫時就會出現以下訊息:

DB_VERSION_MISMATCH:
Database environment version mismatch
bdb: Program version 4.3 doesn't match environment version

因此想用新版 TortoiseSVN 也必須強迫升級至 Subversion 1.2.x 了。

升級前首先要注意,必須先用 Subverion 1.1.x 完成以下的步驟再升級 1.2.x。
(也就是不要先裝 Subversion 1.2.x)

更新前準備:
必須確定所有的協定都目前都沒有在存取檔案庫 (Repository),如 http:// 、file:// 等。

(1)備份檔案庫。

可以使用 Dump 匯出:

svnadmin dump /path/to/repository >  dumpfile

或是直接備份 /path/to/repository

(2)復原檔案庫。

svnadmin recover /path/to/repository

(3)刪除未使用的記錄檔

svnadmin list-unused-dblogs /path/to/repeository

指令下達後,列出可刪除的記錄檔案(檔名為 log.xxx 一般只需保留最後一個即可)。
所有列出這些檔案必須手動刪除。

(4)刪除所有的共享記憶體的檔案
也就是刪除 /path/to/repeository/db/__db.*

完成以上步驟後,就可以升級 Subversion 至 1.2.x 了。

註: 我的習慣是先備份再動作,所以跟官方文件 (2) 跟 (1) 是反過來的。

2 comments On Subversion 1.2.x 升級 Berkeley DB 4.3 步驟

  • 我之前在升級我的 subversion 的時候,並沒有必須要將 Berkeley DB 從 4.2 升到 4.3 的需求啊?現在用 db42 跑了快一個月了,一切也都很穩沒什麼問題。究竟升到 db43 的必要性與好處為何呢?

    我的升級筆記:http://www.jeffhung.idv.tw/blog/articles/jeffhung/80/

  • 如果檔案庫從 1.1.x Dump 到 1.2.x ,會自動以 Berkeley DB 4.3 的方式儲存。

    但有些狀況是無法直接從 1.1.x Dump 到 1.2.x,所以只能透過 Upgrade Berkeley DB 的方式來處理。

    至於 Berkeley DB 4.3 新功能為:

    * Automatic initialization of replication clients
    * Replication election process is now Paxos compliant
    * In memory transaction logs allowing in memory databases
    * Enhanced Java API nearly identical to that of our Java Edition
    * Native support for sequence number generation
    * Degree 2 transaction isolation
    * Mutex statistics can now be easily gathered and recorded
    * Support for Itanium2 chips running Windows XP

    資料來源:
    http://www.sleepycat.com/products/db.shtml

Leave a reply:

Your email address will not be published.

Site Footer

Sliding Sidebar