SVN完全备份,增量备份,库同步

svn备份一般采用三种方式:1)svnadmin dump 2)svnadmin hotcopy 3)svnsync.

优缺点分析:

==============

第一种svnadmin hotcopy只能进行全量拷贝,不能进行增量备份;

优点:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。

缺点:比较耗费硬盘,需要有较大的硬盘支持.

第二种svnadmin dump是官方推荐的备份方式,

优点:比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。

缺点:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。

第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。

优点:当制作成2个镜像库的时候起到双机实时备份的作用;

缺点:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。

下面具体描述这三种的备份的方法:

===============

就以下图project版本库为实例

1, svnadmin hotcopy

svnadmin hotcopy是将整个库都“热”拷贝一份出来,包括库的钩子脚本、配置文件等;任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库。

svnadmin dump命令语法

svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH

如果要把project备份到d:svnrootbak目录下,只需要运行:

svnadmin hotcopy E:\Repositories_test\project d:\svnrootbak\project

project版本库用hotcopy命令备份前后文件大小相同,如下图。

2, svnadmin dump

svnadmin dump命令语法

svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]

svnadmin dump命令用于导出整个Repository或Repository下的某个范围的修订版本。REPOS_PATH是版本库的路径,[-r LOWER[:UPPER]]用于指定导出的修订版本范围,由参数-r和两个用:号隔开阿拉伯数字组成。例如:-r 0:50表示导出才版本0到版本50之间的所有修订版,-r是revision的缩写。

而另一个关键参数是--incremental。 它使用增量方式来导出版本,即每次都只导出自上一个版本以来的修改。这样的好处是第一:可以把一个大的文 件切分成若干个小的文件。第二:在版本库已经存在的情况下,我们只需要每次导出修改的部分,不需要每次都导出整个版本库的内容。甚至可以通过hook脚本 每天晚上自动将当天的修改dump出来做备份用。

首先用 svnlook youngest查看一下project最新的版本号,显示最新版本记录为4。

svnlook youngest E:\Repositories_test\project

svnadmin dump命令做全量备份

svnadmin dump E:\Repositories_test\project > d:\svnrootbak\dumpfile

svnadmin dump命令做版本0-2的备份

svnadmin dump E:\Repositories_test\project -r 0:2 --incremental  > d:\svnrootbak\dumpfile1

svnadmin dump命令做版本3-4的备份

svnadmin dump E:\Repositories_test\project -r 3:4 --incremental  > d:\svnrootbak\dumpfile2

三个dump文件大小如下图:

分别在SVN服务端新建空版本库dumpdump1dump2

dump文件导入dump版本库

svnadmin load E:\Repositories_test\dump < d:\svnrootbak\dumpfile

dump1文件导入dump1版本库

svnadmin load E:\Repositories_test\dump1 < d:\svnrootbak\dumpfile1

dump1dump2文件导入dump1版本库(注: dump2文件不能导入没有1-2版本的原库中)

svnadmin load E:\Repositories_test\dump2 < d:\svnrootbak\dumpfile1

svnadmin load E:\Repositories_test\dump2 < d:\svnrootbak\dumpfile2

执行上述命令后SVN服务端文件目录如下:

3, svnsync

语法是:svnsync init{你刚创建的库url}{源库url}

svnsync sync : {你刚创建的库url}

在要备份的机器上建立版本库project1

进入project1版本库的hooks目录,例如D:\Repositories\TestRepostitory\hooks

③创建pre-revprop-change.bat文件:复制pre-revprop-change.tmpl,将扩展名改为pre-revprop-change.bat,并且清空原有的所有内容,保存。

④修改文件:修改pre-revprop-change.tmpl文件,用记事本打开该文件,把文件最后的exit 1改为exit 0

