磁盘管理

查看磁盘或者目录的容量 df  du

df 查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认是按k为单位显示的

df常用参数有 –i -h -k –m等

-i 使用inodes 显示结果

-h 使用合适的单位显示,例如G

-k -m 分别为使用K,M为单位显示

简单介绍一下,你看到的相关数据。Filesystem 表示扇区,也就是你划分磁盘时所分的区;1K-blocks/1M-blocks表示以1K/1M为单位;Used 和 Available分别是已使用和剩余;Use% 就是已经使用的百分比,如果这个值大于90% 那么你就应该注意了,磁盘很有可能马上就会变满的;Mounted on 则表示该分区(扇区)所挂载的地方。

du 用来查看某个目录所占空间大小

语法:du [-abckmsh] [文件或者目录名] 常用的参数有:

-a:全部文件与目录大小都列出来。如果不加任何选项和参数只列出目录(包含子目录)大小。

-b:列出的值以bytes为单位输出,默认是以Kbytes

-c:最后加总

-k:以KB为单位输出

-m:以MB为单位输出

-s:只列出总和

-h:系统自动调节单位,例如文件太小可能就几K,那么就以K为单位显示,如果大到几G,则就以G为单位显示。笔者习惯用 du –sh filename 这样的形式。

磁盘的分区和格式化

笔者经常做的事情就是拿一个全新的磁盘来分区并格式化。这也说明了作为一个linux系统管理员,对于磁盘的操作必须要熟练。所以请你认真学习该部分内容。

fdisk linux下的硬盘分区工具

语法: fdisk [-l ] [设备名称]

-l :后边不跟设备名会直接列出系统中所有的磁盘设备以及分区表,加上设备名会列出该设备的分区表。

如果不加-l 则进入另一个模式,在该模式下,可以对磁盘进行分区操作。

刚进入该模式下,会有一个提示Command (m for help): 此时按m则会打印出帮助列表,如果你英文好,我想你不难理解这些字母的功能。笔者常用的有p, n,d, w, q.

P:打印当前磁盘的分区情况。

n:重新建立一个新的分区。

w:保存操作。

q:退出。

d:删除一个分区

因为笔者的linux系统是安装在虚拟机上的,所以我可以增加一块新的磁盘。然后笔者会把新的磁盘分成多个分区。

当再次fdisk -l 查看时发现多了一个/dev/hdb 设备,并提示该设备没有可用的分区表。那么下面就来分一下这个/dev/hdb.

首先用p查看一下,并没有任何分区信息。

用n创建一个新的分区,会提示要建立e (extended 扩展分区)或者p (primary partition主分区),这里笔者选择主分区,所以按了p回车后,又让输入First cylinder 你或者直接回车或者输入一个数字,因为这块磁盘是新的并没有任何分区,所以直接回车其实就是从1开始了。你也可以自定义输入,但不要超过2080,笔者这里输入1回车。此时会提示要分多大,可以写一个数值(2-2080),也可以输入+sizeK或者+sizeM,后者比较直观容易理解,所以笔者在这里输入+100M,即我分了一个100M的主分区。再用p查看时,果真多出来一个分区。然后笔者继续重复前面的操作,建立了4个主分区。当笔者再次输入n创建分区时,结果提示错了。

由此你会发现,在linux中最多只能创建4个主分区,那如果你想多创建几个分区如何做?很容易,在创建完第三个分区后,创建第四个分区时选择扩展分区。

先删除第四个主分区,然后建立一个扩展分区

在建立扩展分区时,会问你要分多少给这个扩展分区,笔者直接回车,即把所有空间都分给了这个扩展分区。这个扩展分区/dev/hdb4并不能往里写数据,它只是一个空壳子,需要我们继续在这个空壳中继续创建分区。

当建立完扩展分区,然后按n创建新分区时你会发现不再提示是要建立p还是e了,因为我们已经不能再创建p了。在这里需要你明白的是,hdb5 其实只是hdb4 中的一个子分区,到目前为止可用的分区也才4个,那笔者就再创建第5个分区出来。

然后按w保存,该模式自动退出,如果你不想保存分区信息直接按q即可退出。

