SQL Server資料庫檔案不滿足擴充套件條件時不再自動擴充套件
客戶SQL Server資料庫日誌中,有如下錯誤報警:
日期 2011-12-11 00:36:44
日誌 SQL Server (當前 - 2011-12-13 13:00:00)
源 spid222
訊息
Could not allocate a new page for database '…' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
日期 2011-12-13 08:53:25
日誌 SQL Server (當前 - 2011-12-13 13:00:00)
源 spid148
訊息
Could not allocate space for object 'dbo.…' in database '…' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
…
日期 2011-12-13 09:29:33
日誌 SQL Server (當前 - 2011-12-13 13:00:00)
源 spid407
訊息
Could not allocate a new page for database '…' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
檢查發現,出現問題的資料庫配置了兩個資料檔案,檔案最大限制為4000MB,growth為10%,當前兩個資料檔案分別為4,073,216 KB和3,827,136 KB,剩餘容量為22,784 KB和268,864 KB,但不足當前檔案大小的10%。
分析原因,可能是因為剩餘容量不滿足擴充套件條件,系統簡單選擇了不擴充套件,而不是儘可能的利用可用空間進行擴充套件。
下面用例項來重現這一過程:
USE master;
GO
IF DB_ID (N'Demo') IS NOT NULL
DROP DATABASE Demo;
GO
-- Get the SQL Server data path
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1);
-- execute the CREATE DATABASE statement
EXECUTE ('CREATE DATABASE Demo
ON
( NAME = Demo_dat,
FILENAME = '''+ @data_path + 'Demodat.mdf'',
SIZE = 10MB, MAXSIZE = 50MB, FILEGROWTH = 30MB )
LOG ON
( NAME = Demo_log,
FILENAME = '''+ @data_path + 'Demolog.ldf'',
SIZE = 5MB, MAXSIZE = 250MB, FILEGROWTH = 5MB )'
);
GO
Select * into t_demo from sys.databases;
Go
Insert into t_demo select * from t_demo;
Go
Insert into t_demo select * from t_demo;
Go
…
Insert into t_demo select * from t_demo;
Go
訊息 1105,級別 17,狀態 2,伺服器 …,第 1 行
無法為資料庫 'Demo' 中的物件 'dbo.t_demo' 分配空間,因為 'PRIMARY' 檔案組已滿。
請刪除不需要的檔案、刪除檔案組中的物件、將其他檔案新增到檔案組或為檔案組中的現有檔案啟用自動增長,以便增加可用磁碟空間。
sp_helpdb demo;
go
name fileid filename filegroup size maxsize growth usage
-------- ------ ----------- --------- -------- ---------- --------- ---------
Demo_dat 1 Demodat.mdf PRIMARY 40960 KB 51200 KB 30720 KB data only
Demo_log 2 Demolog.ldf NULL 35840 KB 256000 KB 5120 KB log only
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-713277/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【實驗】修改資料庫檔案為自動擴充套件以達到表空間自動擴充套件的目的資料庫套件
- 擴充套件資料檔案大小套件
- 表空間自動擴充套件 AUTOALLOCATE 的擴充套件規律套件
- 進行SQL Server縱向擴充套件的必備條件KVSQLServer套件
- 回滾段擴充套件資料檔案套件
- oracle 新增儲存自動擴充套件資料檔案流程(auto)Oracle套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 設定maxsize的自動擴充套件資料檔案在達到maxsize後是否會繼續擴充套件套件
- oracle 關閉資料檔案的擴充套件Oracle套件
- ASP.NET Core擴充套件庫之Http通用擴充套件ASP.NET套件HTTP
- WCF擴充套件:行為擴充套件Behavior Extension套件
- aix擴充套件檔案系統AI套件
- aix 擴充套件檔案系統AI套件
- 如何重構CRM系統,滿足擴充套件的需求套件
- Zabbix-server SNMPTrap擴充套件Server套件
- 大資料——Scala擴充套件大資料套件
- SQL Server 禁用擴充套件儲存過程SQLServer套件儲存過程
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- 自動化擴充套件挑戰:ROI套件
- Sanic 擴充套件套件
- ORACLE 擴充套件Oracle套件
- 擴充套件工具套件
- 擴充套件歐幾里得套件
- DOM擴充套件套件
- 擴充套件ACL套件
- Lua擴充套件套件
- 照片擴充套件套件
- 擴充套件篇套件
- disable or 擴充套件套件
- 擴充套件表套件
- Mybatis擴充套件MyBatis套件
- MAXDATAFILES,DB_FILES及控制檔案的自動擴充套件套件
- Linux 檔案系統擴充套件Linux套件
- 資料塊、資料擴充套件、段套件
- JMeter 擴充套件開發:擴充套件 TCP 取樣器JMeter套件TCP
- 資料檢索擴充套件包套件
- java資料型別擴充套件Java資料型別套件
- C 擴充套件庫 – mysql API套件MySqlAPI