trac和subversion的备份和恢复

来源:互联网 发布:同意的计算 知乎 编辑:程序博客网 时间:2024/06/06 05:51

        因为我现在面临的问题是将一台服务器上的所有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)  ycreatedb  -O  hcx  trac  # 创建trac数据库,如果已经存在,要用dropdb命令删除数据库再创建psql  trac < /home/trac/trac.bak    #数据库还原exit  # 退出postgres用户,回到正常用户提示行
        参考连接
PostgreSQL数据库基本命令:http://blog.csdn.net/w375179337/article/details/6067712

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.baksudo 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这个版本库,可以直接拿来用

参考连接
Ubuntu下SVN服务器的安装和配置备份:http://sinykk.iteye.com/blog/859253


原创粉丝点击