svnadmin dump備份工具
svnadmin dump備份工具(轉載)
(這是subversion官方推薦的備份方式。
關閉所有執行的程式,並確認沒有程式在訪問儲存庫(如
httpd、svnserve 或本地使用者在直接訪問)。
備份svn儲存庫
#壓縮備份
svnadmin dump /home/workhome/svn/repository | gzip >
~/repository-backup.gz
#不壓縮備份
svnadmin dump /home/workhome/svn/repository >
~/repository-backup.svn
恢復svn儲存庫
#建立新的svn儲存庫
svnadmin create /home/workhome/svn/newrepository
#確認成功與否
ls -l /home/workhome/svn/newrepository
#匯入儲存庫資料
svnadmin load
/home/workhome/svn/newrepository <
~/repository-backup.svn
1)定義備份策略:
備份頻度:每週六進行一次全量備份,每週日到週五進行增量備份
備份地點:備份儲存路徑到/home/backup/svn/
備份命名:全量備份檔名為:weekly_fully_backup.yymmdd,增量備份檔案命名為:daily-incremental-backup.yymmdd
備份時間:每晚21點開始
備份檢查:每月末進行svnadmin load恢復試驗。
2)建立全量備份指令碼:
在~/下建立一個perl指令碼檔案,名為weekly_backup.pl,執行全量備份,並壓縮備份檔案,程式碼如下(本程式碼只針對一個庫的備份,如果是多個庫請做相應改動):
#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "weekly_fully_backup.".`date +%Y%m%d`;
$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;
print "Backing up to revision $youngestn";
my $svnadmin_cmd="svnadmin dump--revision $youngest $svn_repos >$backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,">$backup_dir/last_backed_up"); #記錄備份的版本號
print LOG $youngest;
close LOG;
#如果想節約空間,則再執行下面的壓縮指令碼
print "Compressing dump file...n";
print `gzip -9 $backup_dir/$next_backup_file`;
3)建立增量備份指令碼:
在全量備份的基礎上,進行增量備份:在~/下建立一個perl指令碼檔案,名為:daily_backup.pl,程式碼如下:
#!/usr/bin/perl -w
my $svn_repos="/home/svn/repos/project1";
my $backup_dir="/home/backup/svn/";
my $next_backup_file = "daily_incremental_backup.".`date +%Y%m%d`;
open(IN,"$backup_dir/last_backed_up");
$previous_youngest =
chomp $previous_youngest;
close IN;
$youngest=`svnlook youngest $svn_repos`;
chomp $youngest;
if ($youngest eq $previous_youngest)
{
print "No new revisions to backup.n";
exit 0;
}
my $first_rev = $previous_youngest + 1;
print "Backing up revisions $youngest ...n";
my $svnadmin_cmd = "svnadmin dump--incremental --revision $first_rev $youngest $svn_repos > $backup_dir/$next_backup_file";
`$svnadmin_cmd`;
open(LOG,">$backup_dir/last_backed_up"); #記錄備份的版本號
print LOG $youngest;
close LOG;
#如果想節約空間,則再執行下面的壓縮指令碼
print "Compressing dump file...n";
print `gzip -g $backup_dir/$next_backup_file`;
4)配置/etc/crontab檔案
配置 /etc/crontab 檔案,指定每週六執行weekly_backup.pl,指定週一到週五執行daily_backup.pl;
具體步驟俺就不囉嗦了.
5)備份恢復檢查
在月底恢復檢查中或者在災難來臨時,請按照如下步驟進行恢復:恢復順序從低版本逐個恢復到高版本;即,先恢復最近的一次完整備份 weekly_full_backup.071201(舉例),然後恢復緊挨著這個檔案的增量備份 daily_incremental_backup.071202,再恢復後一天的備份071203,依次類推。如下:
user1>mkdir newrepos
user1>svnadmin create newrepos
user1>svnadmin load newrepos < weekly_full_backup.071201
user1>svnadmin load newrepos < daily_incremental_backup.071202
user1>svnadmin load newrepos < daily_incremental_backup.071203
....
如果備份時採用了gzip進行壓縮,恢復時可將解壓縮和恢復命令合併,簡單寫成:
user1>zcat weekly_full_backup.071201 | svnadmin load newrepos
user1>zcat daily_incremental_backup.071202 | svnadmin load newrepos
...
(這部分內容很多參考了《版本控制之道》)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-713631/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- pg_dump備份加密加密
- svn dump 全自動備份指令碼指令碼
- pg_dump 備份,恢復資料庫資料庫
- redis資料備份和遷移工具redis-dump安裝和使用初探Redis
- 【備份工具】mydumper
- mysql備份工具MySql
- 【PG備份恢復】pg_dump命令測試
- 磁碟備份工具dcfldd
- dump備份並定時刪除過去檔案
- 備份工具軟體整理
- PostgreSQL邏輯備份pg_dump使用及其原理解析SQL
- MySQL 官方出品,比 mydumper 更快的多執行緒邏輯備份工具-MySQL Shell Dump & LoadMySql執行緒
- 利用dump和restore實現Linux的備份和還原RESTLinux
- MongoDB 邏輯備份工具mongodumpMongoDB
- Mac Backup Guru for Mac(備份工具)Mac
- Oracle備份之RMAN工具(四)Oracle
- Oracle備份之RMAN工具(三)Oracle
- Oracle備份之RMAN工具(二)Oracle
- Oracle備份之RMAN工具(一)Oracle
- mysql企業備份工具mysqlbackupMySql
- 【備查】oracle dump命令Oracle
- MySQL中如何選擇合適的備份策略和備份工具MySql
- MySQL資料庫備份種類以及常用備份工具彙總MySql資料庫
- MySQL 資料庫備份種類以及常用備份工具彙總MySql資料庫
- MOGDB/openGauss資料庫gs_dump備份指令碼及清理資料庫指令碼
- PgSql備份pg_dump與還原手記pg_restore(轉)SQLREST
- mydumper備份工具介紹與使用
- Back In Time for Mac資料備份工具Mac
- 我常用的4個備份工具
- MySQL 5.7 mysqlpump 備份工具說明MySql
- CSDN部落格匯出備份工具
- innodb儲存引擎備份工具--Xtrabackup儲存引擎
- XtraBackup 2.2.8 釋出,MySQL 備份工具MySql
- 小花狸ITPUB部落格備份工具
- Mysql 物理備份工具xtrabackup的使用MySql
- HBase 增量備份和還原工具
- 【MySql】 MySql備份工具Xtrabackup之二MySql
- 【MySql】 MySql備份工具Xtrabackup之一MySql