Chế độ sao lưu trong Robocopy là gì


19

Tôi đang cố gắng sao chép một tập tin sao lưu cơ sở dữ liệu lớn qua mạng.

Bản sao chương trình truyền thống hoặc xcopythất bại với kết quả nhị phân khác nhau. Cũng đã thử robocopymà không có tham số, và dẫn đến một thất bại. Chỉ cần thực hiện một nỗ lực khác với robocopyviệc sử dụng /zbtham số (chế độ khởi động lại và sao lưu). Mất nhiều thời gian hơn nhưng kết quả là thành công.

Câu hỏi của tôi là, chế độ sao lưu có thực sự được thiết kế để sao chép tệp lớn / sao lưu không? Đã tìm kiếm qua mạng và không thể tìm thấy câu trả lời rõ ràng. Sẽ đánh giá cao nếu bất kỳ người dùng có kinh nghiệm có thể cho tôi một gợi ý hoặc giải pháp tốt hơn.


Có rất ít sự khác biệt giữa cách xcopy và robocopy thực sự sao chép dữ liệu từ A sang B, vì vậy sử dụng robocopy trên xcopy sẽ không làm giảm khả năng tham nhũng dữ liệu do tai nạn. Có nghĩa là bạn đã nhận được một nhị phân khác sau khi sử dụng xcopy rất có thể vì DB đã được sửa đổi trong khi nó được sao chép. Cờ "/ Z" không liên quan ở đây (nó chỉ kiểm soát nếu robocopy bỏ qua phần hiện có của tệp), như cờ "/ B" về cơ bản kiểm soát các quyền mà ứng dụng yêu cầu khi mở tệp nguồn.
Angstrom

@Angstrom cảm ơn bạn đã trả lời. Sự khác biệt nhị phân không phải từ một DB thay đổi vì nó là một tệp sao lưu tĩnh (đã được tách ra khỏi cơ sở dữ liệu) đang được sao chép. Đúng tôi tin / ZB không cố ý cho bản sao mạnh mẽ hơn, nhưng cờ có thể khởi động lại dường như tạo ra một bản ghi nhị phân chính xác hơn (từ thực tế là nó mất nhiều thời gian hơn và dẫn đến một bản sao giống hệt nhau). Hoặc nó có thể là khả năng khởi động lại làm cho nó có thể viết lại dữ liệu bị mất.
ydoow

Câu trả lời:


12

Chế độ sao lưu là một cách để đọc và ghi các tập tin bỏ qua mọi vấn đề về quyền.

Nó sử dụng SeBackupPrivilege(đọc) và SeRestorePrivilege(viết) để đọc / ghi bất kỳ và tất cả các tệp, bỏ qua bất kỳ ACE nào sẽ ngăn bạn đọc hoặc ghi tệp.

Thông thường khi cố gắng sao chép hoặc truy cập tệp, Windows thực hiện kiểm tra để đảm bảo bạn có quyền đọc hoặc ghi vào vị trí, nhưng với SeBackupPrivilege(được cấp cho các nhóm Quản trị viên và Quản trị viên sao lưu) và SeRestorePrivilege(cũng được cấp cho Quản trị viên và Quản trị viên sao lưu nhóm), những kiểm tra được bỏ qua.

Để kiểm tra xem tài khoản của bạn có những đặc quyền này hay không, bạn có thể chạy lệnh whoami /privtại dấu nhắc lệnh.


Chỉ trả lời mà thực sự trả lời câu hỏi dứt khoát, cảm ơn bạn. Nguồn thông tin được cung cấp sẽ làm cho nó hoàn hảo.
Hashim

2

Chỉ muốn chia sẻ một bản cập nhật về việc giải quyết vấn đề trên.

Trong trường hợp của tôi, xcopykhông thể sao chép tệp trên 10 GB trên các máy chủ ở các miền và vị trí máy chủ khác nhau.

Ở phía bên kia, robocopyvới

/zb- Sử dụng chế độ Khởi động lại. Nếu quyền truy cập bị từ chối, tùy chọn này sử dụng chế độ Sao lưu.

có thể sao chép thành công. Nó tăng thời gian từ 1 giờ lên 2,5 giờ mặc dù.

-

Sau khi sắp xếp lại máy chủ, tệp được sao chép trên các máy chủ trong cùng một miền và vị trí máy chủ. Và sử dụng xcopylà ổn.

-

Vì vậy, lý thuyết của tôi về điều này có lẽ là về kết nối ổn định giữa các máy chủ. Nếu kết nối không mạnh (đôi khi bị rớt ra gây ra sự cố truy cập), khi sao chép tệp lớn như trường hợp của tôi, có thể xảy ra tham nhũng bất cứ lúc nào trong quá trình dài; robocopyvới khởi động lại và sao lưu có thể phục hồi bản sao khá tốt. Thời gian dành cho việc phục hồi có lẽ là mặt trái.

Và như một lưu ý phụ, FTP nên thay vì sao chép nên được sử dụng nếu nó sẽ là một nhiệm vụ thường xuyên


2

Tôi thực sự khuyên bạn nên tạo một ảnh chụp nhanh và sao lưu hệ thống tập tin hiện đang hoạt động. Sau đó, bạn có thể chạy robocopy một cách nhanh chóng bằng cách sử dụng / J (I / O không có bộ đệm cho các tệp lớn). Đây là một kịch bản để tạo một bản sao bóng của C: mà nó gọi là P :. Ổ đĩa này (P :) là hình ảnh tĩnh của ổ C: hoàn hảo để sao lưu. Chúng tôi sử dụng kỹ thuật này để sao chép hình ảnh đĩa máy ảo đang hoạt động vào ổ đĩa sao lưu.

Phần sau đây sử dụng bốn tệp script:

  • Một tệp bó để khởi động nó các lệnh bóng đĩa
  • lệnh bóng đĩa để tiêu diệt bất kỳ chun lủng lẳng bóng trước nếu tệp bó bên trong bị hỏng
  • một loạt các lệnh bóng đĩa để tạo bóng dưới dạng P:
  • một loạt các lệnh để thực thi trong khi bóng đang hoạt động (một tệp bó bên trong được thực thi trong khi P: đang hoạt động)

1) tệp bó để bắt đầu quá trình

diskshadow -s cleanup.cmds
diskshadow -s diskshadow.cmds

2) tệp lệnh bóng "dọn dẹp.cmds" để hủy bóng tối hoạt động trước đó

UNEXPOSE P:

3) tệp lệnh bóng "đĩashadow.cmds" tạo bóng và sau đó gọi tệp thứ tư

SET CONTEXT PERSISTENT NOWRITERS
SET METADATA example.cab
SET VERBOSE ON
BEGIN BACKUP
ADD VOLUME C: ALIAS systemVolumeShadow
CREATE
EXPORT %systemVolumeShadow% P:
EXEC c:\yourlocation\backup.cmd
UNEXPOSE P:
END BACKUP
RESET

4) Tệp lệnh "backup.cmd" để hoạt động trên bóng

REM do the ROBOCOPY commands here, with the source being P:, the shadow of C:

Lưu ý rằng Windows Server 2016 (và có thể các phiên bản khác) chạy bản sao bóng hai lần mỗi ngày trong tuần, điều này sẽ khiến bản sao bóng được tạo bên dưới bị sập. Đảm bảo rằng kỹ thuật sao lưu này không trùng lặp với các lệnh bóng được lên lịch tự động này.


0

Để mở rộng câu trả lời của @ erict, đây là cách sử dụng PowerShell để tạo và hủy ảnh chụp nhanh:

$Drive = "D:\"
$Folder = $Drive + "ShadowCopy"

# Create the snapshot
$Snapshot = (gwmi -List Win32_ShadowCopy).Create($Drive, "ClientAccessible")
$Shadow = gwmi Win32_ShadowCopy | ? { $_.ID -eq $Snapshot.ShadowID }
$Volume = $Shadow.DeviceObject + "\"
cmd /c mklink /d "$Folder" "$Volume"

# Destroy the snapshot
cmd /c rd "$Folder"
$Shadow.Delete()

Điều này cũng có thể được chạy trên một máy từ xa, bằng cách sử dụng từ xa PowerShell :

Enter-PSSession RemoteComputer

#
# Run snapshot commands here
#

Exit-PSSession
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.