2009-01-30 32 views
6

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

+0

Đâ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

+4

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. –

+0

Thật vậy. Một số người có một chút quá 'đóng hạnh phúc' :) –

Trả lời

5

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.

-1

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.

+0

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ó. –

1

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.

1

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

0

này nên thu nhỏ nó:

dbcc shrinkfile('databasename_log', 0) 
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.

4

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

5

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 
+0

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. –

1

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.

Các vấn đề liên quan