Tệp nhật ký của tôi trong SQL Server đã sử dụng hết dung lượng trên đĩa của tôi. Tôi chạy bản sao lưu đầy đủ mỗi đêm, nhưng tệp nhật ký tiếp tục phát triển. Tôi có thể làm gì?Tệp nhật ký của tôi quá lớn
Trả lời
Trên hầu hết các hệ thống bận rộn, bạn cần xem xét lập lịch sao lưu nhật ký suốt cả ngày và sau đó sao lưu toàn bộ hàng đêm của bạn. Đây là thực tế khá phổ biến.
Xóa tệp nhật ký?
Chỉnh sửa: Rõ ràng xóa tệp nhật ký không tốt, chỉ cần chỉ nhật ký cho máy chủ SQL. Tôi để lại điều này để nhắc lại những gì không nên làm.
Xóa các tập tin log sẽ thực sự xấu cho một máy chủ sql ... Nó chứa các thông tin để phục hồi từ một lỗi khó. –
Bạn có thể sử dụng một số loại xoay vòng và chỉ ghi nhật ký của một khoảng thời gian cố định, cho biết 7 ngày qua. Điều này là quá đủ. Hoặc bạn có thể đặt lại nhật ký mỗi đêm, bởi vì bạn nên có nó trong bản sao lưu của mình.
Bạn cần phải sao lưu các bản ghi của bạn cũng như cơ sở dữ liệu chính
này nên thu nhỏ nó:
dbcc shrinkfile('databasename_log', 0)
thử điều này:
dump transaction <dbname> with no_log
và sau đó thu nhỏ logfile bằng cách thiết lập tùy chọn autoshrink trong cài đặt máy chủ sql hoặc bằng.
Tôi nghĩ bạn cũng có thể sử dụng dbcc để thu nhỏ nó, nhưng tôi không nhớ cú pháp.
Nếu bạn có một công việc được lập lịch để thực hiện sao lưu đầy đủ, điều này là tốt và nên là điểm khởi đầu của bạn, bạn cũng cần phải thực hiện sao lưu nhật ký giao dịch thông thường.
Sao lưu nhật ký giao dịch làm cho không gian được căn chỉnh lại. Khi bạn đã xác định lịch biểu sao lưu nhật ký giao dịch thông thường của mình, bạn sẽ có khả năng bị xem xét thu hẹp nhật ký giao dịch thành kích thước chia sẻ nhiều hơn. Vì nó sẽ không còn phát triển không chính xác nữa.
Các chiến lược sao lưu phục hồi đầy đủ bao gồm:
* Database backups.
* Differential backups (optional).
* Transaction log backups.
tôi đề nghị bạn tham khảo tài liệu tham khảo sau của Microsoft.
http://msdn.microsoft.com/en-us/library/aa173551(SQL.80).aspx
Trong một số trường hợp, bạn có thể tìm thấy các logfile sẽ không đúng cách cắt ngắn mặc dù một bản sao lưu log được chạy. Bạn có thể thực hiện sao lưu bằng TRUNCATE_ONLY để kiểm tra. Khi bạn chạy nó, nó sẽ cắt bớt nhật ký giao dịch:
BACKUP LOG dbname WITH TRUNCATE_ONLY
Nguyên nhân của vấn đề này là một giao dịch mở trong phần trước của nhật ký. SQL sẽ không cắt bớt nhật ký qua giao dịch này, có khả năng gây ra một nhật ký lớn, ngày càng tăng. Bạn cần tìm hiểu xem giao dịch nào được mở và tại sao.Bạn có thể theo dõi không gian đăng nhập của bạn với:
DBCC SQLPERF (LOGSPACE)
Thông tin về giao dịch chạy dài có thể được tìm thấy sử dụng:
DBCC OPENTRAN
Hoặc:
select * from sys.dm_tran_database_transactions
Hi, hãy ghi nhớ rằng việc sử dụng các tùy chọn VỚI TRUNCATE_ONLY sẽ không thực sự sao lưu nhật ký giao dịch. Bạn sẽ mất khả năng khôi phục đến một điểm trong thời gian và vì vậy nên ngay lập tức theo dõi hành động này với một sao lưu đầy đủ, một khi các vấn đề giao dịch đăng nhập tất nhiên được giải quyết. –
Nó là tốt hơn để thêm các bản sao lưu nhật ký giao dịch để lịch trình của bạn.
BACKUP LOG database TO DISK = 'D:/database_log.bak'
Hãy ghi nhớ rằng trong các mô hình hồi phục hoàn toàn hoặc phần lớn-đăng ký giao dịch được rút ngắn khi sao lưu nhật ký giao dịch được thực hiện, nó là cần thiết để sao lưu các bản ghi thường xuyên để quản lý kích thước của giao dịch đăng nhập. Nếu không, tệp nhật ký giao dịch sẽ tăng lên cho đến khi không còn dung lượng.
Nếu không có nhu cầu ở point-in-time phục hồi và cơ sở dữ liệu thay đổi này là không thường xuyên nó là tốt hơn để sử dụng một mô hình phục hồi đơn giản (không có bản ghi giao dịch). Trong trường hợp này, nhật ký giao dịch được tự động cắt ngắn để loại bỏ bất kỳ tập tin log ảo không hoạt động. Trong mô hình khôi phục đơn giản, việc cắt nhật ký giao dịch diễn ra sau mỗi điểm kiểm tra.
- 1. Neo4j và các tệp nhật ký lớn
- 2. Tìm kiếm các tệp nhật ký lớn
- 3. Tệp nhật ký Apache grep lớn
- 4. Kích thước tệp nhật ký Ruby trên đường ray quá lớn
- 5. Ghi nhật ký Java - tệp nhật ký của tôi ở đâu?
- 6. Phân tích tệp nhật ký lớn trong Haskell
- 7. các tệp nhật ký của tôi ở đâu trong heroku?
- 8. 55KB của JQUERY quá lớn đối với đơn đăng ký của tôi
- 9. Tải lên tệp quá lớn
- 10. ghi nhật ký log4net không tạo tệp nhật ký
- 11. Tại sao thư viện tĩnh của tôi quá lớn?
- 12. Tệp .htaccess có thể quá lớn
- 13. Tệp nhật ký đầu ra nhật ký Git
- 14. vị trí của tệp nhật ký (sysout.log) của IBM Websphere
- 15. Làm thế nào để tạo tệp nhật ký của trang web của tôi trong php?
- 16. Xóa các nhật ký tên miền Apache lớn
- 17. Ghi nhật ký bằng Python - kiểm tra vị trí của tệp nhật ký?
- 18. Quản lý một số lượng lớn tệp nhật ký được phân phối trên nhiều máy
- 19. Ghi nhật ký bằng Python từ nhiều quá trình
- 20. Lỗi nhật ký trong một tệp
- 21. C Chuỗi Chữ "quá lớn đối với ký tự"
- 22. Ứng dụng Tomcat Tạo quá nhiều nhật ký
- 23. Làm cách nào để giảm kích thước tệp nhật ký máy chủ sql của tôi?
- 24. Nơi đặt một tệp nhật ký gỡ lỗi cho ứng dụng daemon của tôi?
- 25. Tôi có thể ghi tệp nhật ký log4net của mình vào dưới ClickOnce ở đâu?
- 26. Tệp nhật ký SVN của Collabnet, có bất kỳ tệp nào không?
- 27. Vùng lõi Linux quá lớn!
- 28. Xem nhật ký công việc của tôi ở jira
- 29. Làm cách nào để chỉ lọc nhật ký ứng dụng của tôi trong nhật ký của IntelliJ?
- 30. Phonegap/Cordova quá nhiều nhật ký CordovaLog Web Console
Đây là một quản trị câu hỏi DB. Không phải là một câu hỏi lập trình. – EBGreen
Tôi nghĩ rằng nó sẽ vẫn mở, nhiều công ty nhỏ hơn các lập trình viên phải hoạt động như quản trị viên DB. –
Thật vậy. Một số người có một chút quá 'đóng hạnh phúc' :) –