Vào một ngày đẹp nhất trời, bạn nhận ra rằng file LOG của chính mình quá to, chiếm khoảng hết ổ cứng và cấp thiết triển khai bất kỳ một làm việc như thế nào bên trên tài liệu.

Bạn đang xem: Xóa file log của sql để giúp database nhẹ hơn


*

Hay chúng ta thấy, trong khi dữ liệu của chính mình chỉ bao gồm vài ba GB, cơ mà file LOG lên tới mức tận hàng trăm GB.Phải làm cho gắng nào ?
- Detach DB, xóa tệp tin LOG, sau đấy ATTACH lại DBTuy nhiên với cơ sở dữ liệu yên cầu tính sẵn sàng cao, thì ko mấy ai chất nhận được chúng ta làm điều đó.
- Backup LOG cùng với OpTION là TRUNCATE_ONLY hoặc NO_LOGVới phiên bạn dạng Squốc lộ Server 2008 thì vẫn bỏ Option này
This option will be removed in a future version of SQL Server. Avoid using it in new development work, và plan lớn modify applications that currently use it.
We recommover that you never use NO_LOG or TRUNCATE_ONLY khổng lồ manually truncate the transaction log…”.

Xem thêm: #1 : Tải Dragon Ball Z Budokai Tenkaichi 3 Miễn Phí Cho Pc, Chạy Ngon 100%


lúc bạn vẫn chỉnh chính sách về SIMPLE, tức là các transaction đã lưu vào LOG không thể quý hiếm nữa, chúng ta cũng có thể xóa đi dễ chịu, tựa như như dữ liệu trên đĩa của công ty ko quan trọng, bạn cũng có thể format lại ổ đĩa.-----Bài viết này thảo luận bố phương pháp mà bạn có thể sử dụng để thu hẹp cơ sở dữ liệutempdbđến kích thước nhỏ rộng kích thước được cấu hình sau cùng. Phương thơm pháp thứ nhất mang đến phép bạn kiểm soát hoàn toàn kích thước của các tệptempdbnhưng mà yêu cầu bạn phải khởi động lại Squốc lộ Server. Pmùi hương pháp thứ nhị thu hẹp toàn bộtempdb, có một số hạn chế, có thể bao gồm việc khởi động lại Squốc lộ Server. Pmùi hương pháp thứ cha cho phép bạn thu hẹp các tệp rieng lẻ trongtempdb. Hai phương thơm pháp sau cùng yêu cầu rằng ko được có hoạt động nào xảy ra vào cơ sở dữ liệutempdbtrong quá trình hoạt động thu hẹp.Chú ýNếu bạn đang sử dụng SQL Server 2005, bạn cũng có thể áp dụng những pmùi hương pháp này. Tuy nhiên, bạn nên sử dụng Squốc lộ Server Management Studio cố kỉnh vì Enterprise Manager và Query Analyzer để tiến hành những hoạt động này. Chú ý thêm rằng SQL Server management studio trong phiên bản 2005 cấm đoán biết kích thước chính xác của các tệp tempdb sau hoạt động thu hẹp. Giá trị "Không gian được phân bổ hiện tại’ luôn được lấy từ sys.master_files DMV và giá trị này ko được cập nhật sau khoản thời gian xảy ra hoạt động thu hẹp đến cơ sở dữ liệu tempdb. Để tìm kích cỡ chính xác của các tệp tempdb sau hoạt động thu hẹp, hãy thực thi lệnh sau vào management studio:use tempdbchọn (size*8) làm FileSizeKB từ sys.database_filesChú ýSquốc lộ Server 2008 ko bị ảnh hưởng bởi sự cố này (GUI hiển thị kích thước không chính xác.)Quay lại đầu trang

Thông tin Tempdb

Tempdblà không khí làm việc tạm thời. Cùng với các ứng dụng khác, SQL Server sử dụngtempdbcho:Lưu trữ các bảng tạm thời được tạo rõ ràng.Các bảng làm việc lưu giữ gữ kết quả trung gian được tạo ra trong quá trình xử lý và sắp xếp truy nã vấn.Con trỏ tĩnh được cụ thể hoá.Squốc lộ Server ghi lại đủ thông tin vào nhật ký giao dịch tempdb để cù lại một giao dịch nhưng lại ko thực hiện lại giao dịch vào quá trình truy vấn vấn cơ sở dữ liệu. Tính năng này làm tăng hiệu suất của câu lệnh INSERT trong tempdb. Ngoài ra, không cần ghi nhật ký đọc tin để thực hiện lại bất kỳ giao dịch nào vì tempdb được tạo lại mỗi lần bạn khởi động lại Squốc lộ Server; vị đó, ko có bất kỳ giao dịch nào để chuyển đến hoặc tảo lại. khi SQL Server khởi động, tempdb được tạo lại bằng cách sử dụng bản sao của cơ sở dữ liệu mẫu và được thiết lập lại về kích thước được cấu hình sau cùng.Theo mặc định, cơ sở dữ liệu tempdb được cấu hình để tự phát triển Khi cần; bởi vì đó, cơ sở dữ liệu này có thể phát triển theo thời gian đến kích thước lớn hơn ước ao muốn. Việc khởi động đối chọi giản Squốc lộ Server thiết lập lại kích thước của tempdb về kích thước được cấu hình sau cùng. Kích thước được cấu hình là kích thước rõ ràng sau cùng được thiết lập bằng hoạt động chũm đổi kích thước tệp nlỗi ALTER DATABASE với tuỳ chọn MODIFY FILE hoặc câu lệnh DBCC SHRINKFILE. Bài viết này trình bày tía phương thơm pháp mà bạn có thể sử dụng để thu hẹp tempdb đến kích thước nhỏ rộng kích thước được cấu hình.Quay lại đầu trang

