วิธีการสำรองฐานข้อมูล SQL ไปยังเครือข่ายที่ใช้ร่วมกัน
ต้องสำรองฐานข้อมูล SQL เป็นประจำ เราได้กล่าวถึงวิธีต่างๆในการสำรองฐานข้อมูลเซิร์ฟเวอร์ SQL ทั้งหมดของคุณไปยังฮาร์ดไดรฟ์ในเครื่องได้อย่างง่ายดาย แต่สิ่งนี้ไม่ได้ป้องกันไดรฟ์และ / หรือความล้มเหลวของระบบ ในฐานะชั้นป้องกันพิเศษสำหรับภัยพิบัติประเภทนี้คุณสามารถคัดลอกหรือสร้างการสำรองข้อมูลของคุณโดยตรงบนเครือข่ายที่ใช้ร่วมกัน.
สำรองข้อมูลในเครื่องแล้วคัดลอกไปยังเครือข่ายที่ใช้ร่วมกัน
วิธีที่ต้องการและตรงที่สุดในการทำภารกิจนี้คือเพียงสร้างการสำรองข้อมูลในเครื่องของฐานข้อมูลแล้วคัดลอกไฟล์สำรองตามลำดับไปยังเครือข่ายที่ใช้ร่วมกัน คุณสามารถทำได้โดยการสร้างแบทช์สคริปต์ซึ่งมีลักษณะดังนี้:
SET LocalFolder = C: โปรแกรมไฟล์ Microsoft SQL ServerMSSQL.1MSSQLBackup
SqlCmd -E -Q“ MyDB สำรองฐานข้อมูลลงดิสก์ = "% LocalFolder% MyDB.bak" "
XCopy“% LocalFolder% MyDB.bak”“ \ 192.168.16.55 ฐานข้อมูลแบ็คอัพ” / Z / V
DEL“% LocalFolder% MyDB.bak”
สคริปต์นี้ทำสิ่งต่อไปนี้ (บรรทัดต่อบรรทัด):
- ตั้งค่าตัวแปรเป็นไดเร็กทอรีสำรอง SQL โลคัล.
- สร้างการสำรองข้อมูล SQL ของ MyDB (โดยใช้การพิสูจน์ตัวจริงของ Windows) ไปยังไดเรกทอรีสำรอง SQL ภายในเครื่อง.
- คัดลอกไฟล์สำรองในเครื่องไปยังเครือข่ายที่ใช้ร่วมกัน.
- ลบไฟล์สำรองในเครื่อง.
อีกครั้งนี่เป็นวิธีที่ต้องการเนื่องจากใช้งานได้นอกกรอบและโอกาสในการเกิดความล้มเหลวในการสำรองข้อมูลมีน้อยมากเนื่องจากการสำรองข้อมูลถูกสร้างขึ้นบนโลคัลดิสก์ อย่างไรก็ตามหากคุณมีพื้นที่ดิสก์ไม่เพียงพอที่จะเก็บสำเนาสำรองของไฟล์สำรองการกระทำนี้จะล้มเหลว ในเหตุการณ์นี้คุณจะต้องเพิ่มพื้นที่ดิสก์เพิ่มเติมหรือสำรองข้อมูลโดยตรงไปยังเครือข่ายที่ใช้ร่วมกัน.
สำรองข้อมูลโดยตรงไปยังเครือข่ายแบ่งปัน
โดยทั่วไปเมื่อคุณพยายามสร้างการสำรองข้อมูลโดยตรงไปยังเครือข่ายที่ใช้ร่วมกันโดยใช้คำสั่งเช่น:
SqlCmd -E -Q“ MyDB สำรองฐานข้อมูลลงดิสก์ = "\ 192.168.16.55BackupDatabaseMyDB.bak"”
คุณมักจะได้รับข้อผิดพลาดตามบรรทัดของ:
เกี่ยวกับข่าวสาร 3201 ระดับ 16 สถานะ 1 เซิร์ฟเวอร์ JF บรรทัด 1
ไม่สามารถเปิดอุปกรณ์สำรองข้อมูล '\ 192.168.16.55BackupDatabaseMyDB.bak' ข้อผิดพลาดของระบบปฏิบัติการ 5 (การเข้าถึงถูกปฏิเสธ).
ข่าวสารเกี่ยวกับ 3013 ระดับ 16 สถานะ 1 เซิร์ฟเวอร์ JF บรรทัด 1
BACKUP DATABASE สิ้นสุดลงอย่างผิดปกติ.
ข้อผิดพลาดนี้เกิดขึ้นแม้ว่าข้อเท็จจริงที่ว่าคุณรันคำสั่ง SQL backup โดยใช้ Windows Authentication (สวิตช์ -E) และบัญชี Windows เป็นความสามารถในการเข้าถึงและคัดลอกไฟล์ไปยังการแชร์ผ่าน Windows Explorer.
สาเหตุของการกระทำนี้ล้มเหลวเนื่องจากคำสั่ง SQL ถูกดำเนินการภายในขอบเขตของบัญชีที่บริการเซิร์ฟเวอร์ SQL กำลังทำงานอยู่ เมื่อคุณดูรายการบริการบนคอมพิวเตอร์ของคุณมีแนวโน้มมากที่สุดที่คุณจะเห็นบริการ SQL Server ทำงานเป็น (คอลัมน์เข้าสู่ระบบเป็น) ระบบท้องถิ่นหรือบริการเครือข่ายซึ่งเป็นบัญชีระบบที่ไม่มีการเข้าถึงเครือข่าย.
ในระบบของเราการสำรองข้อมูลไปยังคำสั่งแชร์เครือข่ายล้มเหลวเนื่องจากเรามีบริการ SQL Server ที่ทำงานเป็น Local System ซึ่งไม่สามารถเข้าถึงทรัพยากรเครือข่ายใด ๆ ได้อีก.
เพื่อให้ SQL สามารถสำรองข้อมูลโดยตรงไปยังเครือข่ายที่ใช้ร่วมกันได้เราจะต้องเรียกใช้บริการ SQL Server ในฐานะบัญชีท้องถิ่นซึ่งมีการเข้าถึงทรัพยากรเครือข่าย.
แก้ไขคุณสมบัติของบริการ SQL Server และบนแท็บเข้าสู่ระบบกำหนดค่าบริการเพื่อเรียกใช้เป็นบัญชีสำรองซึ่งมีสิทธิ์การเข้าถึงเครือข่าย.
เมื่อคุณคลิกตกลงคุณจะได้รับพร้อมท์ว่าการตั้งค่าจะไม่มีผลจนกว่าจะเริ่มบริการใหม่.
เริ่มบริการใหม่.
รายการบริการควรแสดงว่าบริการ SQL Server ทำงานอยู่ในขณะที่บัญชีที่คุณกำหนดค่า.
ตอนนี้เมื่อคุณรันคำสั่งเพื่อสำรองข้อมูลโดยตรงไปยังเครือข่ายแชร์:
SqlCmd -E -Q“ MyDB สำรองฐานข้อมูลลงดิสก์ = "\ 192.168.16.55BackupDatabaseMyDB.bak"”
คุณควรเห็นข้อความแสดงความสำเร็จ:
ดำเนินการ 152 หน้าสำหรับฐานข้อมูล 'MyDB', ไฟล์ 'MyDB' ในไฟล์ 1.
ดำเนินการ 2 หน้าสำหรับฐานข้อมูล 'MyDB', ไฟล์ 'MyDB_log' ในไฟล์ 1.
BACKUP DATABASE ประมวลผลเรียบร้อยแล้ว 154 หน้าใน 0.503 วินาที (2.493 MB / วินาที).
ด้วยไฟล์สำรองข้อมูลในไดเรกทอรีแชร์เครือข่าย:
ข้อควรพิจารณาเกี่ยวกับการแชร์เครือข่าย
เป็นสิ่งสำคัญที่จะต้องทราบว่าคำสั่ง backup คาดว่าจะสามารถเชื่อมต่อโดยตรงกับเครือข่ายที่ใช้ร่วมกันโดยไม่ได้รับพร้อมท์สำหรับข้อมูลประจำตัว บัญชีที่คุณกำหนดค่าบริการ SQL Server ให้ทำงานตามที่จะต้องมีการเชื่อมต่อที่เชื่อถือได้กับเครือข่ายที่ใช้ร่วมกันที่ข้อมูลประจำตัวที่เกี่ยวข้องอนุญาตให้เข้าถึงมิฉะนั้นข้อผิดพลาดเช่นนี้อาจเกิดขึ้น:
เกี่ยวกับข่าวสาร 3201 ระดับ 16 สถานะ 1 เซิร์ฟเวอร์ JF บรรทัด 1
ไม่สามารถเปิดอุปกรณ์สำรองข้อมูล '\ 192.168.16.55BackupDatabaseMyDB.bak' ข้อผิดพลาดของระบบปฏิบัติการ 1326 (การเข้าสู่ระบบล้มเหลว: ไม่ทราบชื่อผู้ใช้หรือรหัสผ่านไม่ดี).
ข่าวสารเกี่ยวกับ 3013 ระดับ 16 สถานะ 1 เซิร์ฟเวอร์ JF บรรทัด 1
BACKUP DATABASE สิ้นสุดลงอย่างผิดปกติ.
ข้อผิดพลาดนี้ระบุว่าชื่อผู้ใช้และรหัสผ่านของบัญชีไม่ได้รับการยอมรับจากเครือข่ายที่ใช้ร่วมกันและคำสั่งล้มเหลว.
ปัญหาที่ควรทราบอีกประการหนึ่งคือการสำรองข้อมูลจะถูกดำเนินการโดยตรงไปยังทรัพยากรเครือข่ายดังนั้นการสะดุดใด ๆ ในการเชื่อมต่อเครือข่ายอาจทำให้การสำรองข้อมูลของคุณล้มเหลว ด้วยเหตุผลนี้คุณควรสำรองข้อมูลไปยังตำแหน่งเครือข่ายที่เสถียร (เช่นอาจไม่ใช่ VPN).
ผลกระทบด้านความปลอดภัย
ตามที่กล่าวไว้ก่อนหน้านี้ให้ใช้วิธีที่คุณสำรองข้อมูลภายในเครื่องจากนั้นจึงคัดลอกไปยังเครือข่ายที่ใช้ร่วมกันซึ่งเป็นวิธีที่ช่วยให้คุณสามารถเรียกใช้บริการ SQL เป็นบัญชีที่มีการเข้าถึงระบบภายในเครื่องเท่านั้น.
ด้วยการเรียกใช้บริการในฐานะบัญชีสำรองคุณเปิดประตูสู่ปัญหาด้านความปลอดภัยที่อาจเกิดขึ้น ตัวอย่างเช่นสคริปต์ SQL ที่เป็นอันตรายสามารถดำเนินการภายใต้บัญชีสำรองและโจมตีเครือข่ายทรัพยากร นอกจากนี้การเปลี่ยนแปลงใด ๆ ที่เกี่ยวข้องกับบัญชี (การเปลี่ยนแปลงรหัสผ่าน / การหมดอายุหรือการลบ / ปิดการใช้งานบัญชี) จะทำให้บริการ SQL Server ล้มเหลวในการเริ่มต้น.
สิ่งสำคัญคือต้องคำนึงถึงประเด็นเหล่านี้หากคุณใช้งานอินสแตนซ์ SQL Server ของคุณโดยใช้บัญชีสำรอง แม้ว่าสิ่งเหล่านี้จะไม่แสดง stoppers หากมีการใช้มาตรการป้องกันที่เหมาะสมคุณควรพิจารณาเพิ่มพื้นที่ฮาร์ดไดรฟ์เพิ่มเติมจากนั้นใช้การสำรองข้อมูลภายในเครื่องและคัดลอกเพื่อให้คุณสามารถเรียกใช้บริการ SQL โดยใช้บัญชีท้องถิ่น.