มีวิธีใดบ้างในการสำรองข้อมูลที่เก็บข้อมูลสำหรับ Windows VisualSVN


15

ในขณะนี้เรากำลังใช้ Visual SVN และเรากำลังสำรองข้อมูลไดเรกทอรีที่เก็บทั้งหมดสำหรับ svn เสมือน นี่เป็นการสำรองข้อมูลทั้งหมดสำหรับที่เก็บข้อมูลแต่ละอันในเอ็นจิ้น svn ของเรา ฉันสงสัยว่าฉันจะสามารถกู้คืนไฟล์เหล่านั้นได้ในกรณีฉุกเฉินหรือภัยพิบัติหรือไม่? มีใครบ้างที่เคยมีประสบการณ์กับกระบวนการฟื้นฟูนี้? ขอบคุณ


1
หากคุณยังไม่ได้ทดสอบการกู้คืนจริง ๆ คุณอาจไม่มั่นใจในการสำรองข้อมูลของคุณ
Michael Hampton

คำตอบ:


11

ดู: http://www.visualsvn.com/support/topic/00012/

ซึ่งชี้ไปที่เอกสารประกอบต่อไปนี้:
http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

มันอธิบายการใช้คำสั่งการโค่นล้มเพื่อสำรองข้อมูล ฉันหวังว่านี่คือสิ่งที่คุณทำอยู่แล้วเนื่องจากการสำรองข้อมูลไดเรกทอรีโดยตรงอาจส่งผลให้มีที่เก็บที่ไม่สามารถใช้งานได้

คุณควรจะใช้การสำรองข้อมูลจากการโค่นล้มและใช้svnadmin dumpหรือsvnadmin hotcopyคำสั่งเพื่อคืนค่าที่เก็บแบบเต็ม อย่างไรก็ตามเช่นเดียวกับกลยุทธ์การสำรองข้อมูลใด ๆ คุณต้องทดสอบการคืนค่าด้วยตัวเองเพื่อให้แน่ใจว่าเหมาะกับคุณ


8

เริ่มต้นด้วย VisualSVN เซิร์ฟเวอร์รุ่น 3.6 เซิร์ฟเวอร์รวมถึงตัวในการสำรองข้อมูลเก็บข้อมูลที่กำหนดและเรียกคืนคุณลักษณะ ยิ่งกว่านั้นรีลีส 3.6 ยังเพิ่มการตรวจสอบตามกำหนดเวลาของที่เก็บ SVN

การตั้งค่าการสำรองข้อมูลที่เก็บที่กำหนดและการตรวจสอบความถูกต้องของที่เก็บ Subversion ของคุณนั้นใช้เวลาเพียงไม่กี่นาที สำหรับคำแนะนำทีละขั้นตอนโปรดดูบทความKB106: การเริ่มต้นด้วย Backup and Restore

หากคุณมองหาการสำรองข้อมูลครั้งเดียวคุณสามารถใช้ Backup-SvnRepository PowerShell cmdlet การกู้คืนพื้นที่เก็บข้อมูลใช้Restore-SvnRepository cmdlet การสำรองข้อมูลเหล่านี้เริ่มต้นด้วยรุ่น 3.6

ดาวน์โหลดรุ่นล่าสุดของ VisualSVN เซิร์ฟเวอร์จากหน้าดาวน์โหลดหลัก

ป้อนคำอธิบายรูปภาพที่นี่


มีหลายวิธีในการสำรองที่เก็บเซิร์ฟเวอร์ VisualSVN ตรวจสอบคำอธิบายสั้น ๆ ด้านล่าง

1. svnadmin hotcopyเครื่องมือ

svnadmin hotcopyอนุญาตให้คุณสร้างสำเนาที่เก็บที่ปลอดภัยโดยไม่คำนึงว่ากระบวนการอื่นกำลังใช้ที่เก็บข้อมูลหรือไม่ คุณสามารถเขียนสคริปต์ที่กำหนดเองซึ่งจะทำการสำรองข้อมูลที่เก็บของคุณเป็นประจำ

