Hướng dẫn SHRINK file log trong SQL
Tóm tắtBài viết này thảo luận các phương pháp khác nhau mà bạn có thể sử dụng để thu hẹp cơ sở dữ liệu tempdb trong Microsoft SQL Server. Trước khi bạn thu hẹp cơ sở dữ liệu tempdb bằng cách sử dụng các phương pháp đã mô tả trong bài viết này, hãy lưu ý những điều sau: Show
Thông tin TempdbCơ sở dữ liệu tempdb là không gian làm việc tạm thời. SQL Server sử dụng tempdb để thực hiện nhiều tác vụ. Trong số các tác vụ đó là những tác vụ sau:
SQL Server chỉ ghi lại đủ thông tin trong nhật ký giao dịch tempdb để quay lại một giao dịch nhưng không thực hiện lại giao dịch trong quá trình khôi phục 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, bạn không phải ghi lại thông 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 SQL Server. Do đó, không có giao dịch nào để nâng cấp hoặc hoàn nguyên. 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. 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 thay đổi kích thước tệp như ALTER DATABASE sử dụng tÙy chọn MODIFY FILE hoặc câu lệnh DBCC SHRINKFILE hoặc DBCC SHRINKDATABASE.
Ba phương pháp đầu tiên được thảo luận ở đây.
Một hạn chế của phương pháp này là chỉ hoạt động trên các tệp logic tempdb mặc định, tempdev và templog. Nếu các tệp bổ sung được thêm vào tempdb, bạn có thể thu hẹp chúng sau khi khởi động lại SQL Server dưới dạng một dịch vụ. Mọi tệp tempdb đều được tạo lại trong khi khởi động. Tuy nhiên, các tệp này trống và có thể bị xóa. Để xóa các tệp bổ sung trong tempdb, hãy sử dụng lệnh ALTER DATABASE bằng cách sử dụng tÙy chọn REMOVE FILE.
Có các hạn chế đối với việc sử dụng lệnh DBCC SHRINKDATABASE trên cơ sở dữ liệu tempdb. Kích thước mục tiêu cho tệp dữ liệu và tệp nhật ký không thể nhỏ hơn kích thước được chỉ định khi cơ sở dữ liệu được tạo ra hoặc nhỏ hơn kích thước sau cùng được thiết lập rõ ràng bằng hoạt động thay đổi kích thước tệp, chẳng hạn như ALTER DATABASE sử dụng tÙy chọn MODIFY FILE hoặc lệnh. Một hạn chế khác của BCC SHRINKDATABASE là việc tính toán tham số target_percentage và sự phụ thuộc vào không gian hiện tại được sử dụng.
Một lợi thế của DBCC SHRINKFILE là nó có thể giảm kích thước của tệp đến kích thước nhỏ hơn kích thước ban đầu. Bạn có thể đưa ra DBCC SHRINKFILE trên bất kỳ tệp dữ liệu hoặc nhật ký nào. Một hạn chế của DBCC SHRINKFILE là bạn không thể làm cho cơ sở dữ liệu nhỏ hơn kích thước của cơ sở dữ liệu mẫu. Lỗi 2501 và 8909 khi bạn chạy thao tác thu hẹpNếu tempdb đang được sử dụng và nếu bạn cố thu hẹp tệp này bằng lệnh DBCC SHRINKDATABASE hoặc DBCC SHRINKFILE, bạn có thể nhận được thông báo giống như sau, tÙy vào phiên bản SQL Server mà bạn đang sử dụng: Máy chủ: Thông báo 8909, Mức 16, Trạng thái 1, Lỗi Bảng Dòng 1: ID Đối tượng 0, chỉ mục ID -1, ID phân vÙng 0, ID đơn vị phân bổ 0 (loại Không xác định), ID trang (6:8040) chứa ID trang không chính xác trong tiêu đề trang. PageId trong tiêu đề trang = (0:0).
Máy chủ: Thông báo 2501, Mức 16, Trạng thái 1, Dòng 1 Không thể tìm thấy bảng có tên '1525580473'. Kiểm tra sysobjects. Máy chủ: Thông báo 8909, Mức 16, Trạng thái 1, Dòng 0 Bảng bị hỏng: ID đối tượng 1, ID chỉ mục 0, ID trang %S_PGID. PageId trong tiêu đề trang = %S_PGID. Ghi chú
Tham khảoThu hẹp Cơ sở dữ liệu |