मैं एसवीएन के लिए नया हूं और मैं जानना चाहता हूं कि विंडोज वातावरण में रिपॉजिटरी के बैकअप के लिए क्या तरीके उपलब्ध हैं?
मैं एसवीएन के लिए नया हूं और मैं जानना चाहता हूं कि विंडोज वातावरण में रिपॉजिटरी के बैकअप के लिए क्या तरीके उपलब्ध हैं?
जवाबों:
आप (Linux) कुछ का उपयोग कर सकते हैं:
svnadmin dump repositorypath | gzip > backupname.svn.gz
चूंकि विंडोज GZip का समर्थन नहीं करता है, यह सिर्फ है:
svnadmin dump repositorypath > backupname.svn
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
यह 'backup.7z' नामक एक फ़ाइल बनाएगा जिसमें एक एकल फ़ाइल, 'backupname.svn' होगी, जो इससे आउटपुट है svnadmin dump
।
for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
हम svnadmin हॉटकॉपी का उपयोग करते हैं, जैसे:
svnadmin hotcopy C:\svn\repo D:\backups\svn\repo
पुस्तक के अनुसार :
आप इस आदेश को किसी भी समय चला सकते हैं और रिपॉजिटरी की एक सुरक्षित प्रतिलिपि बना सकते हैं, भले ही अन्य प्रक्रियाएं रिपॉजिटरी का उपयोग कर रही हों।
आप बेशक जिप (अधिमानतः 7-जिप) बैकअप कॉपी कर सकते हैं। IMHO यह बैकअप विकल्पों में से सबसे सीधा है: आपदा के मामले में स्थिति में वापस लाने के अलावा अन्य कुछ भी नहीं करना है।
सबवर्सन वेब साइट पर एक hotbackup.py स्क्रिप्ट उपलब्ध है जो बैकअप को स्वचालित करने के लिए काफी उपयोगी है।
http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in
यहाँ एक पर्ल स्क्रिप्ट है जो होगी:
लिपी:
my $svn_repo = "/var/svn";
my $bkup_dir = "/home/backup_user/backups";
my $bkup_file = "my_backup-";
my $tmp_dir = "/home/backup_user/tmp";
my $bkup_svr = "my.backup.com";
my $bkup_svr_login = "backup";
$bkup_file = $bkup_file . `date +%Y%m%d-%H%M`;
chomp $bkup_file;
my $youngest = `svnlook youngest $svn_repo`;
chomp $youngest;
my $dump_command = "svnadmin -q dump $svn_repo > $bkup_dir/$bkup_file ";
print "\nDumping Subversion repo $svn_repo to $bkup_file...\n";
print `$dump_command`;
print "Backing up through revision $youngest... \n";
print "\nCompressing dump file...\n";
print `gzip -9 $bkup_dir/$bkup_file\n`;
chomp $bkup_file;
my $zipped_file = $bkup_dir . "/" . $bkup_file . ".gz";
print "\nCreated $zipped_file\n";
print `scp $zipped_file $bkup_svr_login\@$bkup_svr:/home/backup/`;
print "\n$bkup_file.gz transfered to $bkup_svr\n";
#Test Backup
print "\n---------------------------------------\n";
print "Testing Backup";
print "\n---------------------------------------\n";
print "Downloading $bkup_file.gz from $bkup_svr\n";
print `scp $bkup_svr_login\@$bkup_svr:/home/backup/$bkup_file.gz $tmp_dir/`;
print "Unzipping $bkup_file.gz\n";
print `gunzip $tmp_dir/$bkup_file.gz`;
print "Creating test repository\n";
print `svnadmin create $tmp_dir/test_repo`;
print "Loading repository\n";
print `svnadmin -q load $tmp_dir/test_repo < $tmp_dir/$bkup_file`;
print "Checking out repository\n";
print `svn -q co file://$tmp_dir/test_repo $tmp_dir/test_checkout`;
print "Cleaning up\n";
print `rm -f $tmp_dir/$bkup_file`;
print `rm -rf $tmp_dir/test_checkout`;
print `rm -rf $tmp_dir/test_repo`;
स्क्रिप्ट स्रोत और इस प्रकार के बैकअप के लिए तर्कसंगत के बारे में अधिक विवरण।
मैं उपयोग करता हूं svnsync का हूं , जो एक दूरस्थ सर्वर को दर्पण / दास के रूप में स्थापित करता है। हमारे पास दो सप्ताह पहले एक सर्वर था, और मैं दास को प्राथमिक स्थिति में आसानी से स्विच करने में सक्षम था (केवल मूल के लिए गुलाम भंडार पर यूयूआईडी को रीसेट करना था)।
एक और लाभ यह है कि सिंक को एक मध्य-व्यक्ति द्वारा चलाया जा सकता है, बजाय किसी सर्वर पर कार्य के। मेरे पास दो वीपीएन के लिए एक क्लाइंट है जो उनके बीच एक रिपॉजिटरी सिंक करता है।
svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH
यह उपकमांड आपकी रिपॉजिटरी का पूर्ण "हॉट" बैकअप बनाता है, जिसमें सभी हुक, कॉन्फ़िगरेशन फाइलें और, निश्चित रूप से, डेटाबेस फाइलें शामिल हैं।
आप एक रिपॉजिटरी बैकअप ( डंप ) के साथ बना सकते हैं svnadmin dump
।
फिर आप इसे उपयोग करने में आयात कर सकते हैं svnadmin load
।
SVNBook में विस्तृत संदर्भ: "svnadmin का उपयोग कर रिपॉजिटरी डेटा माइग्रेशन"
मूल रूप से यह svos सर्वर बंद कर दिया है तो रिपॉजिटरी फ़ोल्डर को कॉपी करने के लिए सुरक्षित है। (स्रोत: https://groups.google.com/forum/?fromgroups# .topic/ visualsvn/ i_55khUBrys% 5B1-25 % 5D )
इसलिए यदि आपको सर्वर को रोकने की अनुमति है, तो इसे करें और बस रिपॉजिटरी की प्रतिलिपि बनाएँ, या तो कुछ स्क्रिप्ट या बैकअप टूल के साथ। कोबियन बैकअप यहां अच्छी तरह से फिट बैठता है क्योंकि यह स्वचालित रूप से सेवाओं को रोक और शुरू कर सकता है, और यह वृद्धिशील बैकअप कर सकता है इसलिए आप केवल रिपॉजिटरी के कुछ हिस्सों का बैकअप ले रहे हैं जो हाल ही में बदल गए हैं (उपयोगी यदि रिपॉजिटरी बड़ी है और आप दूरस्थ स्थान पर बैकअप ले रहे हैं )।
उदाहरण:
बैकअप कार्य जोड़ें:
रिपॉजिटरी फ़ोल्डर में स्रोत सेट करें (उदा C:\Repositories\
),
पूर्व-बैकअप ईवेंट "STOP_SERVICE"
VisualSVN जोड़ें ,
पोस्ट-बैकअप ईवेंट जोड़ें, "START_SERVICE"
VisualSVN,
आवश्यकतानुसार अन्य विकल्प निर्धारित करें। हमने वृद्ध लोगों को हटाने, बैकअप शेड्यूल, गंतव्य, संपीड़न झुकाव सहित वृद्धिशील बैकअप स्थापित किए हैं। संग्रह विभाजन आदि।
फायदा!
एक svn सर्वर को बैकअप करने के लिए 2 मुख्य विधियां हैं, पहले हॉटकॉपी है जो आपकी रिपॉजिटरी फ़ाइलों की एक प्रति बनाएगी, इस दृष्टिकोण के साथ मुख्य समस्या यह है कि यह अंतर्निहित फ़ाइल सिस्टम के बारे में डेटा को बचाता है, इसलिए आपको रिपॉस्ट करने की कोशिश करने में कुछ कठिनाइयां हो सकती हैं एक और svn सर्वर तरह या किसी अन्य मशीन में इस तरह का बैकअप। एक अन्य प्रकार का बैकअप है जिसे डंप कहा जाता है, यह बैकअप अभ्यस्त फ़ाइल सिस्टम की किसी भी जानकारी को सहेजता है और इसके किसी भी प्रकार के SVN सर्वर को tigiris.org तोड़फोड़ में आधारित है।
बैकअप टूल के बारे में आप कमांड प्रॉम्प्ट से svnadmin टूल (यह हॉटकॉपी और डंप करने में सक्षम है) का उपयोग कर सकते हैं, यह कंसोल उसी डायरेक्टरी में रहता है जहां आपका svn सर्वर रहता है या आप svn बैकअप टूल के लिए गूगल कर सकते हैं।
मेरी सिफारिश यह है कि आप दोनों प्रकार के बैकअप करते हैं और उन्हें कार्यालय से अपने ईमेल अकाउन्ट, अमेजन s3 सेवा, ftp, या azure सेवाओं से बाहर निकालते हैं, इस तरह आपके पास svnn को होस्ट करने के लिए बिना किसी सुरक्षा बैकअप के होगा। आपका कार्यालय।
यहां स्थानीय और दूरस्थ तोड़फोड़ रिपॉजिटरी का एक डंप बनाने के लिए GUI विंडोज टूल:
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
उपकरण विवरण कहता है:
यह बस उपकरण एक स्थानीय और दूरस्थ तोड़फोड़ भंडार का एक डंप बैकअप बनाने की अनुमति देता है। सॉफ्टवेयर "svnadmin" के समान तरीके से काम करता है, लेकिन इस पर कोई GUI दृश्य नहीं है। इसके बजाय किसी अन्य अतिरिक्त उपकरण के बिना सीधे स्टैंडअलोन मोड में डंप बनाने की अनुमति के लिए सीधे तोड़फोड़ पुस्तकालयों का उपयोग करें।
उममीद है कि इससे मदद मिलेगी...
मैं अपने बैकअप स्थान पर पूरी रेपो डायरेक्टरी को कॉपी करना पसंद करता हूं। इस तरह, अगर कुछ होता है, तो आप केवल निर्देशिका को वापस कॉपी कर सकते हैं और तुरंत जाने के लिए तैयार हो सकते हैं।
यदि आवश्यक हो, तो बस अनुमतियों को संरक्षित करना सुनिश्चित करें। आमतौर पर, यह केवल लिनक्स मशीनों पर एक चिंता का विषय है।
होस्ट किए गए रिपॉजिटरी के लिए आप svn संस्करण 1.7 का उपयोग कर सकते हैं svnrdump
, जो svnadmin dump
स्थानीय रिपॉजिटरी के लिए अनुरूप है। यह लेख एक अच्छा वॉक-थ्रू प्रदान करता है, जो अनिवार्य रूप से उबलता है:
svnrdump dump /URL/to/remote/repository > myRepository.dump
डंप फ़ाइल डाउनलोड करने के बाद आप इसे स्थानीय स्तर पर आयात कर सकते हैं
svnadmin load /path/to/local/repository < myRepository.dump
या अपनी पसंद के होस्ट पर अपलोड करें।
यदि आप FSFS रिपॉजिटरी प्रारूप (डिफ़ॉल्ट) का उपयोग कर रहे हैं, तो आप बैकअप बनाने के लिए रिपॉजिटरी को खुद कॉपी कर सकते हैं। पुराने BerkleyDB प्रणाली के साथ, रिपॉजिटरी प्लेटफ़ॉर्म स्वतंत्र नहीं है और आप आमतौर पर svnadmin डंप का उपयोग करना चाहते हैं।
बैकअप के लिए svnbook प्रलेखन विषय की सिफारिश की svnadmin hotcopy
कमान, के रूप में यह प्रयोग और ऐसे में फ़ाइलों जैसे मुद्दों का ख्याल रखना होगा।
@echo off
set hour=%time:~0,2%
if "%hour:~0,1%"==" " set hour=0%time:~1,1%
set folder=%date:~6,4%%date:~3,2%%date:~0,2%%hour%%time:~3,2%
echo Performing Backup
md "\\HOME\Development\Backups\SubVersion\%folder%"
svnadmin dump "C:\Users\Yakyb\Desktop\MainRepositary\Jake" | "C:\Program Files\7-Zip\7z.exe" a "\\HOME\Development\Backups\SubVersion\%folder%\Jake.7z" -sibackupname.svn
यह मेरे द्वारा चलाए जा रहे बैच फ़ाइल है
दैनिक और पूर्ण बैकअप समाधान के लिए, यहां SVN बैकअप स्क्रिप्ट का उपयोग करें ।
मैंने अपने प्रोजेक्ट के दूरस्थ SVN रिपॉजिटरी का बैकअप लेने के उद्देश्य से मेरे द्वारा उठाए गए कदमों का संकलन किया है।
install svk (http://svk.bestpractical.com/view/SVKWin32)
install svn (http://sourceforge.net/projects/win32svn/files/1.6.16/Setup-Subversion-1.6.16.msi/download)
svk mirror //local <remote repository URL>
svk sync //local
इसमें समय लगता है और यह कहता है कि यह भंडार से लॉग ला रहा है। यह अंदर फाइलों का एक सेट बनाता है C:\Documents and Settings\nverma\.svk\local
।
दूरस्थ से परिवर्तनों के नवीनतम सेट के साथ इस स्थानीय रिपॉजिटरी को अपडेट करने के लिए, बस समय-समय पर पिछली कमांड को चलाएं।
अब आप अपने स्थानीय भंडार ( /home/user/.svk/local
इस उदाहरण में) के साथ खेल सकते हैं जैसे कि यह एक सामान्य एसवीएन भंडार था!
इस दृष्टिकोण के साथ एकमात्र समस्या यह है कि स्थानीय रिपॉजिटरी को दूरस्थ रिपॉजिटरी में वास्तविक संशोधन द्वारा संशोधन वेतन वृद्धि के साथ बनाया गया है। जैसा कि किसी ने लिखा है:
Svk miror कमांड सिर्फ बनाई गई रिपॉजिटरी में एक प्रतिबद्ध बनाता है। इसलिए बाद के सिंक द्वारा बनाए गए सभी कमानों में दूरस्थ सार्वजनिक रिपॉजिटरी की तुलना में एक के बाद एक वृद्धि संख्या होगी।
लेकिन, यह मेरे लिए ठीक था क्योंकि मैं केवल समय-समय पर रिमोट रिपॉजिटरी के कुछ बैकअप चाहता था, और कुछ नहीं।
सत्यापन:
सत्यापित करने के लिए, इस तरह से स्थानीय भंडार के साथ SVN क्लाइंट का उपयोग करें:
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
यह आदेश स्थानीय रिपॉजिटरी से नवीनतम संशोधन की जांच करने के लिए जाता है। आखिर में कहता है Checked out revision N
। यह N
रिमोट रिपॉजिटरी में पाए गए वास्तविक संशोधन (ऊपर बताई गई समस्या के कारण) से एक अधिक था।
यह सत्यापित करने के लिए कि svk ने भी सारा इतिहास लाया है, SVN चेकआउट को -r
2, 10, 50 आदि के साथ प्रयोग करते हुए विभिन्न पुराने संशोधनों के साथ चलाया गया था <local-dir-path-to-checkout-onto>
।
अंत में, डायरेक्टरी को ज़िप करें C:/Documents and Settings\nverma/.svk/local/
और जिप को कहीं स्टोर करें। ऐसा नियमित रूप से करते रहें।
जैसा कि अन्य लोगों ने कहा है, सब -वर्जन टीम के हॉट -बैकअप एरोमा में बस सादे से कुछ अच्छी विशेषताएं हैं svnadmin hotcopy
मैं एक अजगर स्क्रिप्ट पर एक निर्धारित कार्य चलाता हूं जो मशीन पर मेरे सभी रिपॉजिटरी के लिए मकड़ियों का उपयोग करता है, और कई दिनों की हॉटकॉपी (भ्रष्टाचार से परे) और svnadmin svndump
एक रिमोट मशीन पर रखने के लिए हॉटबैकअप का उपयोग करता है । बहाली वास्तव में उस से आसान है - अब तक।
1.1 SVN (तोड़फोड़) भंडार से डंप बनाएँ
svnadmin dump /path/to/reponame > /path/to/reponame.dump
वास्तविक उदाहरण
svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump
1.2 गज़िप ने डंप बनाया
gzip -9 /path/to/reponame.dump
वास्तविक उदाहरण
gzip -9 /backups/testrepo.dump
1.3 एसवीएन डंप और गज़िप डंप वन-लाइनर के साथ
svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame.dump.gz
वास्तविक उदाहरण
svnadmin dump /var/www/svn/testrepo |Â gzip -9 > /backups/testrepo.dump.gz
लिनक्स पर बैकअप (डंप) और रिस्टोर (लोड) SVN (तोड़फोड़) कैसे करें।
रेफरी: svn तोड़फोड़ बैकअप andrestore