平台
- sqlserver 2012
問題描述
正常運行的生產系統,今天下午突然發現不能使用的情況。看日志,發現以下描述:
System.Data.Entity.Infrastructure.DbUpdateException: An error occurred while updating the entries. See the inner exception for details. —> System.Data.Entity.Core.UpdateException: An error occurred while updating the entries. See the inner exception for details. —> System.Data.SqlClient.SqlException: 無法為數據庫 ‘bidagen2’ 中的對象 ‘dbo.OperationLog’.‘PK_dbo.OperationLog’ 分配空間,因為 ‘PRIMARY’ 文件組已滿。請刪除不需要的文件、刪除文件組中的對象、將其他文件添加到文件組或為文件組中的現有文件啟用自動增長,以便增加可用磁盤空間。
定位問題,自增的主鍵,沒有存儲空間了。
解決問題
1、查看數據庫數據文件存放路徑
use master--你的數據庫名稱 go --看看你的primary組里的文件 select ds.name, df.physical_name, --主文件組的物理文件的路徑 --打開我的電腦,查看文件所在盤,是否磁盤已滿 df.is_percent_growth, --是否自動增長 df.growth --增長多少 from sys.data_spaces ds inner join sys.database_files df on ds.data_space_id = df.data_space_id where ds.name = 'primary'
運行以上代碼會出現類似以下的結果:
2、查看存放路徑的盤是否已滿
針對我的情況,C盤還有很多的空間,所以應該是數據庫設置的問題。
如果已經滿了,那就需要清除一些文件了。
3、更改數據庫設置
a、使用 MSSqlserver Management Studio 連接數據庫
b、在需要更改的數據庫上點擊右鍵,選擇屬性
c、依次選擇文件->Primary組的自動增長設置->最大文件大小設置為無限制
具體可以參考以下操作截屏。
至此,該問題已解決。