Sql-Server
什麼可能阻止我的事務日誌自動增長設置為無限?
我一直在嘗試將我的一個數據庫的自動增長設置為,
unlimited
但無論我做什麼,它都保持不變。我首先檢查了是否有東西對我的數據庫持有任何鎖:
select radhe='kill ' + cast(DTL.request_session_id as varchar(3)) ,DTL.request_session_id ,DTL.resource_type ,DTL.request_type ,DTL.request_status ,DEST.TEXT , SP.spid , SP.blocked , SP.status , SP.loginame from sys.dm_tran_locks DTL INNER JOIN sys.sysprocesses SP ON DTL.request_session_id = SP.spid --INNER JOIN sys.[dm_exec_requests] AS SDER ON SP.[spid] = [SDER].[session_id] CROSS APPLY sys.dm_exec_sql_text(SP.sql_handle) AS DEST where 1=1 and resource_type = 'database' and resource_database_id = db_id('junofinance') and request_type = 'LOCK' and request_status = 'GRANT'
但是沒有任何東西持有任何數據庫鎖。所以我繼續執行以下命令:
use master ALTER DATABASE [JUNOFinance] MODIFY FILE ( NAME = N'JUNOFinance_log', MAXSIZE = UNLIMITED) GO
當我檢查日誌重用時,我得到以下資訊:
select log_reuse_wait_desc, * from sys.databases where name = 'junofinance'
然後,當我檢查日誌 maxsize 時,我仍然受到限制:
exec sp_helpdb 'junofinance'
我什至嘗試了一些愚蠢的事情,比如禁用自動增長並將其設置為 UNLIMITED
USE [master] GO GO ALTER DATABASE [JUNOFinance] MODIFY FILE ( NAME = N'JUNOFinance_log', MAXSIZE = UNLIMITED, FILEGROWTH = 0) GO
然後它工作正常,去圖!
但是當我重新啟用它時,它又回到了限制:
USE [master] GO GO ALTER DATABASE [JUNOFinance] MODIFY FILE ( NAME = N'JUNOFinance_log', FILEGROWTH = 10240KB ) GO
特別是在這台伺服器上,我無法升級它,所以我們在:
Microsoft SQL Server 2016 (SP2-CU7) (KB4495256) - 13.0.5337.0 (X64)
2019 年 5 月 16 日 02:24:21 版權所有 (c) Microsoft Corporation Enterprise Edition:Windows Server 2012 R2 上基於核心的許可(64 位)數據中心 6.3(內部版本 9600:)(管理程序)
如果打開 BOL 文章sys.database_files (Transact-SQL)
你會發現
268435456
= 日誌文件將增長到最大大小2 TB
2 Tb
是 SQL Server 數據庫的最大大小log file
,如果您需要它而不是2Tb
添加第二個log file
。在這裡,您可以找到SQL Server 的最大容量規範,該規範指出這
2Tb
是最大log file
大小: