SVN subversion 的備份和還原

2021-12-30 01:36:39 字數 3151 閱讀 4593

svn (subversion) 的備份和還原,開發中常用到的乙個版本控制軟體就是svn. 有時候, 需要對版本控制器的內容進行備份/還原或者遷移. 儘管用得比較少, 但是一旦用到, 該掌握的知識還是要掌握的。

環境: centos 6.6

svn的備份還原有三種方式, 這裡重點介紹前兩種:

官方提供的dump方法: 優點是穩定; 缺點也非常明顯, 一旦版本過多或者內容本身多的時候, 備份和還原的過程就及其漫長, 不利於生產環境中快速上線. 版本少/內容少的時候, 可以考慮這個方法. hotcopy方法: 熱拷貝的優點就是快, 缺點是比較耗費磁碟, 但一般這個方法比較常用. svnsync方法: 製作兩個映象的svn版本庫, 乙個崩潰以後迅速切換到另乙個, 實際應用較少, 不做介紹.

下面對常用的方法進行介紹:

1. dump方法的介紹

假如, 版本庫的路徑是/var/svn/lius, 我們先備份.

備份:

# svnadmin dump /var/svn/lius > ~/svn.dump還原:需要先建立乙個版本庫, 再進行還原 (可以是不同的名稱):

# svnadmin create /var/svn/liemer

# svnadmin load /var/svn/liemer < ~/svn.dump

<<< 開始新的事務,基於原始版本 1

* 正在增加路徑: testfile.txt ...完成。

------- 提交後版本 1 >>>

<<< 開始新的事務,基於原始版本 2

* 正在增加路徑: 1.jpg ...完成。

* 正在增加路徑: 2.jpg ...完成。

* 正在增加路徑: 3.jpg ...完成。

* 正在增加路徑: 4.jpg ...完成。

------- 提交後版本 2 >>>

將原來的配置檔案資訊, 複製到新的版本庫的conf目錄, 原來的可以備份到別處:

# pwd

/var/svn/liemerlius/conf

# ls

authz passwd svnserve.conf

# mkdir ../bak && mv * ../bak // 先備份原來的配置檔案

# cp /var/svn/lius/conf/* /var/svn/liemerlius/conf/ // 將原來的配置檔案複製到這裡, 重啟svn服務

# ls

authz bak passwd svnserve.conf

# killall svnserve

# svnserve -d -r /var/svn

windows上, 可以用tortoisesvn測試一下, 本人測試是可以的.

2. dump增量備份方法的介紹

當然, 如果版本庫的內容已經夠多了, 一次性完全備份是不現實的. 我們可以定期進行增量備份, 節省很多的時間. 將來恢復的時候, 將各個分檔案按順序恢復即可.

首先, 應該知道版本庫的已有版本, 在windows上, 按照下列方法進行:

這裡的revision就是版本號的資訊.

增量備份和還原:

# svnadmin dump /var/svn/liemer -r 1:2 --incremental > ~/inc.bak // 增量模式備份, 冒號前後是開始和結束的版本號

* 已轉存版本 1。

* 已轉存版本 2。

# svnadmin create /var/svn/liemerlius // 可以建立, 也可以在乙個已有的版本庫裡面進行還原.

# svnadmin load /var/svn/liemerlius < ~/inc.bak

<<< 開始新的事務,基於原始版本 1

* 正在增加路徑: testfile.txt ...完成。

------- 提交後版本 1 >>>

<<< 開始新的事務,基於原始版本 2

* 正在增加路徑: 1.jpg ...完成。

* 正在增加路徑: 2.jpg ...完成。

* 正在增加路徑: 3.jpg ...完成。

* 正在增加路徑: 4.jpg ...完成。

------- 提交後版本 2 >>>

同樣的, 還原後可以在windows上進行驗證.

3. hotcopy進行熱備份和還原

備份的方法:

# svnadmin hotcopy /var/svn/lius/ ~/hotcopy.bak // 後面是要備份的路徑, 是乙個目錄

# file ~/hotcopy.bak

/root/hotcopy.bak: directory

# ls ~/hotcopy.bak

conf db format hooks locks readme.txt

–clean-logs選項,是svnadmin執行熱拷貝操作時,刪除不用的berkeley db日誌檔案。 可以在任何時候執行這個命令得到乙個版本庫的安全拷貝,不管其它程序是否使用這個版本庫。

還原:

# svnadmin hotcopy ~/hotcopy.bak /var/svn/hotsvn

# ls /var/svn/hotsvn

conf db format hooks locks readme.txt

# killall svnserve

# svnserve -d -r /var/svn/

同樣, 可以可以驗證一下是否可用, 在windows建立新資料夾, 登入賬號進行同步, 發現是可以的.

SVN subversion 簡單介紹

1.什麼是svn subversion svn 是乙個開源的版本控制系統,也就是說 subversion 管理著隨時間改變的資料。這些資料放置在乙個 資料檔案庫 repository 中。這個檔案庫很像乙個普通的檔案伺服器,不過它會記住每一次檔案的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽檔案...

svn subversion 版本管理軟體

svn subversion 版本管理軟體 svn info path 例如 svn info test.php 7 比較差異 svn diff path 將修改的檔案與基礎版本比較 例如 svn diff test.php svn diff r m n path 對版本m和版本n比較差異 例如 s...

Hadoop的冷備 熱備

冷備份 hadoop1.x namenode 主 secondarynamenode 從 在hadoop1.x中,secondarynamenode會按照時間閾值 比如24小時 或者edits日誌大小閾值 比如1g 週期性的將fsimage和edits合併成新的fsimage並替換,然後將最新的fs...