如何减少日志文件的初始大小?

Bre*_*own 5 sql-server-2008-r2 transaction-log

我继承了 SQL Server 2008r2 数据库;创建的数据文件的初始大小为 1,000 mb,但事务日志的初始大小为 28,016 mb。未执行任何备份。

我已经实施了完整备份和事务备份来满足我们的恢复需求,因此事务文件始终为 ~99.9% 空,使用的空间从不超过 30 或 40 mb。我想减少初始大小,以便我可以将日志缩小到更合适的大小,200 mb 左右。

有谁知道我如何重新定义初始大小为 200 mb 的日志文件?

Kin*_*hah 6

有谁知道我如何重新定义初始大小为 200 mb 的日志文件?

你必须使用 ALTER DATABASE [YOUR_DB_NAME] ... MODIFY FILE ... SIZE

ALTER DATABASE [your_db_name] 
SET RECOVERY SIMPLE;

CHECKPOINT;

-- shrink the log file to 200MB
DBCC SHRINKFILE (your_db_name_log,200);

--- define the initial size to 200MB as well.. CHANGE it as per your needs!
ALTER DATABASE [your_db_name]
MODIFY FILE (NAME=your_db_name_LOGICAL_log,SIZE=200MB,MAXSIZE=UNLIMITED,FILEGROWTH=100MB);

--Optional if you want the database in full recovery mode 
--for point in time recovery going forward
ALTER DATABASE [your_db_name] 
SET RECOVERY FULL;
--- Take full backup to establish log chain
-- take log backups to help truncate the log file and keep it manageable
Run Code Online (Sandbox Code Playgroud)

建议:

  • 200MB 的初始大小非常小。根据您的系统有多忙以及您进行日志备份的频率(如果您的数据库处于完全恢复状态),我建议您考虑使初始大小和自动增长更合理
  • 启用即时文件初始化以帮助数据文件自动增长事件(以及数据库创建和恢复数据库)始终是一个好主意。有关更多详细信息,请参阅数据库碎片整理和自动增长设置答案。