ย้ายไฟล์บันทึกโดยไม่ต้องออฟไลน์ฐานข้อมูล


14

ฉันต้องการย้ายไฟล์บันทึกฐานข้อมูลไปยังพาร์ติชันใหม่โดยไม่ต้องออฟไลน์ฐานข้อมูล

วิธีปกติในการทำเช่นนี้คือการแยกฐานข้อมูลย้ายไฟล์บันทึกแล้วแนบฐานข้อมูลอีกครั้ง

เป็นไปได้ไหมที่จะทำเช่นนี้โดยไม่ทำให้ฐานข้อมูลเป็นออฟไลน์และถ้าเป็นเช่นนั้น


คำตอบ:


16

ไม่มีวิธีในการทำเช่นนี้กับฐานข้อมูลออนไลน์

เมื่อคุณย้ายไฟล์ฐานข้อมูล ( ALTER DATABASE ... MODIFY FILE) คุณจะได้รับข้อความต่อไปนี้:

ไฟล์ "YourFile" ได้รับการแก้ไขในแคตตาล็อกระบบ เส้นทางใหม่จะถูกใช้ในครั้งต่อไปที่ฐานข้อมูลเริ่มทำงาน


วิธีปกติในการทำเช่นนี้คือการแยกฐานข้อมูลย้ายไฟล์บันทึกแล้วแนบฐานข้อมูลอีกครั้ง

นั่นไม่ใช่วิธี "ปกติ" หรือเป็นที่ยอมรับที่ฉันจะทำ ในการย้ายไฟล์ฐานข้อมูลฉันทำดังต่อไปนี้:

  1. เรียกใช้คำสั่งแก้ไขฐานข้อมูลเพื่อเปลี่ยนตำแหน่งของไฟล์
  2. ใช้ฐานข้อมูลออฟไลน์
  3. ย้ายไฟล์ไปยังตำแหน่งใหม่ที่ระบุในขั้นตอนที่ 1
  4. นำฐานข้อมูลออนไลน์

ดูการอ้างอิงนี้บน TechNet: ย้ายฐานข้อมูลผู้ใช้


3

ตามการอ้างอิงเกี่ยวกับฐานข้อมูลผู้ใช้ 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 ทั้งหมด (ดูขั้นตอนสำหรับ "การย้ายสำหรับการบำรุงรักษาดิสก์ตามกำหนดเวลา") จะเป็นการดีที่สุดที่จะแก้ไขตำแหน่งไฟล์ก่อนดังนั้นเมื่อเริ่มอินสแตนซ์ใหม่ ในสถานที่ใหม่


1

ฉันรู้ว่านี่เป็นคำถามเก่า แต่คุณไม่สามารถเพิ่มไฟล์บันทึกที่สอง (ซึ่งฐานข้อมูลนั้นถูกใช้แทนฐานข้อมูลต้นฉบับ) ในตำแหน่งใหม่จากนั้นย่อ / ลบต้นฉบับหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.