网站首页 > 技术文章 正文
备份篇
前言
此处要备份的库名以test为例
目的
当svn服务器发生灾难级故障时,我们可以利用备份文件对公司资产:svn代码进行恢复
面临的现状
整个svn备份文件非常大,如果每次进行都全量备份;将消耗非常多的硬盘资源。
解决方案
使用全量备份+增量备份的方案;对svn代码进行异地备份
每个月1号进行一个完整备份,其他时候进行差异备份
一:全量备份步骤
- 1.使用svnadmin dump 仓库路径 > dumpfilesvnadmin dump /data/svn/test > /data/backup/svn/test_dumpfile
- 2.使用命令获取仓库的提交版本数,为后面的增量做好准备
svnlook youngest 仓库路径;如[root@localhost svn]# svnlook youngest /data/svn/test/73988
备注:73988是当前仓库的版本提交数量
二:增量备份步骤
- 1.备份差异的svn版本数
上1次全量备份的svn版本数有:73881;现在总有73988个版本数量,中间的差异为:73882-73988(在全量备份的基础上+1)svnadmin dump /data/svn/test -r 73882:73988 --incremental > /data/backup/svn/test_dumpfile_73882-73988
备份策略总结
凌晨1点开始备份,先使用svnlook youngest获取版本数量,然后再全量的压缩备份。将全量备份的版本号记录好,下次增量备份的时候,可以用该版本号+1进行差异备份
还原数据篇
背景
上面我们通过svn的官方备份工具svnadmin dump,对svn仓库已经进行了备份;现在我们对数据进行还原
操作环境
- 1.准备好svn备份数据:一般含有全量文件和增量备份文件
- 2.准备好一台机器,上面搭建好svn即可
全量还原步骤
- 1.执行导入命令将全量备份的数据,导入到新机器搭建好的svn上svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile
- 2.检查svn版本数;看到已经是还原成功了[root@localhost svn]# svnlook youngest /data/svn/test/73881
- 3.确认svn的提交日志内容,是否有问题
- 4.和svn的使用同学,确认有无问题
增量还原步骤
- 1.增量备份文件为:/data/backup/svn/test_dumpfile_73881-73988
svnadmin load /data/svn/test/ < /data/backup/svn/test_dumpfile_73881-73988
- 2.当我们看到Committed new rev 73989 (loaded from original rev 73988),表示还原成功
- 3.再次使用svnlook查看提交的版本数
[root@localhost svn]# svnlook youngest /data/svn/test/73988
迁移方案总结:
先利用全量备份,再利用增量备份进行还原,最后和客户端开发同学协助确认下:还原的svn数据是否可以被正常使用。
迁移篇
前言
svn://192.168.1.1/test中包含了公司所有的项目A、项目B、项目C(除客户端代码外);不便于直接使用
方法:
为了更好的区别项目,将不同的项目使用不同的版本库;从test中独立出来的子文件夹有:
- 项目A
- 项目B
- 项目C
迁移原则:
尽可能对项目开发的影响较小;
迁移目的机器
192.168.1.2;这台机器作为svn还原使用
迁移步骤:
1.先利用全量还原好数据
2.使用增量备份文件,对差异部分进行还原即可(一般是1天的数据)
先做好全量的还原
1.在项目二大群中发一个通知:svn版本库周末进行维护,周末暂停使用
2.使用完整备份的文件,过滤出需要的文件夹
svndumpfilter include 项目A < test_bak_0-90769 > 项目A_dumpfile
svndumpfilter include 项目B < test_bak_0-90769 > 项目B_dumpfile# 如果包含了多个文件夹,可以用空格+文件夹名,代表多个目录svndumpfilter include 项目C 17_项目C < test_bak_0-90769 > 项目C_dumpfile
3.在192.168.1.2新建好版本库
svnadmin create /data/svn/项目A
svnadmin create /data/svn/项目B
svnadmin create /data/svn/项目C
4.做好授权
准备好在用的人员信息,写到新版本库的授权文件中
5.使用步骤1的文件进行数据恢复
svnadmin load /data/svn/项目A < 项目A_dumpfile
svnadmin load /data/svn/项目B < 项目B_dumpfile
svnadmin load /data/svn/项目C < 项目C_dumpfile
通过增量备份,进行差异还原
1.准备差异文件
2.将差异部分进行还原
3.验证差异部分
6.验证没有问题之后。将旧机器上面的文件隐藏
移动到一个不再使用的文件夹中;7/14天后确认没有影响后删除
猜你喜欢
- 2024-10-05 SVN客户端用户使用手册(svn使用流程)
- 2024-10-05 Coding的SVN服务踩坑记(coding guideline)
- 2024-10-05 Linux SVN 命令详解(svn for linux)
- 2024-10-05 SVN用户操作教程指南 | 看完这篇变成骨灰级专家
- 2024-10-05 centos7下svn的安装与配置(svn安装命令行)
- 2024-10-05 git svn用git提交到远端svn仓库,包含只拥有某个分支权限的情况
- 2024-10-05 软件开发公司必备工具之版本控制工具
- 2024-10-05 To B 产品设计,警惕这些陷阱!(to b和to c产品的区别 to g)
- 2024-10-05 记一次jenkins构建报错解决办法:「FATAL」 Non-readable settings
- 2024-10-05 没有公网IP,简单3步实现局域网SVN版本控制系统远程访问
- 10-02基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- 10-02Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- 10-02AWD-LSTM语言模型是如何实现的_lstm语言模型
- 10-02NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 10-02使用ONNX和Torchscript加快推理速度的测试
- 10-02tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- 10-02Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- 10-02Gateway_gateways
- 最近发表
-
- 基于深度学习的铸件缺陷检测_如何控制和检测铸件缺陷?有缺陷铸件如何处置?
- Linux Mint 22.1 Cinnamon Edition 搭建深度学习环境
- AWD-LSTM语言模型是如何实现的_lstm语言模型
- NVIDIA Jetson Nano 2GB 系列文章(53):TAO模型训练工具简介
- 使用ONNX和Torchscript加快推理速度的测试
- tensorflow GPU环境安装踩坑日记_tensorflow配置gpu环境
- Keye-VL-1.5-8B 快手 Keye-VL— 腾讯云两卡 32GB GPU保姆级部署指南
- Gateway_gateways
- Coze开源本地部署教程_开源canopen
- 扣子开源本地部署教程 丨Coze智能体小白喂饭级指南
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)