คุณสามารถพิจารณาบทความต่อไปนี้จากหนังสือ SVN เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับการสำรองที่เก็บจากการโค่นล้ม: http://www.visualsvn.com/support/svnbook/reposadmin/maint/#svn.reposadmin.maint.backup

2. svnsyncเครื่องมือ

นี่เป็นวิธีสำรองข้อมูลเพิ่มเติม วิธีการสำรองข้อมูลส่วนเพิ่มสำรองข้อมูลเฉพาะส่วนของข้อมูลที่เก็บที่มีการเปลี่ยนแปลงนับตั้งแต่การสำรองข้อมูลก่อนหน้า คุณสามารถตั้งค่าเครื่องมือนี้ให้ทำงานเป็น "ต้นแบบ" และ "ทาส" และทำซ้ำการกระทำใด ๆ กับที่เก็บของมันโดยอัตโนมัติ

ดูบทความ "svnsync" สำหรับรายละเอียดเพิ่มเติม: http://www.visualsvn.com/support/svnbook/ref/svnsync/

3. การสำรองข้อมูลเซิร์ฟเวอร์ Windows คุณสามารถใช้ Windows Server Backup เพื่อสำรองที่เก็บข้อมูล Subversion ช่วยให้คุณสามารถสำรองข้อมูลการแชร์เครือข่ายปริมาณการสำรองข้อมูลเฉพาะสื่อบันทึกข้อมูลที่เขียนได้ ตัวอย่างเช่นwbadminเครื่องมือบรรทัดคำสั่งอนุญาตให้คุณสำรองข้อมูลที่เก็บของคุณอย่างปลอดภัย คำสั่งง่ายๆนี้ทำการสำรองข้อมูลสำเนาC:\foo\barไปยังX:\ไดรฟ์ข้อมูลแบบครั้งเดียว:

wbadmin start backup –backupTarget:x: -include:c\foo\bar -vsscopy

(ในการติดตั้ง Windows Server Backup ให้เรียกใช้ocsetup WindowsServerBackupพร้อมท์คำสั่งยกระดับ)

คุณสามารถตั้งค่าการสำรองข้อมูลได้หลายวิธี:

มันไม่จำเป็นต้องหยุดให้บริการของเซิร์ฟเวอร์เมื่อคุณเรียกใช้การสำรองข้อมูลเพราะFSFS แบ็กเอนด์ที่เก็บเป็นเสมอในสถานะที่สอดคล้องกัน

นี่คือเคล็ดลับทั่วไปเกี่ยวกับการกู้คืนข้อมูลสำรองของ Windows Server:

  1. กู้คืนการสำรองข้อมูลไปยังไดเรกทอรีที่ว่างเปล่าเพื่อให้แน่ใจว่าไฟล์ที่เก็บข้อมูลที่เรียกคืนจะไม่รวมกับไฟล์ที่เสียหาย หลังจากที่เก็บถ้ากู้คืนแล้วคุณสามารถลบที่เก็บที่เสียหายแล้วแทนที่ด้วยที่เก็บที่กู้คืนแล้ว

  2. หยุดรอบเซิร์ฟเวอร์หลังจากกู้คืนพื้นที่เก็บข้อมูลจากข้อมูลสำรอง

  3. หากลูกค้าของคุณได้รับข้อผิดพลาดหลังจากกู้คืนพื้นที่เก็บข้อมูลให้เรียกใช้svnadmin recoverกับมัน คำสั่งเสร็จสิ้นทันทีและทำให้ที่เก็บเข้าถึงอีกครั้ง


