네트워크를 통해 큰 데이터베이스 백업 파일을 복사하려고합니다.
전통적인 프로그램 복사 또는 xcopy
다른 이진으로 실패했습니다. 또한 robocopy
매개 변수없이 시도 하여 실패했습니다. 매개 변수 (다시 시작 및 백업 모드) 를 robocopy
사용하여 다른 시도를했습니다 /zb
. 훨씬 오래 걸렸지 만 성공했습니다.
내 질문은 백업 모드가 실제로 큰 / 백업 파일을 복사하도록 설계 되었습니까? 인터넷을 통해 검색했지만 명확한 답변을 찾을 수 없습니다. 숙련 된 사용자가 나에게 힌트 나 더 나은 해결책을 줄 수 있다면 고맙겠습니다.
답변
백업 모드는 권한 문제를 무시하고 파일을 읽고 쓰는 방법입니다.
그것은 사용 SeBackupPrivilege
(읽기) 및 SeRestorePrivilege
읽기 / 파일의 읽고 쓰기에서 당신을 방지 할 수있는 ACE를 무시하고있는 모든 파일을 작성하기 위해 (쓰기).
일반적으로 파일을 복사하거나 액세스하려고 할 때 Windows는 위치를 읽거나 쓸 수있는 권한이 있는지 확인하지만 SeBackupPrivilege
(백업 운영자 및 관리자 그룹에 SeRestorePrivilege
부여됨 ) 및 (백업 운영자 및 관리자에게도 부여됨) 확인을 수행합니다. 이러한 검사는 무시됩니다.
계정에 이러한 권한이 있는지 확인하려면 whoami /priv
명령 프롬프트에서 명령 을 실행할 수 있습니다 .
답변
위의 문제를 해결하기 위해 업데이트를 공유하고 싶을뿐입니다.
필자의 경우 xcopy
다른 도메인 및 서버 위치의 서버에서 10GB가 넘는 파일을 복사하지 못했습니다.
다른 한편 robocopy
으로
/zb
– 재시작 모드를 사용합니다. 액세스가 거부되면이 옵션은 백업 모드를 사용합니다.
성공적으로 복사 할 수 있습니다. 그러나 시간을 1 시간에서 2.5 시간으로 늘 렸습니다.
–
서버를 다시 정렬하면 파일이 동일한 도메인 및 서버 위치의 서버에 복사됩니다. 그리고 사용 xcopy
도 괜찮습니다.
–
그래서 이것에 대한 나의 이론은 아마도 서버 간의 안정성 연결에 관한 것일 것입니다. 연결이 강력하지 않은 경우 (종종 액세스 문제로 인해 액세스 문제가 발생하는 경우) 내 경우와 같이 큰 파일을 복사 할 때 프로세스가 진행되는 동안 언제든지 손상이 발생할 수 있습니다. robocopy
와 재시작 및 백업 꽤 잘 복사본을 복구 할 수 있습니다. 회복에 소요되는 시간은 아마도 단점입니다.
참고로, 일상적인 작업이 되려면 복사 대신 FTP를 사용해야합니다.
답변
스냅 샷을 생성하고 이제 Quiesce 파일 시스템을 백업하는 것이 좋습니다. 그런 다음 / J (큰 파일의 경우 버퍼되지 않은 I / O)를 사용하여 robocopy를 빠르게 실행할 수 있습니다. C :의 섀도 복사본을 만드는 스크립트는 다음과 같습니다. P :. 이 드라이브 (P :)는 백업에 완벽한 C : 드라이브의 정적 이미지입니다. 이 기술을 사용하여 활성 가상 머신 디스크 이미지를 백업 드라이브에 복사합니다.
다음은 네 개의 스크립트 파일을 사용합니다.
- 디스크 섀도 명령을 시작하기위한 배치 파일
- 디스크 섀도 명령으로
매달려 차드내부 배치 파일이 충돌 한 경우 이전 그림자 - 그림자를 P로 만드는 일련의 디스크 그림자 명령 :
- 섀도우가 활성화 된 동안 실행할 일련의 명령 (P :가 활성화 된 동안 실행되는 내부 배치 파일)
1) 프로세스를 시작하는 배치 파일
diskshadow -s cleanup.cmds
diskshadow -s diskshadow.cmds
2) 이전에 활성화 된 그림자를 제거하기위한 그림자 명령 파일 “cleanup.cmds”
UNEXPOSE P:
3) 새도우를 빌드 한 다음 네 번째 파일을 호출하는 새도우 명령 파일 “diskshadow.cmds”
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) 섀도우에서 작동 할 명령 파일 “backup.cmd”
REM do the ROBOCOPY commands here, with the source being P:, the shadow of C:
Windows Server 2016 (및 기타 버전)은 일주일 동안 매일 섀도 복사본을 두 번 실행하여 아래에 생성 된 섀도 복사본이 중단 될 수 있습니다. 이 백업 기술이 자동화 된 예약 된 섀도 명령과 겹치지 않도록하십시오.
답변
@erict의 답변을 확장하기 위해 PowerShell을 사용하여 스냅 샷을 생성하고 삭제하는 방법은 다음과 같습니다.
$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()
PowerShell 원격 을 사용하여 원격 컴퓨터에서 실행할 수도 있습니다 .
Enter-PSSession RemoteComputer
#
# Run snapshot commands here
#
Exit-PSSession