下面我们把刚分好的分区删除,重新建立分区。如何删除你还记得吧,对了就是直接按d然后选择合适的数字。删除完所有分区后,这块磁盘就恢复如初了。

第一个分区,我们就建立成扩展分区。并且分给它200M。

当再次新建分区时,发生了变化,不再是p或者e了,而是p或者l(逻辑分区),这是为什么呢?在上面也提到了,一个扩展分区只是一个空壳,在扩展分区下才可以继续划分小的分区,这个小的分区其实就是逻辑分区了。

而且这个逻辑分区默认都是从字数5开始的,因为前面的数字要么给主分区留着,要么给扩展分区留着。由此我们也可以得到,在linux中最多可以创建4个主分区,一旦创建4个主分区后就不能增加任何分区了。另外最多也只能创建一个扩展分区。扩展分区下的逻辑分区最多可以创建多少呢?IDE的硬盘(类似于hda, hdb, hdc 等)最多可以创建10个(hdb5-hdb15),这是笔者试验出来的结果。有的资料说linux下的逻辑分区是没有限制的,也有的说最大可以到64,至于对不对,需要你去近一步考察了,我们没有必要多么深入的研究这个问题,也没有什么意义。

通过以上操作,相信你也学会了用fdisk 来分区了吧。值得提出的是,不要闲着没事分区玩儿,这操作的危险性是很高的,一不留神就把你服务器上的数据全部给分没有了。如果有分区的操作,那么请保持百分之二百的细心,切记切记!

mkfs.ext2 / mkfs.ext3 /mke2fs 格式化linux硬盘分区

当用man查询这三个命令的帮助文档时,你会发现我们看到了同一个帮助文档,这说明三个命令是一样的。常用的选项有:

-b:分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。

-i:设定inode大小

-N:设定inode数量,有时使用默认的inode数不够用,所以要自定设定inode数量。

-c:在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢

-L:预设该分区的标签label

-j:建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了

不加任何选项,直接格式化/dev/hdb1

上例中更改了block size为4096 默认是1024,而inode大小设定为4096。

下面的例子分区时自定义分区的label(标签)名。

