Linux下svn伺服器遷移

2022-02-17 05:36:24 字數 4504 閱讀 7584

1.介紹遷移方式:

1.由於專案工作需要進行svn伺服器的遷移,對此簡要介紹svn伺服器的遷移方案。

2.主要遷移方式:

svnadmin dump

svnadmin hotcopy

svnsync

3.【svnadmin dump】是官方推薦的備份方式。

優點:比較靈活,可以全量備份也可以增量備份,並提供了版本恢復機制。

缺點:如果版本比較大,如版本數增長到數萬、數十萬,那麼dump的過程將非常慢;備份耗時,恢復更耗時;不利於快速進行災難恢復,建議在版本數比較小的情況下使用這種備份方式。

4.【svnadmin hotcopy】只能進行全量拷貝,不能進行增量備份;

優點:備份過程較快,災難恢復也很快;如果備份機上已經搭建了svn服務,甚至不需要恢復,只需要進行簡單配置即可切換到備份庫上工作。

缺點:比較耗費硬碟,需要有較大的硬碟支援。

5.【svnsync】直接同步源機器**庫,實際上是製作2個映象庫,當乙個壞了的時候,可以迅速切換到另乙個。

優點:當製作成2個映象庫的時候起到雙機實時備份的作用;

缺點:當作為2個映象庫使用時,沒辦法做到「想完全拋棄今天的修改恢復到昨晚的樣子」;而當作為普通備份機制每日備份時,操作又較前2種方法麻煩。

6.實際上在linux下將svn從一台源伺服器遷移到另一台目標伺服器的操作過程分2步:

1)安裝svn服務端:根據源伺服器的svn版本,在目標伺服器安裝同樣版本或者相近版本的svn;  

2)同步svn倉庫:同步源伺服器的svn**倉庫到目標伺服器上。

2.1安裝svn

1.下面就先具體地介紹安裝配置svn服務端,待操作完這一步後續在待遷移目標伺服器上安裝配置svn服務端就比較方便順手了。

1.yum方式安裝或者原始碼編譯安裝svn服務端。這裡以yum方式安裝為例(假設當前在linux下已經切換至root使用者):  

$yum install subversion #即可安裝svn服務端

$svn help #檢視svn幫助手冊

$svn --version #檢視svn當前版本

2.建立svn倉庫目錄:

$mkdir -p /home/www/svn/web/$svnadmin create /home/www/svn/web/

3.經【上述第二步】後在/home/www/svn/web下會生成乙個svn的倉庫工作空間。使用以下檢視目錄樹:

$tree /home/www/svn/web

4.顯示的目錄樹類似以下結果:

[root@bogon web]# tree /home/www/svn/web

/home/www/svn/web

├── conf

│   ├── authz

│   ├── authz.bak

│   ├── passwd

│   ├── passwd.bak

│   ├── svnserve.conf

│   └── svnserve.conf.bak

├── db

│   ├── current

│   ├── format

│   ├── fsfs.conf

│   ├── fs-type

│   ├── min-unpacked-rev

│   ├── rep-cache.db

│   ├── revprops

│   │   └── 0│   │   ├── 0│   │   ├── 1│   │   └── 2│   ├── revs

│   │   └── 0│   │   ├── 0│   │   ├── 1│   │   └── 2│   ├── transactions

│   ├── txn-current

│   ├── txn-current-lock

│   ├── txn-protorevs

│   ├── uuid

│   └── write-lock

├── format

├── hooks

│   ├── post-commit.tmpl

│   ├── post-lock.tmpl

│   ├── post-revprop-change.tmpl

│   ├── post-unlock.tmpl

│   ├── pre-commit.tmpl

│   ├── pre-lock.tmpl

│   ├── pre-revprop-change.tmpl

│   ├── pre-unlock.tmpl

│   └── start-commit.tmpl

├── locks

│   ├── db.lock

│   └── db-logs.lock

└── readme.txt

10 directories, 35files

[root@bogon web]#

5./home/www/svn/web/conf下以.conf結尾的檔案:svn倉庫的配置。

conf

├── authz:許可權控制檔案

├── authz.bak

├── passwd:帳號密碼檔案

├── passwd.bak

├── svnserve.conf:svn服務配置檔案

└── svnserve.conf.bak

$vim /home/www/svn/web/conf/authz

[/] :倉庫下所有檔案/資料夾

yunwei=rw :【yunwei】使用者具有讀寫許可權

test=r :【test】使用者具有唯讀許可權

*=:除上述倆使用者外,其他使用者沒有任何許可權

7.編輯passwd賬號密碼:

$vim /home/www/svn/web/conf/passwd

[users]

yunwei=yunwei :使用者名稱=密碼

$vim /home/www/svn/web/conf/svnserve.conf

[general]

anon-access=none :匿名使用者沒有訪問許可權

password-db=passwd :密碼資訊的檔案路徑(路徑相對於本svnserve.conf而言)

authz-db=authz :訪問控制檔案資訊的檔案路徑(路徑相對於本svnserve.conf而言)

realm=/home/www/svn/web/:認證命名空間,svn會在認證提示裡顯示。

9.啟動svn服務端:

$svnserve -d -r /home/www/svn/web #-d:守護程序;-r:後台執行

10.檢視svn程序:

$ps -ef|grep svn

11.如果想要停掉svn服務,可以下面這樣子操作:

$killall svnserve

12.【windows客戶端tortoisesvn】連線svn服務端,進行檢出獲取倉庫資料:

#埠:預設3690

#這樣子一來就可以用來獲取這個svn服務端的倉庫資料。

2)輸入【使用者名稱,如:yunwei】,【密碼,如:yunwei】。即可檢出。

view code

【確定】完即可。

2)linux下,對客戶端連線變更:

2.1)本地倉庫路徑:【/home/linux/downloads/svntestprojects/pro1dir/】。使用【$svn info】檢視連線資訊,結果類似如下(可看到源伺服器ip:10.80.80.238)

[root@localhost pro1dir]# svn info

path: .

working copy root path: /home/linux/downloads/svntestprojects/pro1dir

url: svn:

repository root: svn://

10.80.80.238

repository uuid: d40b338c-41be-439f-aade-8b6a1aebb690

revision: 2node kind: directory

schedule: normal

last changed author: yunwei

last changed rev: 2last changed date: 2019-01-07 15:11:39 +0800 (mon, 07 jan 2019)

2.2)變更:

​ $svn switch --relocate svn: svn:

​ #過程中輸入本地【root】密碼->輸入目標伺服器svn被授權的使用者名稱和密碼->進行驗證->驗證成功->接著連線到目標服務端svn即可。

​ $svn info

svn伺服器遷移 windows下

廢話不多說,直接上步驟 服務端 1.建立乙個備份檔案夾 如 d svn bak 2.進入cmd,cd命令到你的svn伺服器安裝目錄的bin檔案下,本人的安裝目錄在 d program files visualsvn server bin 則輸入 cd d program files visualsv...

SVN 伺服器遷移方法

svn專案,源伺服器 10.10.13.48 目標伺服器 10.10.13.129 要把svn專案從.48上遷移到.129上。做法 準備 版本庫 vos 源伺服器 10.10.13.48 源svn版本庫的path d svn vos 目標伺服器 10.10.13.129 遷移到的目標path e s...

Linux下搭建SVN伺服器

我們專案svn在linux系統下,而又是不可視的,所以通過winscp工具來操作,然後操作linux裡面檔案也是通過putty工具來執行一系列命令。這篇部落格是按著文件來做這個工作 以計量局專案為例 放在這裡分享給大家,也讓自己不斷學習。安裝前提 centos 7 可上網1 yum install ...