Tôi có một quá trình hoạt động lâu dài giữ một giao dịch mở trong toàn bộ thời gian.
Tôi không kiểm soát được cách thức thực thi điều này.
Bởi vì giao dịch được giữ mở trong toàn bộ thời gian, khi nhật ký giao dịch đầy, SQL Server không thể tăng kích thước của tệp nhật ký.
Vì vậy, quá trình không thành công với lỗi "The transaction log for database 'xxx' is full"
.
Tôi đã cố gắng ngăn chặn điều này bằng cách tăng kích thước của tệp nhật ký giao dịch trong thuộc tính cơ sở dữ liệu, nhưng tôi gặp lỗi tương tự.
Không chắc chắn những gì tôi nên thử tiếp theo. Quá trình chạy trong vài giờ nên không dễ để chơi thử và sai sót.
Bất kỳ ý tưởng?
Nếu bất kỳ ai quan tâm, quá trình này là một tổ chức nhập vào Microsoft Dynamics CRM 4.0.
Có nhiều dung lượng đĩa, chúng tôi có nhật ký ở chế độ ghi nhật ký đơn giản và đã sao lưu nhật ký trước khi bắt đầu quá trình.
- = - = - = - = - CẬP NHẬT - = - = - = - = -
Cảm ơn tất cả các ý kiến cho đến nay. Sau đây là điều khiến tôi tin rằng nhật ký sẽ không phát triển do giao dịch mở:
Tôi nhận được lỗi sau...
Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception:
System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
Vì vậy, theo lời khuyên đó, tôi đã đi đến " log_reuse_wait_desc column in sys.databases
" và nó có giá trị " ACTIVE_TRANSACTION
".
Theo Microsoft: http://msdn.microsoft.com/en-us/library/ms345414(v=sql.105).aspx
Điều đó có nghĩa như sau:
Một giao dịch đang hoạt động (tất cả các mô hình khôi phục). • Một giao dịch lâu dài có thể tồn tại khi bắt đầu sao lưu nhật ký. Trong trường hợp này, việc giải phóng dung lượng có thể yêu cầu một bản sao lưu nhật ký khác. Để biết thêm thông tin, hãy xem "Giao dịch hoạt động dài hạn", ở phần sau của chủ đề này.
• Giao dịch bị hoãn lại (chỉ dành cho SQL Server 2005 Enterprise Edition và các phiên bản mới hơn). Giao dịch hoãn lại thực sự là một giao dịch đang hoạt động có quá trình khôi phục bị chặn do một số tài nguyên không có sẵn. Để biết thông tin về nguyên nhân của các giao dịch bị hoãn lại và cách chuyển chúng ra khỏi trạng thái hoãn lại, hãy xem Giao dịch bị hoãn lại.
Tôi đã hiểu lầm điều gì đó?
- = - = - = - CẬP NHẬT 2 - = - = - = -
Vừa bắt đầu quá trình với kích thước tệp nhật ký ban đầu được đặt thành 30GB. Quá trình này sẽ mất vài giờ để hoàn thành.
- = - = - = - CẬP NHẬT cuối cùng - = - = - = -
Sự cố thực sự là do tệp nhật ký sử dụng tất cả dung lượng đĩa có sẵn. Trong lần thử cuối cùng, tôi đã giải phóng 120GB và nó vẫn sử dụng tất cả và cuối cùng không thành công.
Tôi đã không nhận ra điều này đã xảy ra trước đây bởi vì khi quá trình chạy qua đêm, nó đã bị lỗi. Lần này tôi đã có thể kiểm tra kích thước tệp nhật ký trước khi khôi phục.
Cảm ơn tất cả các đầu vào của bạn.