您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > SVN备份还原操作手册
SVN备份还原操作手册一、命令备份1.svnadmindump全量备份进入SVN服务端安装目录下运行svnadmindump命令(C:/Repositories/QA为SVN库中项目目录,full.svn.bak为备份文件名)2.svnadmindump增量备份(以增量把版本库8转存到svn.bak.1,-r[--revision]:指定版本;--incremental:以增量方式进行转存)3.svnadmindump还原(先创建一个新的版本库,再还原完全备份,有增量备份的再还原增量备份)(进入SVN服务端安装目录下调用命令创建test测试库)4.运行svnadminload还原命令(增量还原同全量还原)二、脚本备份(针对项目库备份)1.svnadmindump全量备份脚本(在SVN库中添加全量备份脚本backup.bat,需要安装对应的压缩工具)2.脚本内容remSubversion的安装目录setSVN_HOME=C:\ProgramFiles\VisualSVNServerrem所有版本库的父目录setSVN_ROOT=C:\Repositoriesrem备份的目录setBACKUP_SVN_ROOT=C:\bakrem创建存放版本库的临时目录setBACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,4%%date:~5,2%%date:~8,2%ifexist%BACKUP_DIRECTORY%gotocheckBackecho%date:~0,4%%date:~5,2%%date:~8,2%:建立备份目录%BACKUP_DIRECTORY%%SVN_ROOT%/backup.logremSVN版本库自动备份时需要rem创建备份目录md%BACKUP_DIRECTORY%cdC:\ProgramFiles\VisualSVNServer\bin\svnadmin.exedumpC:\Repositories\QA%BACKUP_DIRECTORY%\FINANCE%date:~0,10%rem验证目录是否为版本库,如果是则取出名称备份remfor/r%SVN_ROOT%%%Iin(.)do@ifexist%%I\conf\svnserve.confcall%SVN_ROOT%\simpleBackup.bat%%~fI%%~nIecho开始压缩版本库,请不要中止....rem%SVN_ROOT%\7z.exea-tzip%BACKUP_SVN_ROOT%\%date:~0,4%%date:~5,2%%date:~8,2%.zip%BACKUP_DIRECTORY%\*-rnulecho版本库压缩完成!rem清除临时创建备份目录remrd/s/q%BACKUP_DIRECTORY%gotoend:checkBackecho备份目录%BACKUP_DIRECTORY%已经存在,请清空。gotoend:endechoon3.运行脚本backup.bat,会生成备份文件4.备份还原将备份文件考到SVN服务器安装目录下,运行SVN还原命令三、脚本备份(针对SVN仓库备份)1.svnadmindump全量备份脚本(在SVN库中添加全量备份脚本DumpAll.bat)2.脚本内容:Begin@echooffsetlocalenabledelayedexpansionecho正在准备备份所有版本库……echo.::设置SVN命令目录setSVN_CMD=C:\ProgramFiles\VisualSVNServer\bin::设置所有版本库根目录setREPOS_ROOT=C:\Repositories::设置所有版本库备份根目录setREPOS_BACKUP_ROOT=C:\RepositoriesBackUpifnotexist%REPOS_BACKUP_ROOT%mkdir%REPOS_BACKUP_ROOT%::获取LastRevisions目录setREPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%\LastRevisionsifnotexist%REPOS_LAST_REVERSION_DIRECTORY%gotoError1::设置所有版本库备份目录setBACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpsetBACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%ifexist%BACKUP_DIRECTORY%gotoError2mkdir%BACKUP_DIRECTORY%::设置用户权限信息备份目录setREPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoifnotexist%REPOS_USER_INFO_DIRECTORY%mkdir%REPOS_USER_INFO_DIRECTORY%::设置LastRevisions备份目录setREPOS_LAST_REVERSION_BACKUP_DIRECTORY=%BACKUP_DIRECTORY%\LastRevisionsifnotexist%REPOS_LAST_REVERSION_BACKUP_DIRECTORY%mkdir%REPOS_LAST_REVERSION_BACKUP_DIRECTORY%::备份所有版本库::i-版本库、j-版本库最新版本号、k-上次完全备份时版本库的版本号echo===================%date%%time:~0,8%:执行全部版本库备份By陈静.===================%REPOS_BACKUP_ROOT%\BackUp.logecho备份的版本库版本信息如下:%REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for/r%REPOS_ROOT%%%iin(.)doifexist%%i\conf\svnserve.conf(::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlookyoungest%%~fi%%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for/f%%jin(%%~ni_last_revision.tmp)doif%%jgtr0(::判断以前是否存在该版本库的版本信息,存在说明以前备份过,需要基于其进行备份;否则对该版本库进行全新备份ifexist%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt(::读取该版本库上次备份时保存的版本信息,如果小于当前版本信息则进行处理for/f%%kin(%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt)doif%%klss%%j(echo.echo开始备份版本库%%~ni……::取得该版本库本次备份的起始版本号setversion=%%kset/aversion=!version!+1::增量备份版本库%SVN_CMD%\svnadmindump--deltas%%~fi--revision!version!:head--incremental%BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmpecho%%~ni:!version!-%%j%REPOS_BACKUP_ROOT%\BackUp.logecho版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmp!))else(echo.echo开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmindump--deltas%%~fi%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmpecho%%~ni:0-%%j%REPOS_BACKUP_ROOT%\BackUp.logecho版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::将本次版本库备份时的最新版本信息写入文件保存echo%%j%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txtecho%%j%REPOS_LAST_REVERSION_BACKUP_DIRECTORY%\%%~ni_last_revision.txt)::删除临时文件del%%~ni_last_revision.tmp)echo.echo开始备份用户权限信息……xcopy/y%REPOS_ROOT%\authz%REPOS_USER_INFO_DIRECTORY%xcopy/y%REPOS_ROOT%\authz-windows%REPOS_USER_INFO_DIRECTORY%xcopy/y%REPOS_ROOT%\htpasswd%REPOS_USER_INFO_DIRECTORY%echo.echo用户权限信息备份成功!echo.echo全部版本库备份成功!gotoend:Error1echo.echo提示:echo上次备份保存的%REPOS_LAST_REVERSION_DIRECTORY%文件夹不存在,请确认后从上次备份中拷贝LastReversions到%REPOS_BACKUP_ROOT%目录,重新运行程序;echo或者,不基于上次备份重新执行备份!echo重新备份?(Y/N)set/pinput=if%input%==Y(mkdir%REPOS_LAST_REVERSION_DIRECTORY%gotoBegin)else(gotoEnd):Error2echo.echo备份目录已经存在,请确认后删除该目录,重新运行程序!gotoEnd:Endecho.echo程序执行结束!3.备份结果4.还原脚本(在SVN库中添加全量备份脚本LoadBackUp.bat)::LoadBackUp.bat@echooffecho正在准备还原所有版本库……echo.::设置SVN命令目录setSVN_CMD=C:\ProgramFiles\VisualSVNServer\bin::设置所有版本库根目录setREPOS_ROOT=C:\Repositories::设置所有版本库备份根目录setREPOS_BACKUP_ROOT=C:\RepositoriesBackUpifnotexist%REPOS_BACKUP_ROOT%gotoError::还原所有版本库echo===================%date%%time:~0,8%:执行版本库执行还原操作By陈静.===================%REPOS_BACKUP_ROOT%\SvnLoad.logecho还原的版本库版本信息如下:%REPOS_BACKUP_ROOT%\SvnLoad.log::将所有保存版本库备份的文件夹名写入tmpdir/b%REPOS_BACKUP_ROOT%\*.dmpfolderName.tmp::依次操作tmp文件中包含的文件夹for/f%%hin(folderName.tmp)do(::将所有版本库文件名写入tmpdir/b/a-d%REPOS_BACKUP_ROOT%\%%h\*.dmpfileName.tmp::依次操作tmp文件中包含的备份文件for/f%%iin(fileName.tmp)do(::处理备份文件名,以取得版本库名和相应的版本号for/ftokens=1,2*delims=-%%jin(%%~ni)do(echo.echo开始还原版本库%REPOS
本文标题:SVN备份还原操作手册
链接地址:https://www.777doc.com/doc-2850905 .html