ฉันต้องการย้ายไฟล์บันทึกฐานข้อมูลไปยังพาร์ติชันใหม่โดยไม่ต้องออฟไลน์ฐานข้อมูล
วิธีปกติในการทำเช่นนี้คือการแยกฐานข้อมูลย้ายไฟล์บันทึกแล้วแนบฐานข้อมูลอีกครั้ง
เป็นไปได้ไหมที่จะทำเช่นนี้โดยไม่ทำให้ฐานข้อมูลเป็นออฟไลน์และถ้าเป็นเช่นนั้น
ฉันต้องการย้ายไฟล์บันทึกฐานข้อมูลไปยังพาร์ติชันใหม่โดยไม่ต้องออฟไลน์ฐานข้อมูล
วิธีปกติในการทำเช่นนี้คือการแยกฐานข้อมูลย้ายไฟล์บันทึกแล้วแนบฐานข้อมูลอีกครั้ง
เป็นไปได้ไหมที่จะทำเช่นนี้โดยไม่ทำให้ฐานข้อมูลเป็นออฟไลน์และถ้าเป็นเช่นนั้น
คำตอบ:
ไม่มีวิธีในการทำเช่นนี้กับฐานข้อมูลออนไลน์
เมื่อคุณย้ายไฟล์ฐานข้อมูล ( ALTER DATABASE ... MODIFY FILE
) คุณจะได้รับข้อความต่อไปนี้:
ไฟล์ "YourFile" ได้รับการแก้ไขในแคตตาล็อกระบบ เส้นทางใหม่จะถูกใช้ในครั้งต่อไปที่ฐานข้อมูลเริ่มทำงาน
วิธีปกติในการทำเช่นนี้คือการแยกฐานข้อมูลย้ายไฟล์บันทึกแล้วแนบฐานข้อมูลอีกครั้ง
นั่นไม่ใช่วิธี "ปกติ" หรือเป็นที่ยอมรับที่ฉันจะทำ ในการย้ายไฟล์ฐานข้อมูลฉันทำดังต่อไปนี้:
ดูการอ้างอิงนี้บน TechNet: ย้ายฐานข้อมูลผู้ใช้
ตามการอ้างอิงเกี่ยวกับฐานข้อมูลผู้ใช้ TechNet Moveจากคำตอบของ Thomas Stringerหากคุณต้องการย้ายไฟล์โดยไม่ต้องหยุดอินสแตนซ์ของ SQL Server ทั้งหมด (ทำตาม "ขั้นตอนการย้ายตามแผน") คำสั่งควรเป็น:
ALTER DATABASE database_name SET OFFLINE;
... move the file(s) to new location
ALTER DATABASE database_name MODIFY FILE ( NAME = logical_name, FILENAME = 'new_path\os_file_name' );
ALTER DATABASE database_name SET ONLINE;
สังเกตออฟไลน์ก่อน หลังจากนั้นย้ายไฟล์และแจ้ง SQL Server เกี่ยวกับตำแหน่งใหม่
หากคุณไม่จำเป็นต้องใช้อินสแตนซ์ของ SQL Server ทั้งหมด (ดูขั้นตอนสำหรับ "การย้ายสำหรับการบำรุงรักษาดิสก์ตามกำหนดเวลา") จะเป็นการดีที่สุดที่จะแก้ไขตำแหน่งไฟล์ก่อนดังนั้นเมื่อเริ่มอินสแตนซ์ใหม่ ในสถานที่ใหม่
ฉันรู้ว่านี่เป็นคำถามเก่า แต่คุณไม่สามารถเพิ่มไฟล์บันทึกที่สอง (ซึ่งฐานข้อมูลนั้นถูกใช้แทนฐานข้อมูลต้นฉบับ) ในตำแหน่งใหม่จากนั้นย่อ / ลบต้นฉบับหรือไม่