سؤال

أنا جديدة على SVN و أود أن أعرف ما هي الوسائل المتاحة من أجل النسخ الاحتياطي مستودعات في بيئة ويندوز?

هل كانت مفيدة؟

المحلول

هل يمكن استخدام شيء مثل (لينكس):

svnadmin dump repositorypath | gzip > backupname.svn.gz

منذ ويندوز لا يدعم GZip هو فقط:

svnadmin dump repositorypath > backupname.svn

نصائح أخرى

نحن نستخدم svnadmin hotcopy ، على سبيل المثال:

svnadmin hotcopy C:\svn\repo D:\backups\svn\repo

كما في الكتاب:

يمكنك تشغيل هذا الأمر في أي وقت و جعل نسخة آمنة من المستودع ، بغض النظر عما إذا كانت العمليات الأخرى تستخدم مستودع.

يمكنك بالطبع الرمز البريدي (يفضل 7-Zip) من النسخة الاحتياطية.IMHO هو الأكثر وضوحا من خيارات النسخ الاحتياطي:في حالة الكوارث هناك القليل من فك الضغط مرة أخرى إلى الموقف.

هناك hotbackup.py السيناريو المتاحة على التخريب الموقع هذا مفيد جدا لأتمتة عمليات النسخ الاحتياطي.

http://svn.apache.org/repos/asf/subversion/trunk/tools/backup/hot-backup.py.in

هنا هو Perl التي من شأنها:

  1. النسخ الاحتياطي الريبو
  2. نسخ إلى ملقم آخر عبر SCP
  3. استرداد النسخ الاحتياطي
  4. إنشاء اختبار مستودع من النسخ الاحتياطي
  5. هل اختبار المحاسبه
  6. البريد الإلكتروني مع أي أخطاء (عبر كرون)

السيناريو:

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, تعيين ملقم بعيد كمرآة/الرقيق.كان لدينا خادم النزول قبل أسبوعين و كنت قادرا على التبديل الرقيق في التعليم الابتدائي الموقف بسهولة تامة (فقط لإعادة UUID على العبد مستودع الأصلي).

فائدة أخرى هي أن المزامنة يمكن تشغيلها من قبل رجل في منتصف ، بدلا من أن مهمة على أي ملقم.لقد كان العميل إلى اثنين من الشبكات الخاصة الإفتراضية مزامنة مستودع بينهما.

svnadmin hotcopy

svnadmin hotcopy REPOS_PATH NEW_REPOS_PATH

هذا subcommand يجعل كامل "الساخنة" النسخ الاحتياطي من المخزون الخاص بك ، بما في ذلك جميع السنانير ، تكوين الملفات, و, بالطبع, ملفات قاعدة البيانات.

svnbackup في مدونة جوجل،.صافي تطبيق وحدة التحكم.

  • يمكنك إنشاء مستودع النسخ الاحتياطي (تفريغ) مع svnadmin dump.

  • ثم يمكنك استيراد في استخدام svnadmin load.

إشارة مفصلة في SVNBook:"مستودع البيانات باستخدام svnadmin"

