Tôi cần làm trống một tệp LDF trước khi gửi cho đồng nghiệp. Làm cách nào để buộc SQL Server cắt bớt nhật ký?
Tôi cần làm trống một tệp LDF trước khi gửi cho đồng nghiệp. Làm cách nào để buộc SQL Server cắt bớt nhật ký?
Câu trả lời:
nếu tôi nhớ rõ ... trong phân tích truy vấn hoặc tương đương:
BACKUP LOG databasename WITH TRUNCATE_ONLY
DBCC SHRINKFILE ( databasename_Log, 1)
WITH TRUNCATE_ONLY
.
BACKUP LOG DatabaseNameHere TO DISK='NUL:'
.
Trong studio quản lý:
Properties
, sau đó Options
.Tasks
-> Shrink
->Files
Ngoài ra, SQL để làm điều đó:
ALTER DATABASE mydatabase SET RECOVERY SIMPLE
DBCC SHRINKFILE (mydatabase_Log, 1)
Tham chiếu: http://msdn.microsoft.com/en-us/l Library / ms189493.aspx
use mydatabase
thực hiện trước khi thực hiệndbcc shrinkfile
Đối với SQL Server 2008, lệnh là:
ALTER DATABASE ExampleDB SET RECOVERY SIMPLE
DBCC SHRINKFILE('ExampleDB_log', 0, TRUNCATEONLY)
ALTER DATABASE ExampleDB SET RECOVERY FULL
Điều này đã giảm tệp nhật ký 14GB của tôi xuống còn 1MB.
Đối với SQL 2008, bạn có thể sao lưu nhật ký vào nul
thiết bị:
BACKUP LOG [databaseName]
TO DISK = 'nul:' WITH STATS = 10
Và sau đó sử dụng DBCC SHRINKFILE
để cắt bớt tệp nhật ký.
Một tùy chọn khác hoàn toàn là tách cơ sở dữ liệu thông qua Management Studio. Sau đó, chỉ cần xóa tệp nhật ký, hoặc đổi tên nó và xóa sau.
Quay lại Management Studio đính kèm cơ sở dữ liệu một lần nữa. Trong cửa sổ đính kèm loại bỏ tệp nhật ký khỏi danh sách các tệp.
DB đính kèm và tạo một tệp nhật ký trống mới. Sau khi bạn kiểm tra mọi thứ đều ổn, bạn có thể xóa tệp nhật ký được đổi tên.
Bạn có thể không nên sử dụng điều này cho cơ sở dữ liệu sản xuất.