e2label 用来查看或者修改分区的标签(label

这个命令很简单,后边直接跟分区编号,即可查看该分区的label,当想要修改标签名时,分区编号后边跟想要的标签名即可。

fsck 检查硬盘有没有坏道

语法: fsck [-Aar] [分区]

-A :加该参数时,后不需要跟分区名作为参数。它会自动检查/etc/fstab 文件下的所有分区(开机过程中就会执行一次该操作);

-a :自动修复检查到有问题的分区;

-r :当检查到有坏道的分区时会让用户决定是否修复。

当你使用fsck检查磁盘有无坏道时,会提示用户“跑这个任务可能会导致某些挂载的文件系统损坏”,所以这个命令不要轻易运行。否则真的遇到问题,系统甚至都不能启动了。

挂载/卸载磁盘

在上面的内容中讲到了磁盘的分区和格式化,那么格式化完了后,如何去用它呢?这就涉及到了挂载这块磁盘。格式化后的磁盘其实是一个块设备文件,类型为b,也许你会想,既然这个块文件就是那个分区,那么直接在那个文件中写数据不就写到了那个分区中么?当然不行。

在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据使,则都会写到该分区中。这就需要你注意一下,在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但是一旦挂载上了,那么该目录下以前的东西就不能看到了。只有卸载掉该分区后才能看到。

mount 挂载设备

先建立/test1 /test2 目录,然后在/test1目录下建立一个1.txt文件。

把/dev/hdb1分区挂载到/test1目录,然后再查看/test1目录发下,1.txt不存在了。此时往/test1目录下写数据,则会写到/dev/hdb1分区中。在讲mount的-a选项时,我们有必要先了解一下这个文件 /etc/fstab

这个文件是系统启动时,需要挂载的各个分区。第一列就是分区的label;第二列是挂载点;第三列是分区的格式;第四列则是mount的一些挂载参数,等下会详细介绍一下有哪些参数,一般情况下,直接写defaults即可;第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;第六列是开机时是否自检磁盘,就是刚才讲过的那个fsck检测。1,2都表示检测,0表示不检测,在Redhat中,这个1,2还有个说法,/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。1比2优先级高,所以先检测1,然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,1检测完了后会同时去检测2。下面该说说第四列中常用到的参数了。

async/sync :async表示和磁盘和内存不同步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;

auto/noauto :开机自动挂载/不自动挂载;

default:按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser,async ;

ro:按只读权限挂载;

rw:按可读可写权限挂载;

exec/noexec :允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了;

user/nouser :允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;

suid/nosuid :允许/不允许分区有suid属性,一般设置nosuid ;

usrquota :启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;

grquota :启动群组磁盘配额模式;

学完这个/etc/fstab后,我们就可以自己修改这个文件,增加一行来挂载新增分区。例如,笔者增加了这样一行

/dev/hdb1 /test1 ext3 defaults 0 0

那么系统再重启时就会挂载这个分区了。

讲完了/etc/fstab 我们继续回来讲这个mount,mout -a 如果运行了这个命令,则会把/etc/fstab中出现的所有磁盘分区挂载上。所以当你在/etc/fstab文件中增加一行后,你完全可以直接运行mount -a 来挂载你增加的那行,这样就不用重启啦。

你可以使用mount -o 选项来重新挂载一个分区,并同时指定你想要的选项(即上边介绍fstab第六列中那些)

看到了吧,使用了ro选项,则不能新建文件了。

再重新挂载一次就恢复正常了,如果不加任何其他选项,则就是defaults。

笔者在日常的运维工作中遇到过这样的情况,一台服务器上新装了亮块磁盘,磁盘a(在服务器上显示为sdc)和磁盘b(在服务器上显示为sdd),有一次把这两块磁盘都拔掉了,然后再重新插上,重启机器,结果磁盘编号调换了,a变成了sdd,b变成了sdc(这是因为把磁盘插错了插槽),问题来了。通过上边的学习,你挂载磁盘是通过/dev/hdb1 这样的分区名字来挂载的,如果先前加入到了/etc/fstab 中,结果系统启动后则会挂载错分区。那么怎么样避免这样的情况发生?

blkid 这个命令是用来显示磁盘分区uuid的,uuid其实就是一大串字符,在linux系统中每一个分区都会有唯一的一个uuid。说到这,聪明的你想到了吧,没有错,我们就用这唯一的uuid来挂载磁盘分区

这个命令笔者只是用来显示uuid,没有其他用途所以不做详细介绍,当然你也可以在命令后边跟某一个分区,只显示该分区的uuid。

看到了吧,其实是很好用的。那么怎么让它也开机启动?很简单,把刚才敲的mount 磁盘的命令直接写到 /etc/rc.d/rc.local 文件即可。对了,笔者到现在还没有给你讲过这个rc.local文件的作用。简单点说,系统启动完后会执行这个文件中的命令。所以只要你想开机后运行什么命令统统写入到这个文件下面吧。

其实这个文件就是一个shell 脚本,以后笔者会单独用一章来介绍它。行开头的”#”是注释的意思,代表这行在这个脚本中不生效。你想让系统开机后运行什么命令,就把什么命令写到这里面来。就比如刚才笔者挂载的那条命令。你可以这样实现:

mount 还有一个比较常用的选项就是-t ,后边指定文件系统的类型,比如挂载软盘时就需要指定 vfat,而挂载光盘时就需要指定iso9660,但在笔者多年来的经验,目前的系统都是智能识别所要挂载分区的系统格式类别的。也就是说,用不着你去指定,它会自动判断的。

umount 卸载设备

现在你学会了如何挂载一个设备,那么如何去卸载一个设备呢,这就要用到umount了,这个命令也简单的很,后边可以跟挂载点,也可以跟分区名(/dev/hdb1)

有时也许你会遇到比较难卸载的设备,就像在windows下无法删除U盘一样,教你一个特管用的方法就是 umount -l /dev/hdb1 ,这个-l选项有强制卸载的意思,你一定要记住哦,非常有用的。

建立一个swap文件

从装系统时就接触过这个swap了,前面也说过它类似与windows的虚拟内存,分区的时候一般大小为内存的2倍,如果你的内存超过4G,那么你分8G似乎是没有必要了。分4G足够日常交换了。然而,还会有虚拟内存不够用的情况发生。如果真遇到了,莫非还要重新分一下磁盘?当然不能!那我们就增加一个虚拟的磁盘出来。

基本的思路就是:建立swapfile 格式化为swap格式启用该虚拟磁盘

利用dd 来创建一个419M的文件/tmp/newdisk出来,其中if代表从哪个文件读,/dev/zero是linux下特有的一个0生成器,of表示输出到哪个文件,bs即块大小,count则定义有多少个块。

mkswap 这个命令是专门格式化swap格式的分区的,这个命令用的时候一定要看清楚了,否则把其他分区给格式化错了就只有哭了。

free 是用来查看系统内存以及虚拟内存使用情况的,-m选项是以M的形式查看。可以看到当前系统的。而swapon 是启用我们新建的swap文件,启用后再用free查看发现多了400M。

我们还可以用swapoff 关闭启用的swap文件。

磁盘配额

磁盘配合其实就是给每个用户分配一定的磁盘额度,只允许他使用这个额度范围内的磁盘空间。在linux系统中,是多用户多任务的环境,所以会有很多人共用一个磁盘的情况。针对每个用户去限定一定量的磁盘空间是有必要的,这样才显得公平。

在linux中,用来管理磁盘配额的东西就是quota了。如果你的linux上没有quota,则需要你安装这个软件包 quota-3.13-5.el5.RPM (其实版本是多少无所谓了,关键是这个软件包)。quota在实际应用中是针对整个分区进行限制的。如果你的/dev/hda3 是挂载在/home 目录下的,那么/home 所有目录都会受到限制。

quota 这个模块主要分为quota quotacheck quotaoff quotaon quotastats edquota setquota warnquota repquota这几个命令,下面就分别介绍这些命令。

quota 用来显示某个组或者某个使用者的限额。

语法:quota [-guvs] [user,group]

-g :显示某个组的限额

-u :显示某个用户的限额

-v :显示的意思

-s :选择inod或硬盘空间来显示

quotacheck 用来扫描某一个磁盘的quota空间。

语法:quotacheck [-auvg] /path

-a :扫描所有已经mount的具有quota支持的磁盘

-u :扫描某个使用者的文件以及目录

-g :扫描某个组的文件以及目录

-v :显示扫描过程

-m :强制进行扫描

edquota 用来编辑某个用户或者组的quota值。

语法:edquota [-u user] [-g group] [-t]

edquota -p user -u user

-u :编辑某个用户的quota

-g :编辑某个组的quota

-t :编辑宽限时间

-p :拷贝某个用户或组的quta到另一个用户或组

当运行edquota -u user 时,系统会打开一个文件,你会看到这个文件中有7列,它们分别代表的含义是:

Filesystem :磁盘分区,如/dev/hda3

blocks :当前用户在当前的Filesystem中所占用的磁盘容量,单位是Kb。该值请不要修改。

soft/hard :当前用户在该Filesystem内的quota值,soft指的是最低限额,可以超过这个值,但必须要在宽限时间内将磁盘容量降低到这个值以下。hard指的是最高限额,即不能超过这个值。当用户的磁盘使用量高于soft值时,系统会警告用户,提示其要在宽限时间内把使用空间降低到soft值之下。

inodes :目前使用掉的inode的状态,不用修改。

quotaon 启动quta,在编辑好quota后,需要启动才能是quta生效

语法:quotaon [-a] [-uvg directory]

-a :全部设定的quota启动

-u :启动某个用户的quota

-g :启动某个组的quota

-s :显示相关信息

quotaoff 关闭quota

该命令常用只有一种情况 quotaoff -a 关闭全部的quota

以上讲了很多quota的相关命令,那么接下来笔者教你如何在实践应用中去做这个磁盘配额。整个执行过程如下:

首先先确认一下,你的/home目录是不是单独的挂载在一个分区下,用df 查看即可。如果不是则需要你跟我一起做。否则这一步即可省略。

笔者的linux系统中,/home并没有单独占用一个分区。所以需要把/home目录挂载在一个单独的分区下,因为quota是针对分区来限额的。

笔者用fdisk -l 查看目前/dev/hdb 磁盘有5个可用分区,所以笔者打算把/dev/hdb1挂载在/home 目录下

看到了吧,目前笔者的/home目录已经是一个单独的分区了。

1)建立测试用户

