oracle10g数据库如何扩充表空间

oracle10g数据库如何扩充表空间,第1张

oracle10g数据库扩充表空间是通过增加数据文件的大小来实现的。

如果发现某个表空间存储空间不足时,可以为表空间添加新的数据文件,扩展表空间大小。但是一般建议预先估计表空间所需的存储空间大小,然后为它建立若干适当大小的数据文件。

以下是扩大TBS_TR_IND这个表空间的sql命令:

ALTER TABLESPACE TBS_TR_IND

ADD DATAFILE '/oradata/rTBS_TR_IND_002.dbf' --给rTBS_TR_IND_002.dbf这个数据文件增加32G空间

SIZE 32G

AUTOEXTEND OFF

SQL>ALTER TABLESPACE TBS_EDS_DAT

ADD DATAFILE 'G:\datafile\TBS_EDS_DAT01.DBF' --给TBS_EDS_DAT01.DBF增加100M空间

SIZE 100M

根据表空间的类型不同,扩容方法不同。DB2一般分SMS和DMS两种类型表空间,一个是系统管理表空间,一个是数据库管理表空间。

1、SMS表空间的container是文件系统目录或文件,一般container是自动扩展的,这种情况下你需要扩容文件系统。

查看表空间类型和container

$db2 list tablespaces show detail

$db2 list tablespace containers for <tablespaceid>

2、DMS表空间也有自动扩展类型和使用裸设备的情况(container是文件或裸设备),如果是自动扩展则扩容文件系统。非自动扩展的扩容方式是增加container。

DMS+文件

$db2 connect to <dbname>

$db2 "alter tablespace <tablespaceName> begin new stripe set (file '<filePath>/<fileName>' 655360)"

DMS+裸设备

$db2 connect to <dbname>

$db2 "alter tablespace <tablespaceName> begin new stripe set (device '/dev/rLR_XXXXXX' 671088640)"

语句中使用了begin new stripe set,表示新的数据直接写到新的container上,不进行数据reblance。否则替换为add,表示在container间进行数据reblance(会在后台执行,可用list utilities查看进度)

括号中的数字表示container的page个数(表空间pagesize×这个数字即是container的大小)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9945741.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存