使用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資料庫
- ManagerDB 備份檔案管理與異地備份
- 如何使用Hyper Backup備份資料至異地
- BMMySQL定時備份資料庫(全庫備份)的實現meuMySql資料庫
- OceanBase-OB備份異地恢復流程
- 異地自動備份INSTALL資料夾
- 實現MySQL資料庫的實時備份MySql資料庫
- linux實現mysql資料庫每天自動備份定時備份LinuxMySql資料庫
- 企業網盤伺服器資料異地備份、遠端備份、增量備份解決方案伺服器
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- 使用 NineData 實現備份集的實時查詢
- GBase8s 異地災備叢集配置方法
- 定時備份MySQL資料庫MySql資料庫
- 使用RMAN備份資料庫資料庫
- 資料庫定時備份linux篇資料庫Linux
- Mysqldump 在備庫進行備份時會阻塞備庫的sql_threadMySqlthread
- MySQL資料庫定時備份的幾種實現方法MySql資料庫
- Linux實現定時備份MySQL資料庫並刪除30天前的備份檔案LinuxMySql資料庫
- 災備建設中異地副本含義及使用
- 使用NineData實現企業級資料庫備份, 資料備份告別“拆盲盒” ?資料庫
- 【11g 庫異地恢復】實驗
- MySQL備份與主備配置MySql
- 康孚備份資料庫時報錯資料庫
- 異機使用完全備份恢復指定的PDB
- Notepad++配置備份
- RMAN備份異機恢復
- golang實現mysql資料庫備份GolangMySql資料庫
- 使用inotify-tools與rsync構建實時備份系統
- 實戰-MySQL定時增量備份(2)MySql
- 資料庫定時備份winserver2012篇資料庫Server
- oracle資料庫使用rman備份指令碼Oracle資料庫指令碼
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- 資料備份 reed-solomn 庫 的使用
- oracle資料庫備份之exp增量備份Oracle資料庫
- 資料庫備份資料庫
- gnuplot繪圖配置備份繪圖
- 實戰-MySQL定時全量備份(1)MySql
- Java實現定時備份檔案教程Java
- 【乾貨】MySQL 資料庫定時備份總結MySql資料庫