2008-09-16 41 views
9

Vì vậy, SQL Server 2000 của chúng tôi đã cho tôi lỗi, "Tệp nhật ký cho cơ sở dữ liệu đã đầy. Sao lưu nhật ký giao dịch để cơ sở dữ liệu giải phóng một số không gian đăng nhập."Tệp nhật ký cho cơ sở dữ liệu đầy đủ

Tôi làm cách nào để sửa lỗi này mà không xóa nhật ký như một số trang web khác đã đề cập?

Thông tin bổ sung: Bật Tự động phát triển được bật tăng 10% và bị giới hạn ở 40MB.

Trả lời

4

Scott, như bạn đoán: cắt bỏ các bản ghi là một động thái xấu nếu bạn quan tâm về dữ liệu của bạn.

Sau, miễn phí, video sẽ giúp bạn biết chính xác những gì đang diễn ra và sẽ cho bạn biết cách khắc phục sự cố mà không cắt bớt nhật ký. (Những đoạn phim này cũng giải thích tại sao đó là một hack và lý do tại sao bạn là đúng để tìm kiếm một giải pháp khác nguy hiểm như vậy.)

Cùng những đoạn phim này sẽ giúp bạn hiểu chính xác những gì đang diễn ra và sẽ cho bạn biết bạn có muốn chuyển sang chế độ phục hồi SIMPLE hay xem xét thực sự thay đổi thói quen sao lưu của bạn. Ngoài ra còn có một số video 'hướng dẫn' bổ sung sẽ hiển thị cho bạn chính xác cách thiết lập bản sao lưu của bạn để đảm bảo tính khả dụng trong khi quản lý kích thước và tăng kích thước tệp nhật ký.

-1

Đổi tên nó. ví dụ:
cũ-log-16-09-08.log

Sau đó, máy chủ SQL có thể sử dụng một tệp trống mới.

0

Vâng, bạn có thể lấy một bản sao của nhật ký giao dịch, sau đó cắt file log, đó là những gì được thông báo lỗi cho.

Nếu không gian đĩa đầy và bạn không thể sao chép nhật ký sang máy khác qua mạng, sau đó kết nối ổ đĩa qua USB và sao chép ổ đĩa theo cách đó.

2

Tôi không nghĩ rằng đổi tên hoặc di chuyển tệp nhật ký sẽ hoạt động trong khi cơ sở dữ liệu trực tuyến.

Điều dễ nhất cần làm, IMO, là mở các thuộc tính cho cơ sở dữ liệu và chuyển nó sang Mô hình khôi phục đơn giản. sau đó thu nhỏ cơ sở dữ liệu và sau đó quay trở lại và thiết lập DB thành mô hình Recoery đầy đủ (hoặc bất kỳ mô hình nào bạn cần).

Thay đổi chế độ ghi nhật ký buộc SQL Server đặt điểm kiểm tra trong cơ sở dữ liệu, sau đó thu hẹp cơ sở dữ liệu sẽ giải phóng không gian thừa.

+1

Thuật ngữ chính xác hơn có thể là "mô hình khôi phục đơn giản". – SeaDrive

0

Bạn có câu trả lời trong câu hỏi: Sao lưu nhật ký, sau đó nó sẽ bị thu hẹp. Lập kế hoạch bảo trì để thường xuyên sao lưu cơ sở dữ liệu và đừng quên chọn "Sao lưu nhật ký giao dịch". Bằng cách đó bạn sẽ giữ nó nhỏ.

17

Để chỉ làm rỗng nó:

backup log <dbname> with truncate_only 

Để lưu nó ở đâu đó:

backup log <dbname> to disk='c:\somefile.bak' 

Nếu bạn không thực sự cần lịch sử giao dịch, hãy thử đặt chế độ phục hồi cơ sở dữ liệu đơn giản.

+5

Tùy chọn TRUNCATE_ONLY khi sao lưu nhật ký bị gián đoạn trong SQL 2008. – Sean

0

Nếu đó là một môi trường sản xuất phi sử dụng

dump tran <db_name> with no_log; 

Một khi điều này đã hoàn thành thu nhỏ file log để giải phóng không gian đĩa. Cuối cùng chuyển sang chế độ phục hồi cơ sở dữ liệu đơn giản.

+0

Đây là cú pháp cũ hiện không được chấp nhận. BACKUP LOG là phương thức ưa thích. –

1

Bạn tôi người phải đối mặt với lỗi này trong quá khứ khuyến cáo:

Hãy thử

  • Sao lưu DB. Kế hoạch bảo trì bao gồm cắt bớt các tệp này.
  • Ngoài ra hãy thử thay đổi 'chế độ phục hồi' cho DB để Simple (thay vì Full ví dụ)

Nguyên nhân: Nhật ký giao dịch phồng lên do các sự kiện đang được đăng nhập (Có lẽ bạn có một số giao dịch không thành công và được khôi phục .. hoặc đột ngột đạt đỉnh trong các giao dịch trên máy chủ)

0

Ngay sau khi bạn sao lưu toàn bộ cơ sở dữ liệu và cơ sở dữ liệu không sử dụng mô hình Khôi phục đơn giản, SQL Server giữ một bản ghi đầy đủ tất cả các giao dịch đã từng được thực hiện trên cơ sở dữ liệu. Nó thực hiện điều này để trong trường hợp thất bại thảm khốc khi bạn mất tập tin dữ liệu, bạn có thể khôi phục lại điểm thất bại bằng cách sao lưu nhật ký và, khi bạn đã khôi phục bản sao lưu cũ, hãy khôi phục nhật ký để phát lại giao dịch.

Để ngăn chặn việc xây dựng này, bạn phải sao lưu nhật ký giao dịch. Hoặc, bạn có thể ngắt chuỗi tại điểm hiện tại bằng cách sử dụng tùy chọn TRUNCATE_ONLY hoặc NO_LOG của BACKUP LOG.

Nếu bạn không cần tính năng này, hãy đặt mô hình khôi phục thành Đơn giản.

2

ether sao lưu nhật ký cơ sở dữ liệu của bạn thường xuyên nếu bạn cần phục hồi tới phút hoặc thực hiện các công cụ thú vị khác như đăng nhập trong tương lai hoặc đặt cơ sở dữ liệu sang chế độ đơn giản và thu nhỏ tệp dữ liệu.

KHÔNG sao chép, đổi tên hoặc xóa tệp .ldf điều này sẽ phá vỡ cơ sở dữ liệu của bạn và sau khi bạn khôi phục cơ sở dữ liệu này, bạn có thể có dữ liệu ở trạng thái không nhất quán làm cho nó không hợp lệ.

0

Bạn thân mến của tôi, điều quan trọng đối với một DBA là kiểm tra tệp nhật ký của anh ấy khá thường xuyên. Bởi vì nếu bạn không chú ý nhiều đến nó một ngày nào đó nó sẽ đưa ra lỗi này.

Vì mục đích này, bạn phải định kỳ sao lưu để tệp nhật ký không gặp phải lỗi như vậy.

Khác thì đề xuất được đưa ra ở trên khá đúng.

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