重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
oracle rc的磁盘管理有如下方式:
平度网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。成都创新互联成立于2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
一、裸设备+HACMP
裸设备指的是raw格式的设备,就是说没有被文件系统格式化过的
通常是把 存储划分成pv,再用pv创建vg,在将vg划分成lv,然后将lv格式化成文件系统jfs jfs2两种
aix下基于逻辑卷的管理没有办法实现并发。所以需要使用hacmp将vg做成并发的vg enhanced concurrent vg
二、asm管理
将磁盘直接给asm 但是依赖于crs集群软件
三、并发文件系统
如果是system表空间的话,基本上没有办法变小了。(按照你的说法,就是释放磁盘空间)
就算你删除了表,但是数据文件(就是物理存在于磁盘上的文件)是不会变小的。而且system表空间非常变态,里面存有所有的基表,所以resize不要想了。而且转移表空间神马的,用在其他表空间还可以,system也不可能,如果你真的把所有的表(这个表是指你建立的表)都删除了,那么就干脆重新建库吧,把原来的库删了,这样就可以了。
反正据我所知,如果是system表空间的话(system表空间数据文件所占空间大小),不重新建库是只能变大不能变小的。
如果是其他表空间的话,复制表空间,然后删除什么的可以考虑。
最后给你一个建议啊,你的存储应该是自动扩展的吧,那每个文件最大值最好不要太大,oracle这个东西是有多少占多少,然后再说其他,如果你给的太多,那么他就会一直占用新的。
其实没有特别的规定,你可以参考这个
/boot ext3 100MB
/ ext3 30GB
/u01 ext3 400GB
swap swap 一般是物理内存的2倍
其中/u01用来作为Oracle的目录,主要把空间给它了。引导分区/boot只放引导文件,100M足够了。
数据文件是不会因为你删掉了某些数据而改变其物理大小的,可以这样做:
1.先查询你的表空间存储情况,使用了多少空间,还剩多少空间:
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 1
2.然后看哪个数据文件占的空间较大,并且使用得却不多:
假设用得多的是叫 Tools.DBF ,一共用了20G,里面只使用了20%,还剩余80%的空间(16G)
执行以下语句改变数据文件大小:
alter database datafile 'D:\oracle\oradata\Tools.dbf' resize 6144M;
将数据文件改成6G,就可以节省14G的空间
3.如果使用率已经达到或者接近90%,可以将这个用户的相关数据全部删除,然后用imp exp导出全库,删除这个数据文件并新建,然后将数据导入新的表空间。
清除数据库垃圾:把历史数据导出备份,然后清除。
转移数据:增加磁盘或数据空间,把大数据表移到新的表空间里面。
如果空间不够,Oracle会拒绝所有数据连接,所有读写操作。