2012-02-10 28 views
14

Trong ổ C: tôi có tệp ldf cho cơ sở dữ liệu được lưu trữ trên một trong các máy chủ của chúng tôi. Tôi có một bản sao cục bộ của một trong những cơ sở dữ liệu đó là 1 gb và ldf (tệp nhật ký) của cơ sở dữ liệu đó là 16gb. Nó đang ăn nhiều không gian cục bộ của tôi trên ổ cứng của tôi. Tôi muốn cắt bớt tập tin đó. Rất nhiều những gì tôi đọc trực tuyến là không, nhưng có vẻ như họ đang nói về các tập tin trên máy chủ mà cơ sở dữ liệu được trên. Đó không phải là trường hợp ở đây, nó là trên máy địa phương của tôi.Cắt bớt tệp nhật ký giao dịch SQL Server

Vị trí của các tập tin trên máy tính của tôi là:

C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA 

Tại sao Tôi có một bản sao của tập tin đăng nhập tại địa phương và cũng là cơ sở dữ liệu tại địa phương?

Tôi sẽ làm cách nào để cắt bớt tệp này?

Cảm ơn!

Trả lời

27

Chuyển đến ngăn Object Explorer trong SSMS và nhấp chuột phải vào cơ sở dữ liệu được đề cập. Chọn tác vụ -> thu nhỏ -> tệp. Thay đổi tùy chọn loại tệp thành Nhật ký, nhấp vào tùy chọn "Sắp xếp lại trang trước khi phát hành dung lượng không sử dụng" và đặt giá trị thành 1 MB. Nhấn OK.

Nếu cách này không hiệu quả, hãy kiểm tra xem cơ sở dữ liệu của bạn có được thiết lập với mô hình khôi phục cơ sở dữ liệu đầy đủ hay không. Nhấp chuột phải vào cơ sở dữ liệu và đi đến các thuộc tính. Chọn Options và chọn tùy chọn Recover model. Đặt thành đơn giản (nếu bạn có thể !!!), sau đó thu nhỏ nhật ký.

+0

Điều này sẽ thu hẹp các tệp trên máy chủ thực mà cơ sở dữ liệu đang bật chứ không phải ổ đĩa cục bộ của tôi. – Loganj99

+1

Hãy để tôi đảm bảo rằng tôi hiểu điều này. Bạn có một bản sao cục bộ của một cơ sở dữ liệu nằm ở nơi khác. Bản sao cục bộ của bạn có được gắn với một cá thể SQL Server cục bộ không? –

+0

Từ sự hiểu biết của tôi. Tôi mới đến máy chủ sql, vì vậy tôi không chắc chắn lý do tại sao nó là có thực sự. Đó là theo thư mục mà tôi đã liệt kê trong bài đăng gốc của tôi, trên máy cục bộ của tôi. Nó cũng có trên máy chủ. Tôi không chắc chắn nếu họ là như nhau hoặc những gì là thỏa thuận. – Loganj99

1

Các tùy chọn khác bạn có thể thử là sử dụng VỚI TRUNCATE_ONLY:

BACKUP LOG databasename WITH TRUNCATE_ONLY 
DBCC SHRINKFILE ( adventureworks_Log, 1) 

nhưng đừng thử tùy chọn này trong môi trường sống, sự lựa chọn tốt hơn là để thiết lập cơ sở dữ liệu phục hồi đơn giản. xem lệnh bên dưới để thực hiện việc này:

ALTER DATABASE mydatabase SET RECOVERY SIMPLE 
DBCC SHRINKFILE (adventureworks_Log, 1) 
Các vấn đề liên quan