Làm cho phiên bản mới hơn của tệp LDF hoạt động với phiên bản cũ hơn của tệp MDF


7

Có thể kết hợp "phiên bản mới hơn" của tệp LDF với phiên bản cũ hơn của tệp MDF và giữ các thay đổi được ghi trong LDF không? Hãy cho rằng không có bản sao lưu log trong khoảng thời gian giữa chừng như tôi đoán điều đó sẽ khiến điều này thực sự không thể.

Các bước:

  1. Cơ sở dữ liệu ở chế độ phục hồi hoàn toàn
  2. Sao lưu toàn bộ
  3. Thực hiện một số thay đổi
  4. Tách cơ sở dữ liệu
  5. Tạo một bản sao của tệp LDF
  6. Khôi phục từ bản sao lưu đầy đủ trong bước 2
  7. Tách cơ sở dữ liệu
  8. Tạo một bản sao của tệp MDF
  9. Vứt bỏ bản sao lưu (bước quan trọng)
  10. Xóa cơ sở dữ liệu
  11. Bằng cách nào đó làm cho MDF và LDF chơi cùng với sự thay đổi được thực hiện ở bước 3.

Chỉ cần gắn MDF và LDF sẽ có lỗi:

Số quét nhật ký (38: 195: 41) được truyền cho cơ sở dữ liệu quét nhật ký 'mic' không hợp lệ.

Tôi cũng đã thử một chuỗi

  1. Tạo nên cơ sở dữ liệu
  2. Lấy cơ sở dữ liệu ngoại tuyến
  3. Thay thế các tập tin MDF và LDF
  4. Mang trực tuyến
  5. Làm một bản sao lưu nhật ký
  6. Bỏ cơ sở dữ liệu
  7. Tạo cơ sở dữ liệu chỉ với tệp đính kèm
  8. Sao lưu toàn bộ
  9. Khôi phục sao lưu toàn bộ (norecovery)
  10. Khôi phục sao lưu nhật ký từ Bước 5

Tôi có một trí nhớ sống động rằng điều này chỉ hoạt động tốt trong một thời gian nhưng sau đó nó không còn nữa.

Nhật ký trong bộ sao lưu này kết thúc tại LSN 38000000021300001, quá sớm để áp dụng cho cơ sở dữ liệu. Một bản sao lưu nhật ký gần đây hơn bao gồm LSN 39000000006500001 có thể được khôi phục.

Câu trả lời:


3

Có thể kết hợp "phiên bản mới hơn" của tệp LDF với phiên bản cũ hơn của tệp MDF và giữ các thay đổi được ghi trong LDF không?

Giả sử bạn muốn cơ sở dữ liệu thống nhất về giao dịch, không.

Chỉ cần gắn MDF và LDF là có lỗi

Trong trường hợp này là do số nhật ký không hợp lệ, vì bất kỳ lý do gì được cung cấp siêu dữ liệu của tệp cơ sở dữ liệu. Đây là một triệu chứng của quá trình chính xác mà bạn đã mô tả. Trong trường hợp này, tốt hơn hết là sử dụng create databaseđể tạo lại nhật ký (hoặc các lệnh DBCC) bởi vì dù cách nào thì cơ sở dữ liệu sẽ không nhất quán với các bước trên mà bạn đã vạch ra. Sáu của một, một nửa tá khá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.