在实际生产环境中,我们常常会遇到表空间不足的问题,针对此类问题,只要我们的磁盘空间充足,我们可以通过更改数据文件大小、添加新的数据文件等方式来解决;
管理数据文件的操作需要 DM服务器处于打开状态下;
2.1 添加数据文件
在达梦数据库中,一个表空间可以对应磁盘上的多个数据文件。因此,当表空间的空间被用完的时候,我们可以通过在表空间中增加数据文件的形式,来扩大当前表空间的大小。
1.字符界面
在用户表空间中添加数据文件。添加的数据文件大小最小为 4096页大小,如页大小为 8K,则可添加的文件最小值为 40968k=32M。比如在 bookshop 表空间中添加大小为 64M的数据文件。
ALTER TABLESPACE bookshop ADD DATAFILE "d:ook.dbf" SIZE 64;
一个表空间中,数据文件和镜像文件一起不能超过 256个。例如,如果创建表空间的时候已经指定了 1个数据文件,那么添加数据文件的时候,最多只能添加 255个了。
2.图形界面
当然,我们也可以通过图形界面管理工具进行操作,打开管理工具,右键点击表空间名称,点击修改,在右侧窗口点击添加,然后设定新文件的路径信息,初始大小,是否自动扩展等信息,点击确定即可完成新数据文件的添加;
2.2 扩展数据文件大小
与添加数据文件相同,数据文件大小的扩展也可以通过两种方式:
1.字符界面
扩展用户表空间中已存在的数据文件的大小。比如扩展 bookshop表空间中数据文件 book.dbf大小至 128M。
ALTER TABLESPACE bookshop RESIZE DATAFILE "d:ook.dbf" TO 128;
2.图形界面
打开管理工具,右键点击表空间名称,点击修改,双击文件大小处,即可修改增大数据文件的大小(单位是 M)。
2.3 数据文件自动扩展
通过修改数据文件大小固然可以解决问题,但是如果每次都由我们手动来修改大小,第一会降低工作效率,第二是我们并不知道每次应该把文件大小设置为多少才较为合适。为了应对这种情况,达梦数据库内提供了数据文件自动扩展的机制。当表空间的使用接近上限时,数据文件的大小会自动扩展,从而应对空间不足的情况。
具体操作如下:
1.字符界面
1 创建表空间时可指定文件的扩展属性。如创建表空间时指定数据文件的扩展属性为可自动扩展,每次扩展大小为 10M,最大可扩展到 100M:
CREATE TABLESPACE bookshop DATAFILE "d:ook.dbf" SIZE 32 AUTOEXTEND ON NEXT 10 MAXSIZE 100;
1.2 在表空间中添加文件时可指定文件的扩展属性。如添加数据文件时指定扩展属性为不可自动扩展:
ALTER TABLESPACE bookshop ADD DATAFILE "d:ook.dbf" SIZE 1024 AUTOEXTEND OFF;
1.3 可修改表空间中已存在的数据文件的扩展属性。如修改数据文件的扩展属性为可自动扩展:
ALTER TABLESPACE bookshop DATAFILE "d:ook.dbf" AUTOEXTEND ON;
2.图形界面
打开管理工具,右键点击表空间名称,点击修改,然后在弹出的选项框内,修改自动扩充的设定,把自动扩充变成打开即可。需要注意后面两个选项卡扩充尺寸和扩充上限,分别对应的是每次数据文件扩展的大小,以及该数据文件扩展的上限,0 的话则代表无上限。
说明:
OFF 表示文件不可扩展,ON 表示文件可扩展。文件扩展大小表示当需要扩展文件时,文件一次增大的空间大小,取值范围是 0—2048,单位是 M。文件限制大小表示文件可扩展的最大空间大小,为 0 或者 UNLIMITED 表示无限制,单位是 M。缺省情况下,文件扩展大小是 1M,文件的最大大小是无限制的。
2.4 修改数据文件的路径
如果出现表空间满了,而其它文件系统空间充足,那也可以通过数据文件的迁移来释放空间压力,具体的操作参见另一篇博客《Linux平台达梦数据库V7之数据文件的移动》。