ยกเว้นที่เก็บคุณควรสำรองข้อมูลต่อไปนี้:

  1. ไฟล์การพิสูจน์ตัวตนและการอนุญาตที่เก็บในรูทที่เก็บ ( 'C: \ Repositories'โดยค่าเริ่มต้น) ทั้งนี้ขึ้นอยู่กับการตั้งค่าของคุณควรจะมีไฟล์ต่อไปนี้: 'authz' , 'authz หน้าต่าง'และ'htpasswd'

  2. โฟลเดอร์ "% VISUALSVN_SERVER% \ certs \" ซึ่งเก็บข้อมูลเกี่ยวกับใบรับรอง SSL ของคุณ

  3. "% VISUALSVN_SERVER% \ conf \" โฟลเดอร์ที่จัดเก็บไฟล์การกำหนดค่าของเซิร์ฟเวอร์ VisualSVN ของคุณ

  4. คีย์รีจิสทรี "HKEY_LOCAL_MACHINE \ SOFTWARE \ VisualSVN \ VisualSVN Server" ที่จัดเก็บส่วนอื่น ๆ ของการกำหนดค่าเซิร์ฟเวอร์


1
สำหรับตัวเลือกสุดท้ายของคุณคุณจะต้องหยุดบริการ svn ไม่เช่นนั้นคุณก็เสี่ยงที่จะทำการสำรองข้อมูล repo ที่มีการกระทำที่ใช้งานอยู่ซึ่งจะทำให้การสำรองข้อมูลของคุณเสียหาย
Andy

5

ฉันทำโดย:

svnadmin dump "c:/Repositories/svnroot" > c:/backup/svnroot_%date%.dump

นอกจากนี้คุณสามารถ rar / zip เพื่อประหยัดพื้นที่ ฉันใช้วิธีเดียวกันเมื่อฉันย้าย SVN จาก Linux ไปยัง VisualSVN ดังนั้นการสำรองข้อมูลนี้จึงทำงานได้ตามที่ควร


3

วิธีที่ง่ายที่สุดและดีที่สุดที่จะทำให้การสำรองข้อมูลของ repo SVN คือการใช้svnsync มันเป็นเครื่องมือที่เพิ่มขึ้นซึ่งจะทำซ้ำการกระทำใด ๆ ไปยังที่เก็บข้อมูลสำรอง เป็นเรื่องง่ายที่จะไป - ดูโพสต์บล็อกนี้ - และมันเร็วเพียงส่งการเปลี่ยนแปลง คุณจะต้องตั้งค่า hook post-rev-prop-change เพื่อจับ 'edge case' เมื่อมีคนอัพเดต revprop ที่ผ่านมา แต่อย่างอื่นคุณสามารถรันมันทุกชั่วโมง (อย่างที่ฉันทำ) เพื่อสำรองข้อมูลอย่างต่อเนื่อง คุณสามารถเรียกใช้ในเบ็ด post-commit ถ้าคุณหวาดระแวงเกี่ยวกับการสำรองข้อมูล!

หาก repo ที่ใช้งานอยู่ของคุณตายคุณสามารถเพียงแค่ "svn relocate" ไปยัง repo ที่สำรองไว้จนกว่าคุณจะมี live live ของคุณที่ทำงานอยู่อีกครั้ง (แม้ว่าต้องระวังถ้าคุณเขียนอะไรลงในการสำรองข้อมูลในขณะที่ live นั้นใช้งานไม่ได้ การเปลี่ยนแปลงที่นำไปใช้กับ repo สดซึ่งค่อนข้างชัดเจนเมื่อคุณคิดเกี่ยวกับมัน)

ดังนั้นคุณจึงมีการสำรองข้อมูลอย่างต่อเนื่องและการหยุดทำงานวัดเป็นวินาทีโดยใช้กับการใช้ทรัพยากรน้อยที่สุด การสำรองข้อมูลไม่ได้ดีไปกว่านี้อีกแล้ว!


3

