Di chuyển tệp nhật ký mà không lấy cơ sở dữ liệu ngoại tuyến


14

Tôi cần di chuyển tệp nhật ký cơ sở dữ liệu sang phân vùng mới mà không lấy cơ sở dữ liệu ngoại tuyến.

Cách thông thường để làm điều này là tách DB, di chuyển tệp nhật ký sau đó gắn lại db.

Có thể làm điều này mà không cần lấy cơ sở dữ liệu ngoại tuyến và nếu vậy làm thế nào?


Câu trả lời:


16

Không có cách nào để làm điều này với một cơ sở dữ liệu trực tuyến.

Khi bạn di chuyển tệp cơ sở dữ liệu ( ALTER DATABASE ... MODIFY FILE), bạn thậm chí sẽ nhận được thông báo sau:

Tệp "YourFile" đã được sửa đổi trong danh mục hệ thống. Đường dẫn mới sẽ được sử dụng vào lần tiếp theo cơ sở dữ liệu được khởi động .


Cách thông thường để làm điều này là tách DB, di chuyển tệp nhật ký sau đó gắn lại db.

Đó không phải là cách "bình thường" hay được chấp nhận mà tôi sẽ làm. Để di chuyển tệp cơ sở dữ liệu, tôi làm như sau:

  1. Chạy lệnh ALTER DATABASE để thay đổi vị trí của tệp
  2. Lấy cơ sở dữ liệu ngoại tuyến
  3. Vật lý di chuyển (các) tệp đến vị trí mới được chỉ định trong bước # 1
  4. Đưa cơ sở dữ liệu trực tuyến

Xem tài liệu tham khảo này trên TechNet: Di chuyển cơ sở dữ liệu người dùng


3

Theo tham chiếu trên Cơ sở dữ liệu người dùng di chuyển TechNet từ câu trả lời của Thomas Stringer , nếu bạn muốn di chuyển các tệp mà không dừng toàn bộ phiên bản SQL Server (theo "Quy trình di dời có kế hoạch"), thứ tự phải là:

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;

Lưu ý OFFLINE trước; sau đó di chuyển các tệp và báo cho SQL Server về (các) vị trí mới.

Nếu bạn cần phải gỡ toàn bộ phiên bản SQL Server (xem quy trình "Tái định vị bảo trì đĩa theo lịch trình"), tốt nhất bạn nên sửa đổi vị trí tệp trước để khi khởi động lại phiên bản, không có vấn đề gì khi tìm tệp ở những địa điểm mới


1

Tôi biết đây là một câu hỏi cũ nhưng bạn không thể thêm tệp nhật ký thứ hai (sau đó được DB sử dụng thay vì bản gốc) ở vị trí mới sau đó thu nhỏ / xóa bản gốc?

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.