首先建立一个test用户,则同时建立了一个test组。可以在/etc/passwd中有以test为开头的行,其中uid和gid都为500 ,然后又建立一个test1账号,使其加入test组,查看/etc/passwd文件发现test和test1用户的gid都为500。(也许你对/etc/passwd文件、增加一个用户以及uid和gid等概念不熟悉,没有关系,在以后的章节中会做介绍,在这里只需要你明白即可)

2)打开磁盘的quota功能

默认linux并没有对任何分区做quota的支持,所以需要我们手动打开磁盘的quota功能,你是否记得,在前面内容中分析/etc/fstab文件的第四列时讲过这个quota选项(usrquota, grpquota)。没错,要想打开这个磁盘的quota支持就是需要修改这个第四列的。用vim编辑/etc/fstab 加入一行,如下图:

vim命令将会在后续章节详细介绍,前面介绍过如何进入编辑模式以及如何保存文件。如果你的linux系统已经有/home这一行,那么直接修改第四列,加上usrquota,grpguota(中间没有空格)。接下来需要重新挂载/home。

另外你也可以这样实现重新挂载/home

如何查看是否启用了quota呢?

只要查看/etc/mtab文件中/home所在那行是否有usrguota,grpquota即可。笔者的/dev/hdb1现在已经支持了quota

