红联Linux门户
Linux帮助

trac和subversion的备份和恢复

发布时间:2016-02-13 10:36:19来源:linux网站作者:古-月

因为我现在面临的问题是将一台服务器上的所有trac服务全部移植到另一台新的服务器上,所以需要对所有数据和资料进行备份移植。备份的过程也是有一定顺序的。


1.数据库的备份和恢复
数据库的备份是很重要的,以为数据库存储了trac的项目信息,如果没有完整移植,会影响后面的所有工作。我们使用的是postgres数据库。postgres数据库自带了导出数据和导入数据的功能,可以参考后面的连接。数据的导出需要在原服务器上进行,也可以从其他客户端使用ssh登录服务器进行。命令很简单,不过要先切换到postgres用户:

sudo  su  postgres   # 切换到postgres用户 
pg_dump  trac > trac.bak  #备份trac数据库  

数据库本分完毕后,我们在新服务器上使用ssh的远程拷贝功能,将备份文件复制到新服务器上进行移植:

ssh  root@115.156.219.36  # 输入密码 
sudo  su  postgres   # 切换到postgres用户 
scp  trac.bak  root@115.156.219.42:/home/trac/trac.bak   # 输入密码

在新服务器上进行操作: 

sudo  su  postgres   # 切换到postgres用户 
createuser  -A  -D  -P  hcx    # 创建smartcar用户,该用户要与原数据库的用户相同 
Shall the new role be allowed to create more new roles? (y/n)  y 
createdb  -O  hcx  trac  # 创建trac数据库,如果已经存在,要用dropdb命令删除数据库再创建 
psql  trac < /home/trac/trac.bak    #数据库还原 
exit  # 退出postgres用户,回到正常用户提示行 


2.trac的备份和恢复
trac的备份可以直接复制trac的仓库,但是不提倡这种方法,因为这种方法会产生一些不必要的麻烦。trac本身带有一种热备份的工具,就是可以在服务器运行的同时进行备份。命令很简单:
sudo  trac-admin  /var/www/trac  hotcopy   /home/trac_bak 

恢复也很简单,将备份的文件复制到服务器相应的位置,并注意将文件夹用户修改为apache用户,即:

scp  -r   /home/trac_bak   root@115.156.219.42:/home/trac/trac  #远程拷贝 
sudo  chown  -R  www-data:www-data   /home/trac/trac  
sudo  trac-admin  /home/trac/trac  upgrade   
sudo  trac-admin  /home/trac/trac  wiki  upgrade   

然后要修改trac.ini文件的部分路径,更新服务器即可。trac插件的移植,我一直都没有想到很好的办法,所以插件都是手动安装的。


3.svn的备份和还原

完全备份和增量备份svn:

sudo svnadmin  dump  /svn/project/www > full.svn.bak      #完全备份/svn/project/www这个版本库,并另存为full.svn.bak 
sudo svnadmin  dump  /svn/project/www -r 8 –incremental > svn.bak.1     #以增量把版本库8转存到svn.bak.1 

参数介绍:
-r [--revision] :指定版本ARG(或X:Y范围) 
–incremental :以增量方式进行转存 
–deltas :在转存输出中使用差异 
-q [--quiet] :在标准错误输出不显示进度(仅错误) 

dump备份还原:
sudo svnadmin create /svn/project/test               #创建一个新的版本库 
sudo svnadmin load /svn/project/test < full.svn.bak #现还原完全备份 
sudo svnadmin load /svn/project/test < svn.bak.1     #再还原增量备份的内容 

热拷贝:

sudo svnadmin hotcopy /svn/project/www /root/backup.svn.www/       #热拷贝www这个版本库,可以直接拿来用


本文永久更新地址:http://www.linuxdiyf.com/linux/18046.html