Wednesday, January 21, 2009

How to backup SVN repository

How to backup SVN repository

Nếu bạn thường hay sử dụng svn subversion để quản lý các project, thì việc backup định kỳ là rất cần thiết. Nếu lỡ ngày nào đó, svn server của bạn bị hỏng hoặc OS bị hư …. thì dữ liệu của bạn cũng có thể mất trắng, rơi vào hoàn cảnh như vậy thì bạn sẽ thấy tầm quan trọng của việc backup data là như thế nào. Có rất nhiều cách để backup repository.
  1. Cách đơn giản nhất là copy nguyên repository ra một nơi nào đó (usb, DVD, CD).
  2. Nếu bạn có dùng TortoiseSVN on window, thì bạn cũng có thể sử dụng chức năng export để backup, bằng cách chọn TortoiseSVN -> Export . Sau đó thì bạn chỉ định path để export
  3. Dùng command line.

Cách 1 chắc không có gì để nói thêm. Cách 2 thì cũng thủ công, nếu trong repository có 100 project, chẳng lẽ bạn backup từng project một, rất tốn thời gian. Bài này đề cập đến cách thứ 3, dùng command line để backup.

Cách thứ 3 là bạn thực hiện dump toàn bộ repository ra một file nào đó. Cách thực hiện như sau :

Open command line window

svnadmin dump [your repository location] > [destination file]

Ví dụ :

svnadmin dump /usr/local/svn_repos > /tmp/svn_backup.dump

Khi thực hiện lệnh trên thì bạn sẽ thấy các project dump ra như sau

* Dumped revision 0.

* Dumped revision 1.

* Dumped revision 2.

* Dumped revision 3.

…………………..

Bạn có thể dùng một editor nào đó để xem thông tin trong file .dump. Hoặc bạn có thể copy file này vào usb,CD,DVD để lưu giữ.

Sau này nếu bạn muốn restore file .dump đã backup thì bạn làm như sau :

  • Đầu tiên bạn tạo một repository
  • Sau đó dùng command svnadmin load

Cụ thể như sau :

Open command line window

svnadmin load [path of your repository] < [path of .dump file]

Ví dụ :

svnadmin dump /usr/svn_new_repos < /tmp/svn_backup.dump

Vậy là bạn thực hiện xong các bước backup và restore.

Ngoài ra, nếu bạn không muốn thực hiện các lệnh này mỗi khi backup, thì bạn có thể viết một đoạn script (.sh or .bat) hoặc PHP script đơn giản để thực hiện việc backup repository.

The end

1 comment:

VNV Art Gallery said...

Sao bạn đăng bài viết mà không nghi rõ nguồn gốc vậy. Bài này bạn lấy ở http://blog.flextip.net.

Xin hãy ghi rõ nguồn nếu bạn copy từ nơi khác.

Thanks