3)扫描磁盘的使用者使用状况,并产生重要的aquota.group与aquota.user

这一步就需要用到quotacheck了,aquota.group与aqouta.user分别是组以及用户磁盘配额需要的配置文件。如果没有这两个文件,则磁盘配额是不会生效的。

当首次使用quotacheck命令时,会提示“cannot stat old user quota file ……”其实这是在提示你在/home目录下没有aquota.user以及aquota.group两个文件。没有关系,因为以前并没有配置过磁盘配额,当然没有这两个文件了。当执行完quotacheck命令后,会在/home目录下生成这两个文件的。

4)启动quota配额

5)编辑用户磁盘配额

先来设定test账户的配额,然后直接把test的配额拷贝给test1即可。这里就需要用到edquota了。

讲上面内容修改为

其中单位是Kb,所以soft 值大约为20Mb,hard值为30Mb,保存这个文件,保存的方式跟vim一个文件的方式一样的。

将test的配额复制给test1。下面继续设定宽限时间。

默认是7days 在这里我们改为1days。下面查看一下test以及test1用户的配额吧。

6)编辑组磁盘配额

设定组test的soft配额值为40M,hard值为50M。下面查看组test的配额。

7)设定开机启动

前面已经讲到启动磁盘配额的命令是quotaon -aug ,所以要想开机启动,只需将这条命令加入到 /etc/rc.d/rc.local文件即可。

