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...