ตัวเลือกหนึ่งคือhotcopy มันทำให้การสำรองข้อมูลของพื้นที่เก็บข้อมูลทั้งหมดของคุณ ใช้เนื้อที่ดิสก์เพิ่มขึ้น แต่ใช้งานง่ายและเรียกคืนพื้นที่เก็บข้อมูลได้ง่ายด้วยการใช้


2

VisualSVN เป็นผลิตภัณฑ์ Windows ดังนั้นมันจะทำงานบน Windows หากยูทิลิตีการสำรองข้อมูลสามารถใช้ Volume Shadow Copy เพื่อทำการสำรองข้อมูลได้นั่นควรจะสร้างการสำรองข้อมูลที่สอดคล้องกันภายใน NTBACKUP ในตัวหรือซอฟต์แวร์ของบุคคลที่สามเช่น Symantec Backup Exec หรือเครื่องมือการสำรองข้อมูลบนดิสก์ที่ติดตั้งใน Windows Server 2008 ล้วนมีความสามารถในการใช้ Volume Shadow Copy


สิ่งนี้จะไม่ได้รับการทำธุรกรรม คุณต้องทำให้เซิร์ฟเวอร์ทำการสำรองข้อมูลไม่ทางใดก็ทางหนึ่งเช่นเดียวกับที่คุณทำกับฐานข้อมูลใด ๆ
David Heffernan

ในกรณีของ SQL Server การสำรองข้อมูลที่ใช้ VSS นั้นมีความปลอดภัยในการทำธุรกรรม ในกรณีของเซิร์ฟเวอร์ VisualSVN เราหวังว่าในฐานะเซิร์ฟเวอร์ที่ใช้ Windows จะทำงานได้อย่างถูกต้องเมื่อสำรองข้อมูลด้วยหนึ่งในวิธีการสำรองข้อมูล windows มาตรฐานเช่นเดียวกับ SQL Server ฉันไม่มีหลักฐานแสดงให้เห็นว่ามันทำหรือไม่
Tim Long

ฉันสงสัยมัน. VisualSVN เป็นเพียงแพ็คเกจ svn ฉันไม่เคยเห็นสิ่งบ่งชี้ว่ามีการสำรองข้อมูลที่ทำงานร่วมกับ VSS
David Heffernan

0

สำหรับผู้ที่ต้องการเพียงแค่สำรองข้อมูลที่เก็บข้อมูลทั้งหมดในการติดตั้ง Visual SVN เริ่มต้นบนระบบ Windows

ผมใช้สคริปต์คำสั่งดังต่อไปนี้ - มันทิ้งโฟลเดอร์ย่อยทั้งหมดของรากพื้นที่เก็บข้อมูลไปยังเส้นทางการสำรองข้อมูลและ7 ซิปพวกเขา

@echo off
set svnAdminPath="C:\Program Files (x86)\VisualSVN Server\bin"
set sevenZipPath="C:\Program Files\7-Zip"
set repositoryRoot=d:\Repositories
set backupPath=c:\Source\Backup\SVN
set dateStamp=%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%

for /f %%f in ('dir /b /AD %%repositoryRoot%%') do ( 
call:dumpRepository %%f 
call:zipLastDump
)
goto:eof

:dumpRepository
cd /d %svnAdminPath%
set repoPath=%repositoryRoot%/%~1
set dumpFile=%~1_%dateStamp%
echo.-------------------
echo.Dumping %~1 to %dumpFile%.dump
echo.-------------------
svnadmin dump "%repoPath%" > "%backupPath%\%dumpFile%.dump"
exit /b

:zipLastDump
cd /d %sevenZipPath%
set zipFile="%backupPath%\%dumpFile%.7z"
echo.-------------------
echo.Zipping %dumpFile%.dump to %zipFile%
echo.-------------------
7z a "%zipFile%" "%backupPath%\%dumpFile%.dump" 
del "%backupPath%\%dumpFile%.dump" 
exit /b
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.