আমি এসভিএন-এ নতুন এবং আমি জানতে চাই যে উইন্ডোজ পরিবেশে রিপোজিটরিগুলি ব্যাক আপ করার জন্য কোন পদ্ধতিগুলি উপলব্ধ?
আমি এসভিএন-এ নতুন এবং আমি জানতে চাই যে উইন্ডোজ পরিবেশে রিপোজিটরিগুলি ব্যাক আপ করার জন্য কোন পদ্ধতিগুলি উপলব্ধ?
উত্তর:
আপনি (লিনাক্স) এর মতো কিছু ব্যবহার করতে পারেন:
svnadmin dump repositorypath | gzip > backupname.svn.gz
উইন্ডোজ যেহেতু জিজেপ সমর্থন করে না এটি ঠিক:
svnadmin dump repositorypath > backupname.svn
svnadmin dump repositorypath | "%ProgramFiles%\7-Zip\7z.exe" a backup.7z -sibackupname.svn
এটি 'ব্যাকআপ 7z' নামে একটি ফাইল তৈরি করবে যা একটি একক ফাইল, 'ব্যাকআপনেম.এসভিএন' রয়েছে, যা আউটপুট svnadmin dump
।
for project in *; do svnadmin dump ${project} | gzip > /backuppath/${project}.svn.gz; done;
আমরা এসএনএডমিন হটকপি ব্যবহার করি, যেমন:
svnadmin hotcopy C:\svn\repo D:\backups\svn\repo
অনুযায়ী বই :
আপনি যে কোনও সময় এই কমান্ডটি চালাতে পারেন এবং সংগ্রহস্থলের একটি নিরাপদ অনুলিপি তৈরি করতে পারেন, অন্য প্রক্রিয়াগুলি সংগ্রহস্থলটি ব্যবহার করছে কিনা তা বিবেচনা না করেই।
আপনি অবশ্যই ব্যাকআপ অনুলিপি জিপ করতে পারেন (পছন্দমত 7-জিপ)। আইএমএইচও এটি ব্যাকআপ বিকল্পগুলির মধ্যে সবচেয়ে সরলতম: দুর্যোগের ক্ষেত্রে এটি পুনরায় পজিশনে আনজিপ করা ছাড়া অন্য কিছু করার দরকার নেই।
সাবভার্সন ওয়েব সাইটে একটি হটব্যাকআপ.পি স্ক্রিপ্ট উপলব্ধ রয়েছে যা ব্যাকআপগুলি স্বয়ংক্রিয় করার জন্য বেশ কার্যকর।
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
।
এসভিএনবুকের বিশদ উল্লেখ: " এসএনএডমিন ব্যবহার করে সংগ্রহস্থলের ডেটা মাইগ্রেশন"
মূলত এটি এসএনএন সার্ভার বন্ধ হয়ে গেলে সংগ্রহস্থল ফোল্ডারটি অনুলিপি করা নিরাপদ। (উত্স: https://groups.google.com/forum/?fromgroups#!topic/visoutsvn/i_55khUBrys%5B1-25%5D )
সুতরাং যদি আপনাকে সার্ভারটি বন্ধ করার অনুমতি দেওয়া হয় তবে এটি করুন এবং কিছু স্ক্রিপ্ট বা ব্যাকআপ সরঞ্জামের সাহায্যে কেবল সংগ্রহস্থলটি অনুলিপি করুন। কোবিয়ান ব্যাকআপটি এখানে দুর্দান্তভাবে ফিট করে কারণ এটি স্বয়ংক্রিয়ভাবে পরিষেবাগুলি থামাতে এবং শুরু করতে পারে এবং এটি বর্ধিত ব্যাকআপগুলি করতে পারে যাতে আপনি কেবল সম্প্রতি পরিবর্তিত ভাণ্ডারের অংশগুলি ব্যাক আপ করছেন (যদি সংগ্রহস্থল বড় হয় এবং আপনি দূরবর্তী অবস্থানের ব্যাক আপ করেন তবে দরকারী )।
উদাহরণ:
একটি ব্যাকআপ টাস্ক যুক্ত করুন:
সংগ্রহস্থল ফোল্ডারে উত্স সেট করুন (উদাঃ C:\Repositories\
),
প্রাক ব্যাকআপ ইভেন্ট "STOP_SERVICE"
ভিজ্যুয়াল এসভিএন যোগ করুন,
পোস্ট-ব্যাকআপ ইভেন্ট, "START_SERVICE"
ভিজ্যুয়াল এসভিএন,
প্রয়োজন মতো অন্যান্য বিকল্প সেট করুন। আমরা পুরানোগুলি অপসারণ, ব্যাকআপ শিডিয়ুল, গন্তব্য, সংকোচনের Incl সহ বর্ধিত ব্যাকআপ সেট আপ করেছি। সংরক্ষণাগার বিভাজন ইত্যাদি
লাভ!
একটি এসএনএন সার্ভারের ব্যাকআপ দেওয়ার জন্য দুটি প্রধান পদ্ধতি রয়েছে, প্রথমে হটকপি যা আপনার সংগ্রহস্থলগুলির ফাইলগুলির একটি অনুলিপি তৈরি করবে, এই পদ্ধতির সাথে প্রধান সমস্যাটি হ'ল অন্তর্নিহিত ফাইল সিস্টেমের ডেটা সংরক্ষণ করে, তাই আপনার পুনরায় পোস্ট করার চেষ্টা করতে কিছু অসুবিধা হতে পারে অন্য এসএনএন সার্ভার ধরণের বা অন্য কোনও মেশিনে এই জাতীয় ব্যাকআপ। ডাম্প নামে আর এক ধরণের ব্যাকআপ রয়েছে, এই ব্যাকআপটি টাইগরিস.আর সাবভার্সনের ভিত্তিতে অন্তর্নিহিত ফাইল সিস্টেমের কোনও তথ্য এবং কোনও প্রকারের এসভিএন সার্ভারে তার প্যাকেবল সংরক্ষণ করবে না।
কমান্ড প্রম্পট থেকে আপনি svnadmin সরঞ্জাম (এটি হটকপি এবং ডাম্প করতে সক্ষম) ব্যাকআপ সরঞ্জাম সম্পর্কে, এই কনসোলটি একই ডিরেক্টরিতে থাকে যেখানে আপনার এসএনএন সার্ভার বাস করে বা আপনি এসএনএন ব্যাকআপ সরঞ্জামের জন্য গুগল করতে পারেন।
আমার সুপারিশটি হ'ল আপনি উভয় ধরণের ব্যাকআপ নেন এবং আপনার ইমেল একাউন্ট, অ্যামাজন এস 3 পরিষেবা, এফটিপি বা অ্যাজুরি পরিষেবাগুলিতে অফিস থেকে বের করে আনুন, এইভাবে আপনার এসএনএন সার্ভার হোস্ট না করে সুরক্ষিত ব্যাকআপ পাবেন have তোমার অফিস.
স্থানীয় এবং রিমোট সাবভার্শন রিপোজিটরিগুলির ডাম্প তৈরি করার জন্য এখানে একটি জিইউআই উইন্ডোজ সরঞ্জাম:
https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html
সরঞ্জাম বিবরণ বলে:
এই সহজ সরঞ্জামটি একটি স্থানীয় এবং দূরবর্তী সাবভার্শন রিপোজিটরির ডাম্প ব্যাকআপ তৈরি করতে দেয়। সফ্টওয়্যারটি "স্নানাডমিন" এর একই উপায়ে কাজ করে তবে এটি কোনও জিইউআই সম্মুখভাগ নয়। পরিবর্তে অন্য কোনও অতিরিক্ত সরঞ্জাম ছাড়াই স্বতন্ত্র মোডে ডাম্প তৈরি করার অনুমতি দেওয়ার জন্য সরাসরি সাবভারশন লাইব্রেরিগুলি ব্যবহার করুন।
আশা করি এই সাহায্য ...
আমি কেবলমাত্র আমার ব্যাকআপের স্থানে পুরো রেপো ডিরেক্টরিটি অনুলিপি করতে চাই। এইভাবে, যদি কিছু ঘটে থাকে তবে আপনি কেবল ডিরেক্টরিটি অনুলিপি করতে পারেন এবং তত্ক্ষণাত্ প্রস্তুত হতে প্রস্তুত।
প্রয়োজন হলে কেবল অনুমতিগুলি সংরক্ষণ করার বিষয়টি নিশ্চিত করুন। সাধারণত, লিনাক্স মেশিনে এটি কেবল উদ্বেগের বিষয়।
হোস্ট করা সংগ্রহস্থলের জন্য আপনি যেহেতু এসএনএন সংস্করণটি 1.7 ব্যবহার করতে পারেন svnrdump
, এটি svnadmin dump
স্থানীয় সংগ্রহস্থলের জন্য সাদৃশ্যপূর্ণ । এই নিবন্ধটি একটি দুর্দান্ত ওয়াক-থ্রো সরবরাহ করে, যা মূলত:
svnrdump dump /URL/to/remote/repository > myRepository.dump
আপনি ডাম্প ফাইলটি ডাউনলোড করার পরে আপনি এটি স্থানীয়ভাবে আমদানি করতে পারেন
svnadmin load /path/to/local/repository < myRepository.dump
বা এটি আপনার পছন্দের হোস্টে আপলোড করুন।
যদি আপনি এফএসএফএস সংগ্রহস্থল বিন্যাস (ডিফল্ট) ব্যবহার করে থাকেন তবে ব্যাকআপ তৈরি করতে আপনি নিজেই অনুলিপিটি অনুলিপি করতে পারেন। পুরানো বার্কলেডিবি সিস্টেমের সাথে, সংগ্রহস্থলটি প্ল্যাটফর্মটি স্বতন্ত্র নয় এবং আপনি সাধারণত এসএনএডমিন ডাম্প ব্যবহার করতে চান।
ব্যাকআপের জন্য 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
এই ব্যাচ ফাইলটি আমার চলছে যা আমার ব্যাকআপগুলি সম্পাদন করে
প্রতিদিন এবং পূর্ণ ব্যাকআপ সমাধানের জন্য এখানে কেবল এসভিএন ব্যাকআপ স্ক্রিপ্টগুলি ব্যবহার করুন ।
আমার প্রকল্পের দূরবর্তী এসভিএন সংগ্রহস্থলের ব্যাকআপ নেওয়ার উদ্দেশ্যে আমি যে পদক্ষেপগুলি অনুসরণ করেছি তা সংকলন করেছি।
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
এই উদাহরণে) যেন এটি কোনও সাধারণ এসভিএন সংগ্রহস্থল!
এই পদ্ধতির সাথে একমাত্র সমস্যা হ'ল দূরবর্তী সংগ্রহস্থলের প্রকৃত পুনর্বিবেচনা দ্বারা স্থানীয় রিপোজিটরিটি একটি পুনর্বিবেচনার বৃদ্ধি দিয়ে তৈরি করা হয়েছিল। যেমন কেউ লিখেছেন:
এসকেকে মিরর কমান্ড সদ্য নির্মিত সংগ্রহস্থলে একটি প্রতিশ্রুতি তৈরি করে। সুতরাং পরবর্তী সিঙ্ক দ্বারা তৈরি সমস্ত কমিটগুলিতে রিমোট পাবলিক রিপোজিটরির তুলনায় সংশোধন সংখ্যাগুলি এক দ্বারা বাড়ানো হবে।
তবে, এটি আমার পক্ষে ঠিক ছিল কারণ আমি কেবল সময়ে সময়ে দূরবর্তী সংগ্রহস্থলের কিছু ব্যাকআপ চেয়েছিলাম, অন্য কিছুই নয়।
প্রতিপাদন:
যাচাই করতে, এসভিএন ক্লায়েন্টটি স্থানীয় সংগ্রহস্থলগুলির সাথে এর মতো ব্যবহার করুন:
svn checkout "file:///C:/Documents and Settings\nverma/.svk/local/" <local-dir-path-to-checkout-onto>
এই কমান্ডটি পরে স্থানীয় সংগ্রহস্থল থেকে সর্বশেষ সংশোধন পরীক্ষা করতে যায়। শেষে বলে Checked out revision N
। এটি N
রিমোট রিপোজিটরিতে (উপরে উল্লিখিত সমস্যার কারণে) পাওয়া প্রকৃত সংশোধনীর চেয়েও বেশি ছিল।
এস.ভি.के. সমস্ত ইতিহাসও নিয়ে এসেছিল তা যাচাই করতে, এসভিএন চেকআউটটি -r
2, 10, 50 ইত্যাদির সাহায্যে বিভিন্ন পুরানো সংশোধন নিয়ে চালানো হয়েছিল তারপরে ফাইলগুলি এতে<local-dir-path-to-checkout-onto>
সেই সংশোধন থেকে নিশ্চিত হওয়া গেছে।
শেষে ডিরেক্টরিটি জিপ করুন C:/Documents and Settings\nverma/.svk/local/
এবং জিপটি কোথাও সংরক্ষণ করুন। এটি নিয়মিত করতে থাকুন।
অন্যরা যেমন বলেছে, সাব -ভারশন টিম থেকে হট-ব্যাকআপ.পি-র কিছুটা সরল বৈশিষ্ট্য রয়েছে svnadmin hotcopy
আমি একটি অজগর স্ক্রিপ্টে একটি নির্ধারিত টাস্ক চালাচ্ছি যা মেশিনে আমার সমস্ত সংগ্রহস্থলের জন্য মাকড়সা করে, এবং হটব্যাকআপ ব্যবহার করে বেশ কয়েকটি দিনের হটকপিগুলি (দুর্নীতিবিহীন) এবং svnadmin svndump
একটি রিমোট মেশিনে রাখে। এটি থেকে পুনরুদ্ধার করা সত্যিই সহজ - এখনও পর্যন্ত।
1.1 এসভিএন (সাবভারশন) সংগ্রহস্থল থেকে ডাম্প তৈরি করুন
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
লিনাক্সে কীভাবে ব্যাকআপ (ডাম্প) এবং পুনরুদ্ধার (লোড) এসভিএন (সাবভারশন) সংগ্রহস্থল করবেন।
রেফারেন্স: এসএনএন সাবভারশন ব্যাকআপ অ্যান্ডরেস্টোর