أساسا انها آمنة نسخ مستودع المجلد إذا كان خادم إس توقفت.(المصدر: https://groups.google.com/forum/?fromgroups#!الموضوع/visualsvn/i_55khUBrys%5B1-25% 5D )

حتى إذا كان مسموح لك أن تتوقف عن الخادم ، تفعل ذلك فقط نسخ مستودع إما مع بعض النصي أو أداة النسخ الاحتياطي.كوبيان يناسب هنا بشكل جيد كما أنه يمكنك إيقاف وبدء خدمة تلقائيا, ويمكن أن تفعل النسخ الاحتياطية التزايدية لذلك أنت فقط النسخ الاحتياطي أجزاء مستودع التي تغيرت في الآونة الأخيرة (مفيدة إذا مستودع كبير وكنت النسخ الاحتياطي إلى مكان بعيد).

على سبيل المثال:

  1. تثبيت كوبيان
  2. إضافة مهمة النسخ الاحتياطي:

    • تعيين المصدر إلى مستودع مجلد (على سبيل المثال C:\Repositories\),

    • إضافة قبل النسخ الاحتياطي الحدث "STOP_SERVICE" VisualSVN,

    • إضافة وظيفة النسخ الاحتياطي الحدث ، "START_SERVICE" VisualSVN,

    • تعيين خيارات أخرى حسب الحاجة. لقد إعداد النسخ الاحتياطية التزايدية بما في ذلك إزالة القديمة ، جدولة النسخ الاحتياطي, الوجهة, ضغط ث.أرشيف تقسيم الخ.

  3. الربح!

هناك 2 طرق رئيسية إلى النسخ الاحتياطي خادم إس, الأول هو hotcopy التي سيتم إنشاء نسخة من مستودع الملفات المشكلة الرئيسية مع هذا النهج هو أنه يوفر بيانات عن الملف الأساسي على النظام ، لذلك قد يكون لديك بعض الصعوبات في محاولة repostore هذا النوع من النسخ الاحتياطي في آخر خادم إس نوع أو آخر آلة.هناك نوع آخر من النسخ الاحتياطي يسمى تفريغ هذا النسخ الاحتياطي متعود حفظ أي معلومات من الملف الأساسي على نظام الصالحة للشرب إلى أي نوع من خادم إس مقرها في tigiris.org التخريب.

عن أداة النسخ الاحتياطي يمكنك استخدام svnadmin أداة(أنها قادرة على القيام hotcopy و تفريغ) من موجه الأوامر وحدة التحكم هذه موجودة في نفس الدليل حيث خادم إس حياة أو يمكنك جوجل إس أدوات النسخ الاحتياطي.

توصيتي هي أن تفعل كل أنواع النسخ الاحتياطي الحصول عليها من مكتب إلى البريد الإلكتروني الخاص بك acount ، الأمازون s3 خدمة ftp أو أزور الخدمات بهذه الطريقة سيكون لديك securityy النسخ الاحتياطي دون الحاجة إلى استضافة خادم إس في مكان ما خارج مكتبك.

هنا واجهة المستخدم الرسومية ويندوز أداة تجعل تفريغ المحلية والبعيدة التخريب مستودعات:

https://falsinsoft-software.blogspot.com/p/svn-backup-tool.html

أداة الوصف يقول:

هذا ببساطة أداة تسمح لجعل تفريغ النسخ الاحتياطي المحلية والبعيدة التخريب مستودع.البرنامج يعمل بنفس الطريقة من "svnadmin" ولكن ليس واجهة المستخدم الرسومية الواجهة أكثر من ذلك.بدلا من استخدام مباشرة التخريب المكتبات تسمح لخلق تفريغ في وضع مستقل دون أي أداة إضافية.

نأمل أن يكون هذا مساعدة...

أحب أن مجرد نسخ كامل الريبو الدليل إلى موقع النسخ الاحتياطي.بهذه الطريقة, إذا حدث شيء ما ، يمكنك فقط نسخ الدليل مرة أخرى وتكون على استعداد للذهاب فورا.

فقط تأكد من الحفاظ على الأذونات ، إذا لزم الأمر.عادة, هذه ليست سوى القلق على لينكس الآلات.

استضافت مستودعات يمكنك منذ إس الإصدار 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 مستودع بلدي المشروع.

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 checkout "file:///C:/Documents and Settings\nverma/.svk/local/"  <local-dir-path-to-checkout-onto>

هذا الأمر ثم يذهب إلى الخروج التنقيح الأخير من المستودع المحلي.في نهاية الأمر يقول Checked out revision N.هذا N كان أكثر من الفعلي تنقيح وجدت في مستودع بعيد (بسبب المشكلة المذكورة أعلاه).

للتحقق من أن svk جلبت أيضا كل التاريخ ، SVN checkout تم تشغيل مع مختلف بالنسخ الأقدم باستخدام -r مع 2, 10, 50.... الخثم الملفات في <local-dir-path-to-checkout-onto> وتأكدت من أن المراجعة.

في النهاية, الرمز البريدي الدليل C:/Documents and Settings\nverma/.svk/local/ و تخزين الرمز البريدي في مكان ما.الحفاظ على القيام بذلك بانتظام.

كما قال آخرون ، hot-backup.py من التخريب الفريق لديه بعض ملامح لطيفة أكثر من عادي فقط svnadmin hotcopy

تشغيل مهمة مجدولة على بيثون السيناريو الذي العناكب جميع مستودعات على الجهاز, و يستخدم hotbackup أن تبقى عدة أيام بقيمة hotcopies (جنون العظمة من الفساد) ، 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 إنشاء تفريغ

gzip -9 /path/to/reponame.dump

الحقيقي سبيل المثال

gzip -9 /backups/testrepo.dump

1.3 إس تفريغ و Gzip تفريغ مع بطانة واحدة

svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame.dump.gz

الحقيقي سبيل المثال

svnadmin dump /var/www/svn/testrepo |Â gzip -9 > /backups/testrepo.dump.gz

كيفية النسخ الاحتياطي (تفريغ) واستعادة (تحميل) إس (التخريب) مستودع على لينكس.
Ref: إس التخريب النسخ الاحتياطي andrestore

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top