คำตอบสั้น ๆ: ตั้งการสำรองข้อมูลอัตโนมัติไปเก็บนอกเครื่อง ทั้งแบบทั้งระบบและแบบเลือกโฟลเดอร์ พร้อมวิธีกู้คืนและข้อจำกัดที่ต้องรู้ก่อนวางแผน
คู่มือนี้อธิบาย Network Share ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Windows Server Backup เป็นเครื่องมือที่มีมาให้ในตัวและเพียงพอสำหรับองค์กรขนาดเล็กถึงกลาง มันสำรองได้ถึงระดับที่กู้ทั้งเครื่องกลับมาได้ (Bare Metal Recovery) ซึ่งเป็นสิ่งที่การคัดลอกไฟล์ธรรมดาทำไม่ได้
คู่มือนี้ตั้งการสำรองข้อมูลไปยังเครื่องอื่นในเครือข่าย ซึ่งเป็นข้อกำหนดพื้นฐานของการสำรองข้อมูลที่ใช้ได้จริง คือข้อมูลต้องไม่อยู่บนดิสก์เดียวกับต้นฉบับ
สิ่งที่ต้องเตรียม (Network Share)
- Windows Server ที่ต้องการสำรองข้อมูล
- เครื่องปลายทางที่มีโฟลเดอร์แชร์และพื้นที่เพียงพอ
- บัญชีที่มีสิทธิ์เขียนลงแชร์นั้น ควรเป็นบัญชีเฉพาะที่ใช้งานนี้อย่างเดียว
ข้อจำกัดที่ต้องรู้ก่อนวางแผน เมื่อสำรองไปยัง Network Share ระบบจะเก็บได้เพียงชุดล่าสุดชุดเดียว ชุดใหม่จะเขียนทับชุดเก่าเสมอ หากต้องการเก็บย้อนหลังหลายชุด ต้องสำรองลงดิสก์ที่ต่อกับเครื่องโดยตรง หรือใช้วิธีสลับโฟลเดอร์ปลายทางตามวัน
ขั้นตอนที่ 1: ติดตั้งฟีเจอร์
Install-WindowsFeature -Name Windows-Server-Backup -IncludeManagementTools
Get-Command -Module WindowsServerBackup | Select-Object -First 20
ขั้นตอนที่ 2: เตรียมปลายทาง
บนเครื่องที่เก็บข้อมูลสำรอง สร้างแชร์และให้สิทธิ์เฉพาะบัญชีที่ใช้สำรองข้อมูล
New-Item -Path "D:\Backups\DC01" -ItemType Directory
New-SmbShare -Name "Backups" -Path "D:\Backups" -FullAccess "CORP\svc-backup"
icacls "D:\Backups" /grant "CORP\svc-backup:(OI)(CI)M"
อย่าให้ผู้ใช้ทั่วไปเข้าถึงแชร์นี้ได้ ข้อมูลสำรองมีข้อมูลทั้งหมดของระบบ และแรนซัมแวร์ที่เข้าถึงข้อมูลสำรองได้จะเข้ารหัสทับด้วย
ขั้นตอนที่ 3: สร้างนโยบายสำรองข้อมูล
$policy = New-WBPolicy
# เลือกสิ่งที่จะสำรอง แบบทั้งระบบ
$volumes = Get-WBVolume -AllVolumes | Where-Object { $_.MountPath -in 'C:','D:' }
Add-WBVolume -Policy $policy -Volume $volumes
Add-WBSystemState -Policy $policy
Add-WBBareMetalRecovery -Policy $policy
# ปลายทาง
$cred = Get-Credential -Message "บัญชีที่เข้าถึงแชร์"
$target = New-WBBackupTarget -NetworkPath "\\fs01\Backups\DC01" -Credential $cred
Add-WBBackupTarget -Policy $policy -Target $target
# เวลา
Set-WBSchedule -Policy $policy -Schedule "22:00", "12:00"
# ตรวจสอบก่อนบันทึก
$policy | Format-List
Set-WBPolicy -Policy $policy -Force
ตรวจนโยบายที่บันทึกไว้
Get-WBPolicy | Format-List
Get-WBSchedule -Policy (Get-WBPolicy)
ขั้นตอนที่ 4: สำรองเฉพาะบางโฟลเดอร์
เมื่อไม่ต้องการสำรองทั้งระบบ ซึ่งใช้เวลาและพื้นที่มากกว่า
$policy = New-WBPolicy
$spec = New-WBFileSpec -FileSpec "D:\Shares\Company"
Add-WBFileSpec -Policy $policy -FileSpec $spec
# ยกเว้นบางโฟลเดอร์
$exclude = New-WBFileSpec -FileSpec "D:\Shares\Company\Temp" -Exclude
Add-WBFileSpec -Policy $policy -FileSpec $exclude
$target = New-WBBackupTarget -NetworkPath "\\fs01\Backups\Files" -Credential $cred
Add-WBBackupTarget -Policy $policy -Target $target
Set-WBSchedule -Policy $policy -Schedule "23:00"
Set-WBPolicy -Policy $policy -Force
ขั้นตอนที่ 5: สั่งสำรองข้อมูลทันทีเพื่อทดสอบ
Start-WBBackup -Policy (Get-WBPolicy) -Async
Get-WBJob
Get-WBJob | Select-Object JobType, StartTime, EndTime, JobState, HResult
อย่าปล่อยให้รอบแรกเกิดตอนกลางคืนโดยไม่ทดสอบก่อน ปัญหาเรื่องสิทธิ์และพื้นที่จะเห็นตั้งแต่รอบทดสอบ