使用svnsync實時異地備份配置庫
公司機房環境不穩定,領導要求做SVN的實時異地備份,以保證資料安全。備份伺服器非公司網路,可遠端訪問。
前提條件:
1. 備份伺服器需要安裝和主伺服器相同的環境。例如,主伺服器的環境為 Apache2.4.15 + SVN1.8.17,那麼從伺服器也需要設定相同的環境。
2. 主伺服器能夠通過HTTP遠端訪問備份伺服器的配置庫
首先搭建備份伺服器環境,以下步驟在備份伺服器(192.168.3.2)上執行
1. 安裝和配置Apache2.4.15,請參看http://blog.csdn.net/w171066/article/details/51093319 和 http://blog.csdn.net/w171066/article/details/51130324
2. 安裝SVN1.8.17,請參看http://blog.csdn.net/w171066/article/details/75019663
3. 新增同步使用者,此使用者用於讀寫備份後的配置庫
[root@localhost ~]# htpasswd -b /opt/svndata syncuser syncpass
Adding password for user syncuser
[root@localhost ~]# vi /opt/svndata/accessfile
[tools:/]
syncuser = rw
4.建立備份庫,建立並編輯pre-revprop-change 和start-commit hook
[svn@localhost svndata]$ svnadmin create tools
[svn@localhost svndata]$ cd tools/hooks
[svn@localhost svndata]$ vi pre-revprop-change
#!/bin/sh
USER="$3"
# 限制只有syncuser使用者才能提交版本屬性修改到此版本庫
if [ "$USER" = "syncuser" ]; then exit 0; fi
echo "Only the syncuser user may change revision properties" >&2
exit 1
[svn@localhost svndata]$ vi start-commit
#!/bin/sh
USER="$2" # 限制只用syncuser使用者才能提交版本修改到版本庫 if [ "$USER" = "syncuser" ]; then exit 0; fi echo "Only the syncuser user may commit new revisions" >&2 exit 1[svn@localhost svndata]$chmod 775 start_commit pre-revprop-change
回到主伺服器,以下步驟在主伺服器上進行
在主伺服器上必須能夠通過http訪問備份庫.(可能需要關閉備份伺服器上的防火牆或者開放相應埠)
1.初始化備份庫
[svn@localhost ~]$ svnsync init http://192.168.3.2:8000/opt/svndata/tools file:///opt/svndata/tools --username syncuser --password syncpass
Copied properties for revision 0.
2.同步備份庫
[root@localhost ~]# svnsync sync http://192.168.3.2:8000/opt/svndata/tools --username syncuser --password syncpass
這個步驟用時很長。執行完這步,配置庫就同步過去了。
3.修改post-commit hook, 以便每次執行完commit動作,都把修改同步到備份庫
[svn@localhost ~]$ vi tools/hook/post-commit
#!/bin/sh
/bin/svnsync synchronize --non-interactive http://192.168.3.2:8000/opt/svndata/tools --username syncuser --password syncpass
相關文章
- mssql資料庫異地進行異地備份的方法SQL資料庫
- tar+ssh實現異地備份
- ManagerDB 備份檔案管理與異地備份
- Mysql異地備份指令碼MySql指令碼
- Oracle資料庫的冷備份及冷備份異地恢復方法Oracle資料庫
- 如何使用Hyper Backup備份資料至異地
- 複製SqlServer備份到其他計算機,實現異地備份SQLServer計算機
- Oracle資料庫冷備份的異地恢復Oracle資料庫
- MySQL自動備份指令碼及異地定時FTPMySql指令碼FTP
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- 使用JOB定時備份資料庫資料庫
- 實現MySQL資料庫的實時備份MySql資料庫
- 異地自動備份INSTALL資料夾
- 【TomYu 】SQL Server 2005異地備份SQLServer
- svn版本升級遷移和異地備份
- Veritas異地備份容災分三步
- OceanBase-OB備份異地恢復流程
- Mysql 資料庫主庫,備庫實時同步配置MySql資料庫
- 資料庫備份與異機恢復——熱備份方式資料庫
- 企業網盤伺服器資料異地備份、遠端備份、增量備份解決方案伺服器
- 一次帶庫備份異常
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- 資料庫差異備份與增量備份的不同之處資料庫
- 學一點 mysql 雙機異地熱備份----快速理解mysql主從,主主備份原理及實踐MySql
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- 使用RMAN實現異機備份恢復(WIN平臺)
- RMAN恢復(rman只備份資料庫,但不備份歸檔,歸檔透過簡單的rsync或scp來傳送到異地備份)資料庫
- 使用 NineData 實現備份集的實時查詢
- 幾種異地資料備份軟體/系統方案
- 配置xtrabackup備份mysql資料庫MySql資料庫
- 完全備份、差異備份、增量備份的區別
- 【RMAN】使用增量備份更新資料庫備份映象資料庫
- 使用RMAN備份資料庫資料庫
- 災備建設中異地副本含義及使用
- Linux異機備份Linux
- 【11g 庫異地恢復】實驗
- MySQL資料庫定時備份的幾種實現方法MySql資料庫
- 【MYSQL實時備份】主從模式MySql模式