โฮมเพจ » ทำอย่างไร » สำรองและคืนค่าฐานข้อมูลเซิร์ฟเวอร์ SQL ของคุณจากบรรทัดคำสั่ง

    สำรองและคืนค่าฐานข้อมูลเซิร์ฟเวอร์ SQL ของคุณจากบรรทัดคำสั่ง

    ส่วนที่สำคัญที่สุดของแผนการบำรุงรักษา SQL Server คือการสำรองฐานข้อมูลของคุณเป็นประจำ ในการสำรองฐานข้อมูลคุณไม่สามารถคัดลอกไฟล์ MDF และ LDF ที่เกี่ยวข้องของฐานข้อมูลได้เนื่องจาก SQL Server มีการล็อกไฟล์เหล่านี้ แต่คุณต้องสร้างไฟล์สำรองจริงผ่าน SQL Server.

    ในขณะนี้สามารถทำได้โดยการพัฒนาแผนการบำรุงรักษาภายในของ SQL Management Studio รุ่นด่วนของ SQL Server ไม่ได้เสนออินเทอร์เฟซนี้ ในการแก้ไขปัญหานี้คุณสามารถสำรองฐานข้อมูลของคุณได้อย่างง่ายดายโดยการเรียกใช้คำสั่งด้านล่างในขณะที่ลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบ Windows:

    SqlCmd -E -S Server_Name -Q“ ฐานข้อมูลแบ็คอัพ [Name_of_Database] ถึง DISK = "X: PathToBackupLocation [Name_of_Database] .bak" "

    ตัวอย่างด้านล่างจะช่วย.

    อินสแตนซ์ของ SQL Server เริ่มต้น:

    SqlCmd -E -S MyServer -Q“ ฐานข้อมูลแบ็คอัพ [MyDB] ไปยัง DISK = "D: BackupsMyDB.bak" "

    อินสแตนซ์ SQL Server ที่มีชื่อ:

    SqlCmd -E -S MyServerMyInstance -Q“ ฐานข้อมูลแบ็คอัพ [MyDB] ไปที่ DISK = "D: BackupsMyDB.bak" "

    ด้านบนสร้างสำเนาสำรองที่สามารถเรียกคืนได้อย่างสมบูรณ์ของ“ MyDB” ไปยังไฟล์“ D: BackupsMyDB.bak” ซึ่งสามารถใช้สำหรับการกู้คืนจากความเสียหาย แน่นอนคุณสามารถเปลี่ยนตำแหน่งสำรองและไฟล์เป็นสิ่งที่คุณต้องการ แต่ให้แน่ใจว่าคุณระบุตำแหน่งโฟลเดอร์ที่มีอยู่ในเครื่องท้องถิ่น ไฟล์สำรองข้อมูลนี้สามารถคัดลอกไปยังเทปไดรฟ์หรือตำแหน่งสำรองภายนอกอื่น.

    คำถามทั่วไปคือ“ สามารถสร้างไฟล์สำรองข้อมูลไปยังไดรฟ์ที่แมปหรือตำแหน่ง UNC ได้หรือไม่” และคำตอบอย่างรวดเร็วคือไม่ สาเหตุเป็นเพราะบริการ SQL Server Windows ทำงานเป็นบัญชีผู้ใช้ที่มีการเข้าถึงเครื่องท้องถิ่น คุณสามารถเปลี่ยนบัญชีที่บริการดำเนินการได้ แต่ไม่ได้รับการสนับสนุนเนื่องจากเหตุผลด้านความปลอดภัย.

    การกู้คืนการสำรองฐานข้อมูลจากบรรทัดคำสั่ง

    ในการกู้คืนฐานข้อมูลจากไฟล์สำรองข้อมูลให้ใช้คำสั่ง:

    SqlCmd -E -S Server_Name -Q“ คืนค่าฐานข้อมูล [Name_of_Database] จาก DISK = "X: PathToBackupFile [File_Name] .bak" "

    ตัวอย่างเช่น:

    SqlCmd -E -S MyServer -Q“ เรียกคืนฐานข้อมูล [MyDB] จาก DISK = "D: BackupsMyDB.bak" "

    คำสั่งดังกล่าวจะคืนค่าการสำรองข้อมูล“ MyDB” จากข้อมูลที่เก็บไว้ในไฟล์สำรองข้อมูล“ D: BackupsMyDB.bak” การเปลี่ยนแปลงใด ๆ ที่ทำกับ MyDB ตั้งแต่สร้างไฟล์สำรองจะหายไป.

    สิ่งสำคัญที่ต้องจำไว้เมื่อใช้คำสั่งด้านบนคือมีไว้เพื่อใช้กับ SQL Server เดียวกันกับไฟล์สำรองที่สร้างขึ้น ไฟล์สำรอง SQL เก็บข้อมูล 'เบื้องหลัง' ที่ควบคุมตำแหน่งและวิธีการคัดลอกไฟล์ข้อมูลในไฟล์สำรอง หากคุณกำลังกู้คืนการสำรองข้อมูลจาก SQL Server อื่นตำแหน่งของเส้นทางในไฟล์สำรองข้อมูลอาจไม่ตรงกับเซิร์ฟเวอร์ที่คุณกำลังกู้คืนและข้อผิดพลาดจะเกิดขึ้น แม้ว่าจะสามารถแก้ไขได้ แต่การกู้คืนข้อมูลสำรองที่สร้างขึ้นบน SQL Server อื่นทำได้ง่ายกว่ามากโดยใช้เครื่องมือ SQL Management Studio.

    หมายเหตุ: คำสั่งด้านบนจะทำงานกับ SQL 2005 และสูงกว่า (ทุกรุ่น) สำหรับ SQL 2000 และรุ่นก่อนหน้าแทนที่ 'SqlCmd' ด้วย 'oSql'.