Phương thơm pháp 1 để Thu hẹp Tempdb

Pmùi hương pháp này yêu cầu bạn khởi động lại SQL Server.Dừng Squốc lộ Server. Mở dấu nhắc lệnh, rồi khởi động Squốc lộ Server bằng cách nhập lệnh sau:sqlservr -c -fTsay đắm số-cvà-fkhiến Squốc lộ Server khởi động vào chế độ cấu hình tối thiểu với kích thướctempdbbằng 1 MB đến tệp dữ liệu và 0,5 MB đến tệp nhật ký.CHÚ Ý: Nếu bạn sử dụng Squốc lộ Server có tên như ví dụ, bạn phải cố gắng đổi thành thư mục phù hợp (Program FilesMicrosoft SQL ServerMSSQL$instance nameBinn) và sử dụng khoá chuyển đổi-s(-s%instance_name%).Kết nối đến Squốc lộ Server bằng Query Analyzer, rồi chạy lệnh Transact-Squốc lộ sau: ALTER DATABASE tempdb MODIFY FILE (NAME = "tempdev", SIZE = target_size_in_MB) --Kích thước mục tiêu mong mỏi muốn đến tệp dữ liệu ALTER DATABASE tempdb MODIFY FILE (NAME = "templog", SIZE = target_size_in_MB) --Kích thước mục tiêu ước ao muốn mang đến tệp nhật ký Dừng Squốc lộ Server bằng cách nhấnCtrl-Ctại cửa sổ dấu nhắc lệnh, khởi động lại Squốc lộ Server nlỗi một dịch vụ, rồi xác thực kích thước của các tệp Tempdb.mdf và Templog.ldf.Một hạn chế của phương thơm pháp này là chỉ hoạt động bên trên các tệp logictempdbmặc định,tempdevvàtemplog. Nếu các tệp bổ sung được thêm vàotempdb, bạn có thể thu hẹp chúng sau thời điểm khởi động lại SQL Server nlỗi một dịch vụ. Tất cả các tệptempdbđều được tạo lại trong những lúc khởi động; vì chưng đó, các tệp đều trống và có thể xoá được. Để xoá các tệp bổ sung trongtempdb, hãy sử dụng lệnh ALTER DATABASE với tuỳ chọn REMOVE FILE.Quay lại đầu trang

Phương thơm pháp 2 để Thu hẹp Tempdb

Sử dụng lệnh DBCC SHRINKDATABASE để thu hẹp toàn bộ cơ sở dữ liệutempdb. DBCC SHRINKDATABASE nhận được tmê mẩn sốtarget_percent, là phần trăm không khí trống mong muốn còn lại trong tệp cơ sở dữ liệu sau thời điểm cơ sở dữ liệu được thu hẹp. Nếu bạn sử dụng DBCC SHRINKDATABASE, bạn có thể phải khởi động lại SQL Server.QUAN TRỌNG: Nếu bạn chạy DBCC SHRINKDATABASE, không có hoạt động nào khác có thể xảy ra với cơ sở dữ liệutempdb. Để đảm bảo rằng các quá trình khác không thể sử dụngtempdbtrong những khi chạy DBCC SHRINKDATABASE, bạn phải khởi động SQL Server vào chế độ một người dùng. Để biết thêm đọc tin, hãy tham mê khảo phầnẢnh hưởng của việc Thực thi DBCC SHRINKDATABASE hoặc DBCCSHRINKFILE Trong Khi Tempdb Đang được Sử dụngvào bài viết này.Xác định không khí sẽ được sử dụng trongtempdbbằng cách sử dụng quy trình được lưu giữ trữsp_spaceused. Sau đó, tính toán phần trăm không khí trống còn lại để sử dụng làm tsi mê số mang lại DBCC SHRINKDATABASE; việc tính toán này dựa bên trên kích thước cơ sở dữ liệu mong muốn muốn.Chú ýTrong một số trường hợp, bạn có thể phải thực thisp_spaceused