sqlserver磁盘空间不足(linux磁盘空间扩容)

在我们使用 SQL Server 数据库时经常会遇到 “存储空间不足”的问题。那么我们来分析一下此问题,并提出对应的解决方案。

关于此问题需要首先查看SQL Server 的版本然后对应的来解决。因为针对不同的 SQL Server 版本它的最大内存,数据库大小,CPU核心数使用都是有限制的,我们以 SQL Server 2017 为例:

   

SQL Server 2017 版本对比

从上图中可以看出不同的版本都是有区别的,如果你使用的是 免费的SQL Server Express 版本,那么它的最大数据库大小被限制为:10GB,也就是说当你的数据库存储的数据高于10GB的时候就不会再向数据库中存储数据了。如果是这种情况那么需要将数据库文件进行分离,备份,然后才可以继续存储。关于如何分离,备份操作我们再下面会讲解。

如果不是使用的SQL Server Express 版本那么需要检查的内容较多,我们一步一步进行分析。

第1, 检查数据库文件所在磁盘是否存满;

首先登陆SSMS(SQL Server Management Studio),选择数据库后,选择"属性",然后选择"Files",可以在"Path"中看到当前数据库文件的存储路径。那么我们就要检查 C 盘是否已经被存满,当然也有可能是其他盘。一般我们在建立数据库时,需要修改此处的存储路径。

   

数据库文件路径

查看磁盘空间剩余大小可以使用 T-SQL 命令:

Exec master.dbo.xp_fixeddrives;

结果如下:

   

磁盘剩余空间查询

第2, 检查数据库文件是否被限制大小;

按照第一步打开"Files"属性,在"Autogrowth/Maxsize"中检查下图中文件是否有"Limited to"的文字,如果有,那么有可能是对应的文件已经达到此大小,无法写入数据了。可以在第一步中查看对应的文件是否已经达到限制的大小。

   

数据库文件是否限制大小

第3, 未限制情况下,对对应的数据库文件进行空间扩展;

重点:进行此操作前对数据库进行完整备份。

完整备份步骤:

1) 选择需要备份的数据库,点击"Tasks(任务)---Back Up(备份)"

   

数据库备份

2) 选择备份类型为"完整",选择备份路径到其他盘,文件名为:文件名.bak,参考下图

   

完整模式及路径选择

   

文件名设置

完成备份后就是进行空间扩展。此处空间扩展分为多种情况。

如果是磁盘空间不足,且不想增加硬盘,如果以前的数据不需要查看,可以将当前的数据库删除,或者表删除,然后新建数据库,万事大吉,非常清爽。不过这种情况是不可能的。请看下一步。

如果磁盘空间不足,可以增加磁盘,那么有两种方法。

· 需要中断当前业务,对数据库进行分离/附加操作,具体步骤:

1. 对数据库进行分离;分离数据库就是将某个数据库从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中保存。

1.1 分离之前,设置数据库为单个用户,并记住该数据库所在路径。

   

单用户设置

1.2 数据库分离,选择需要分离数据库,然后选择"Tasks(任务)---Detach(分离)",然后分离数据库页面选中"更新统计信息"复选框。若"消息"列中没有显示存在活动连接,则"状态"列显示为"就绪";否则显示"未就绪",此时必须勾选"删除连接"列的复选框。分离后资源管理器中数据库消失。

   

数据库分离

   

状态设置

1.2 数据库分离后拷贝到其他大容量的磁盘,然后进行数据库的附加,在数据库上右键,选择"Attach(附加)",在弹出的画面点击"添加",找到存储刚才分离后的文件的路径,选择其中的后缀名称是" .mdf "文件,附加后检查文件的路径是否正确。可以修改。

   

数据库附加

   

选择MDF文件

   

附加

以上步骤就可以实现将现有的数据库文件转移到大容量的磁盘的方法。

而对于无需中断当前业务,对数据库进行扩展操作,以及在数据库被限制大小的情况如何对数据库进行扩展请关注我的专栏,我们会有更加详细的讲解和操作方法。

       
专栏
SQL Server数据库设计及报表设计
作者:工控世界
50币
32人已购
查看
(0)

相关推荐

  • 如何查看Linux磁盘空间大小

    操作方法 01 如何查看Linux磁盘空间大小 一.df命令: df是来自于coreutils软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置: 举例: [ ...

  • win7磁盘空间分离与磁盘空间合并方法图解

    为了在某某系统下安装多个系统或者纯粹分多一个磁盘空间出来,我们需要知道如何分离磁盘空间,可是当我们分离空间后突然后悔,想要把空间合并回去怎么办呢?不用着急,下面就为大家介绍win7磁盘空间分离与磁盘空 ...

  • 怎么解决电脑c盘空间越来越小,磁盘不足的方法

    在实际的工作中同事们也会经常问:c盘满了怎么办?c盘哪些文件可以删除?系统提示c盘空间不足怎么办? 下面我们就来轻松解决这个问题,动动手即可,不需任何工具.也许细心的你已经发现越是安装诸如360或者金 ...

  • 怎样查看电脑磁盘还有多少的内存空间

    怎样查看电脑磁盘还有多少的内存空间呢?今天小编为大家讲解一下. 操作方法 01 打开电脑,进入电脑主页面,如图所示. 02 进入之后,点击"此电脑",进入下一页面,如图所示. 03 ...

  • Linux交换空间的管理与技巧详解

    本文详细介绍了Linux交换空间的管理与技巧,有助于读者深入了解Linux交换空间的原理与使用,具体详情如下: 一、UNIX如何使用交换空间 所有 UNIX 操作系统都支持某种虚拟内存 (VM) 系统 ...

  • linux磁盘分区

    linux磁盘分区

  • linux系统磁盘分区及把磁盘挂载到系统中的方法

    fdisk 分区 fdisk /dev/sdb -p查看当前分区 -t 改分区号 -w将分区表写进磁盘 -n创建分区 -p主分区 -e拓展分区 partprobe 让内核更新分区信息 cat /pro ...

  • Win7系统中怎么创建新的磁盘分区 win7新建磁盘分区过程图文详解

    win7有库的设置,很贴心。但它默认的位置是C盘,很占空间。如果可以新建一个磁盘分区,那就可以更方便的使用电脑。本文,小编就来为你解决这个问题“Win7怎么创建新的磁盘分区”,具体请看下面的“新建磁盘 ...

  • 怎么复制磁盘或克隆磁盘到另一个磁盘上

    复制磁盘可以用来把老磁盘中的数据复制到新磁盘上,从而替换掉老磁盘。例如你的老磁盘大小不够用,或老磁盘上有物理坏道,这时就可以使用“复制磁盘功能”将老磁盘作为源磁盘,并把新磁盘作为目标磁盘,然后把源磁盘 ...