linux的基本操作(磁盘管理)的更多相关文章

  1. Linux系统的磁盘管理

    Linux系统的磁盘管理有三个命令:df.du.fdisk. df:列出Linux中所有文件系统的整体磁盘使用量: du:对文件和目录所占用磁盘空间的查看: fdisk:用于磁盘分区时列出所有的磁盘. ...

  2. Linux文件系统与磁盘管理

    Linux文件系统与磁盘管理 有哪些文件系统: FAT:微软在Dos/Windows系列操作系统中共使用的一种文件系统的总称.       exFAT(Extended File Allocation ...

  3. linux基本命令之磁盘管理命令(ls,cd,pwd,mkdir,rmdir,clear, touch)

    linux磁盘管理命令 1.ls(list)命令:列出目录内容. 格式:ls [参数][文件或目录] ls -a或-all表示列出所有文件和目录,以点开始的是影藏文件,例如,.bash_history ...

  4. linux基础之磁盘管理与文件系统

    上面一篇文章(https://www.cnblogs.com/ckh2014/p/7224851.html)介绍了硬盘的基本结构,那么一块磁盘如何应用取存储数据呢? 它的步骤是这样的: 识别硬盘 -- ...

  5. Linux进阶之磁盘管理及LVM逻辑卷

    本节内容 磁盘管理 LVM 一.磁盘管理 1.硬盘接口 种类及其应用: IDE接口硬盘多用于家用产品,部分应用于服务器 SATA SCSI接口硬盘主要应用于服务器 SAS只在高端服务器上,价格昂贵 2 ...

  6. linux 操作系统之磁盘管理

    磁盘管理 存储设备:硬盘 , U盘 , 移动硬盘 , 光盘 , 软件. 组装一台电脑 无法被修改 df -h #查看磁盘分区的情况 , 可用的. 查看磁盘或者目录的内容 df “df” 常用的 “-i ...

  7. Linux浅谈磁盘管理及案例

    磁盘管理 MBR原理图 从该图可理解到为什么主分区只能是四个. 可以不分区,但为了统一管理,提高访问效率 设备不同,生成设备名称不同 管理分区命令: lsblk查看块设备 fdisk创建MBR分区 f ...

  8. linux 学习随笔-磁盘管理

    1:df 用于查看已挂载磁盘的容量信息 -i 查看inodes使用情况 -h 以合适的单位显示 -k -m 分别以k M单位显示 2:du 查看某个文件或者目录占用的空间 du [-abckmsh] ...

  9. Linux操作_磁盘管理_增加虚拟磁盘

    环境:虚拟机 VM 12,Linux版本号 CentOS 7.3 1,在当前的虚拟机选项卡点击鼠标右键,选择“设置” 2,在弹出的对话框中左侧选中“磁盘”->点击下方“添加”按钮,在弹出的“添加 ...

  10. Linux命令_磁盘管理_查看磁盘或目录的容量

    软件环境:虚拟机VM12,Linux版本 CentOS 7.3 命令 df (disk filesystem) 用于查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认以KB为单位显示 ...

随机推荐

  1. poi 升级至4.x 的问题总结(POI Excel 单元格内容类型判断并取值)

    POI Excel 单元格内容类型判断并取值 以前用 cell.getCachedFormulaResultType() 得到 type 升级到4后获取不到了 换为:cell.getCellType( ...

  2. nginx配置http访问自动跳转到https

    1.按照如下格式修改nginx.conf 配置文件,80端口会自动转给443端口,这样就强制使用SSL证书加密了.访问http的时候会自动跳转到https上面 server { listen ; se ...

  3. space.php

    天云信息技术有限公司 | 苏ICP备16033617号 1 0.275 ms SELECT * FROM uchome_session WHERE uid='1' Explain id select_ ...

  4. Window下使用Charles对手机的Https请求进行抓包

    https://blog.csdn.net/zhaoerduo/article/details/52128607

  5. html5使用canvas动态画医学设备毫秒级数据波形图

  6. C#模拟客户端发送数据示例

      在给一些客户端做服务器端支持时,发现他们提交上来的数据大都不是http请求格式,因而使用Request.Form获取不到内容,今天用C#做下模拟,并演示下数据接收. 1.发送文本 1).客户端发送 ...

  7. 20.1翻译系列:EF 6中自动数据迁移技术【EF 6 Code-First系列】

    原文链接:https://www.entityframeworktutorial.net/code-first/automated-migration-in-code-first.aspx EF 6 ...

  8. Git Flow 分支管理简述

    概述 Git 是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...

  9. SQL Server does not purge row versioning records even the transaction are committed if there are other open transaction running in the databases with read-committed snapshot enabled .

    This is a by-design behavior. There is only one allocation unit in tempdb that istracking the versio ...

  10. Delphi如何处理在进行大量循环时,导致的应用程序没有响应的情况

    一般用在比较费时的循环中,往往导致应用程序没有响应,此时在比较费时的程序体中加入Application.ProcessMessages即可解决,该语句的作用是检查并先处理消息队列中的其他消息. 例如, ...