(原脚本的意思是如果修改的是svn:log属性,将允许修改,返回0;否则,不允许,返回1,我们要将它改为允许修改所有的属性,在脚本中直接返回0

⑤同步初步:

在目标机器上,打开命令提示符窗口运行

svnsync
init file:///D:/Repositories/project1 http://192.168.2.12:8080/svn/project

⑥实现同步:

在目标机器上,打开命令提示符窗口运行

svnsync
sync file:///D:/Repositories/project1

目标机SVN服务器同步后截图如下:

时间: 2024-10-17 21:07:22

SVN完全备份,增量备份,库同步的相关文章

MySQL 备份和恢复(三)Xtrabackup实现热备:完全备份+增量备份

Percona XtraBackup is the world's only open-source, free MySQL hot backup software that performs non-blocking backups for InnoDB and XtraDB databases. With Percona XtraBackup, you can achieve the following benefits: Backups that complete quickly and

完全备份+增量备份完成即时点还原

完全备份+增量备份完成及时点还原 首先是一些感念 备份类型: 热备份,温备份,冷备份 热备份;读写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份,读,写操作均终止: 物理备份和逻辑备份 物理备份:复制数据文件 逻辑备份:将数据导出至文本文件中. 完全备份,增量备份和差异备份: 完全备份:备份全部数据 增量备份:仅备份上次完全备份或者增量备份以后变化的数据: 差异备份:仅备份上次完全备份以来变化的数据: 备份策略:每周完全+每日增量 完全备份;mysqldump 增量备份;备份二进制日志

MySQL数据库备份:完全备份+增量备份

MySQL数据库备份:完全备份+增量备份 ************************************************************************************** 计划任务: crontab -e  -u root 00 6  * * 1  /shell/mysqlbak.sh &> /dev/null 00 23  * * 2-7  /shell/mysqladd.sh &> /dev/null **************

mysql全备份 + 增量备份

mysql全备份 + 增量备份 配置文件: 管理mysql配置文件,打开binlog日志 对于mysql数据库: log_bin = /var/log/mysql/mysql_bin.log server-id = 1(必须有,否则重启fail) 对于mariadb数据库: log_bin = /var/log/mysql/mysql-bin.log 修改配置文件后需要重启mysql服务: service mysql restart | /etc/init.d/mysql restart 可登陆

mysql全库备份/增量备份脚本

http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份方案: 周日凌晨1点全库备份 周一到周六凌晨每隔4个小时增量备份一次 设置crontab任务,每天执行备份脚本 # crontab –e #每个星期日凌晨1:00执行完全备份脚本 0 1 * * 0 /root/mysqlfullbackup.sh >/dev/null 2>&1 #周一

mysql全备份+增量备份笔记总结

备份基础知识 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行: 温备(warm backup): 服务在线,但仅支持读请求,不允许写请求: 热备(hot backup):备份的同时,业务不受影响. 这种类型的备份,取决于业务的需求,而不是备份工具 MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具 完全备份:full backup,备份全部字符集. 增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使

MySQL 完全备份 + 增量备份+完全恢复

简介 1·完全备份与增量备份的概念2·使用 mysqldump 完全备份3·使用 mysqldump 进行表结构备份4·完全备份恢复的两种方法5·使用 flush logs 进行增量备份6·增量备份恢复7·基于时间点与位子的恢复8·MySQL 备份思路 完全备份与增量备份的概念 1·MySQL 完全备份:是对整个数据库的备份.数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,它也是增量备份的基础.它的优点:备份与恢复操作简单,缺点是数据存在大量的重复,占用大量的备份空间,备份时间长.2·

Mysql -- 完全备份 + 增量备份 + 恢复

文章目录 一.数据库备份的分类 二.MySQL 完全备份 (1)完全备份特点 (2)mysqldump 备份库 1.针对单个库进行完全备份 2.针对多个库进行完全备份 3.对所有库进行完全备份 (3)恢复数据库操作 1.source 命令 2.使用 mysql 命令 (4)mysqldump 备份表 1.备份表 2.备份表的结构 (5)恢复表的操作 三.MySQL 增量备份 一.数据库备份的分类: 1.从物理与逻辑的角度,备份可以分为: 物理备份:对数据库操作系统的物理文件(数据文件.日志文件等

Xtrabackup全量备份/增量备份脚本

一.全量备份脚本 1.全量备份脚本 #!/bin/bash #Description:xtrabackup complete #Author:created by michael #2017-08-07 v0.1 # USER=root PASSWD=123456 BACKUP_DIR=/backup/mysql/complete DATE=$(date +"%F_%T") [[ -d $BACKUP_DIR ]] || mkdir $DATE_DIR innobackupex --u

xtrabackup完全备份增量备份以及恢复

一.安装 1.配置Yum源 rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm 2.安装 yum install xtrabackup -y 二.修改Mysql主配置文件 my.cnf(根据编译安装的参数进行设置,RPM安装可省略) [mysqld] datadir=/data/mysqldb basedir=/usr/local/mysql/ 三.开始备份 1.完全