Neo 's Blog

Neo 's Blog

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 Responses so far.

  1. jeffhung 說道:

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

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

  2. Neo 說道:

    如果檔案庫從 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


搜尋

分類

歷史文章

贊助