²âÊÔ»·¾³´ÅÅ̿ռ䲻×㣬ËùÒÔdropһЩÎÞÓõĴó±í£¬µ«ÊÇ·¢ÏÖ¿Õ¼äûÓб仯£¬df -h»¹ÊÇûÓÐÊͷųö´ÅÅ̿ռäÀ´¡£
SQL> set line 200
SQL> set pagesize 200
SQL> col name format A150
1£¬²é¿´±í¿Õ¼äʹÓÃÇé¿ö
SQL> SELECTUPPER(F.TABLESPACE_NAME) "±í¿Õ¼äÃû",
2 ¡¡¡¡D.TOT_GROOTTE_MB "±í¿Õ¼ä´óС(M)",
3 ¡¡¡¡D.TOT_GROOTTE_MB - F.TOTAL_BYTES "ÒÑʹÓÿռä(M)",
4 ¡¡¡¡TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) /D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "ʹÓñÈ",
5 ¡¡¡¡F.TOTAL_BYTES "¿ÕÏпռä(M)",
6 ¡¡¡¡F.MAX_BYTES "×î´ó¿é(M)"
7 ¡¡¡¡FROM (SELECT TABLESPACE_NAME,
8 ¡¡¡¡ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
9 ¡¡¡¡ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
10 ¡¡¡¡FROM SYS.DBA_FREE_SPACE
11 ¡¡¡¡GROUP BY TABLESPACE_NAME) F,
12 ¡¡¡¡(SELECT DD.TABLESPACE_NAME,
13 ¡¡¡¡ ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
14 ¡¡¡¡FROM SYS.DBA_DATA_FILES DD
15 ¡¡¡¡GROUP BY DD.TABLESPACE_NAME) D
16 ¡¡¡¡WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
17 ¡¡¡¡ORDER BY 1;
±í¿Õ¼äÃû ±í¿Õ¼ä´óС(M) ÒÑʹÓÿռä(M) ʹÓÃ±È ¿ÕÏпռä(M) ×î´ó¿é(M)
------------------------------------------- ------------- -------- ----------- ----------
HELP 500 5.19 1.04% 494.81 494.81
ORCTSTU 32406.63 15545.69 47.97% 16860.94 72
SYSAUX 900 689.94 76.66% 210.06 204.94
SYSTEM 1110 1005.31 90.57% 104.69 95.44
UAAP 500 143.37 28.67% 356.63 290.38
UNDOTBS1 6485 331.25 5.11% 6153.75 3534
USERS 461.25 394.44 85.52% 66.81 22.19
10 rows selected
SQL>
¿´µ½ORCTSTU±í¿Õ¼äֻʹÓÃÁË49%£¬Ê¹ÓÃÁË15G¿Õ¼ä£¬¶øORCTSTU±í¿Õ¼äÕ¼¾ÝµÄ×Ü´ÅÅ̿ռäΪ32G£¬ËùÒÔÎÒÃÇ¿ÉÒÔÊÕËõORCTSTUµ½16G×óÓÒ£¬ÕâÑù¾ÍÊͷųöÁ˽«½ü16GµÄ¿Õ¼äÁË¡£
È¥²é¿´Ï´˱í¿Õ¼äËùÔÚµÄÊý¾ÝÎļþ£¬ÈçÏÂËùʾ£º
SQL> SELECT file_id,file_name FROM DBA_DATA_FILES D WHERED.TABLESPACE_NAME = 'ORCTSTU';
FILE_ID FILE_NAME
------------------------------------------------------------------------------------------
5D:\ORACLE\ORASERVER\ORADATA\ORCTSTUEX\POWERDES\ORCTSTU01.DBF
SQL>
2£¬resizeÊÕËõ±¨´í£º
×¼±¸ÊÕËõµ½18G£¬Ö´ÐÐÈçϱ¨´í
SQL> alter database datafile'/home/oradata/powerdes/orctstu01.dbf' resize 1800M;
alter database datafile'/home/oradata/powerdes/orctstu01.dbf' resize 1800M
*
ERROR at line 1:
ORA-03297: file contains used data beyondrequested RESIZE value
SQL>
²Î¿¼ÃüÁ
select file_id,max(block_id+blocks-1)HWM,block_id
from dba_extents
where file_id=5
group by file_id,block_id;
3£¬È¥·ÖÎöÇé¿öÕâ¸öÊý¾ÝÎļþ
¿ÉÒÔ¿´µ½»ù±¾Ã»ÓÐÈκθı䣬µ«ÊǸù¾ÝÎÒµÄÖ±¹Û¸Ð¾õ£¬È·ÊµÃ»ÓжàÉÙ±íÁË£¬¿Õ¼äҲȷʵ¶¼ÌÚ³öÀ´ÁË¡£¿ÉÒÔ¼òµ¥µÄÑéÖ¤Ò»ÏÂ,Êý¾ÝÎļþÊÇ5ºÅ£¬Ê¹ÓÃdba_extents¿ÉÒÔ¿´µ½Õ¼ÓõĿռäÇé¿öºÍ¶ÔÓ¦µÄ¿éµÄÇé¿ö¡£
select file_id,max(block_id+blocks-1)HWM,block_id
from dba_extents
where file_id=5
group by file_id,block_id;
?
6519 5 4194047 4193920
3469 5 4187263 4186368
8137 5 4186367 4186240
3919 5 4186239 4186112
3033 5 4186111 4185984
9526 5 4185983 4185856
9113 5 4185855 4184832
9669 5 4184775 4184768
1166 5 4184767 4184760
2304 5 4184743 4184736
7215 5 4184735 4184728
4933 5 4184727 4184720
......
ͨ¹ý¶Ô±ÈHWMºÍblock_idµÄÖµ£¬¿´µ½Óкܶ඼ÊǿռäÕ¼Óòî±ð±È½Ï´óµÄ¡£
4£¬²é¿´ÒÔÏÂÊý¾ÝÎļþµÄ×î´óµÄblock_idÖµ
ÎÒÃÇÀ´ÔÚÕâ¸ö»ù´¡ÉÏ×öÒ»¸ö¼òµ¥µÄ·ÖÎö¡£Ê×Ïȵõ½5ºÅÊý¾ÝÎļþÖУ¬¿éºÅ×î´óµÄÊý¾Ý¿éblock_id¡£
?
SQL> SELECT MAX(block_id) FROMdba_extents WHERE tablespace_name = 'ORCTSTU';
MAX(BLOCK_ID)
-------------
4193920
SQL>
ֵΪ£º 4193920
Ôٲ鿴ÏÂÒ»¸öblockµÄÈÝÁ¿´óС
SQL> show parameter db_block_size;
NAME TYPE VALUE
----------------------------------------------- ------------------------------
db_block_size integer 8192
SQL>
5£¬¸ù¾ÝÕâ¸öÖµ²é¿´¶ÔÓÚµÄÊý¾ÝÎļþËùÕ¼¾ÝµÄ´ÅÅ̿ռä´óС
SELECT 4193920*8192/1024/1024 FROM dual;
SQL> SELECT 4193920*8192/1024/1024/1024FROM dual;
4193920*8192/1024/1024/1024
---------------------------
31.9970703
SQL>
¼ÆËã³öÀ´´ó¸ÅÊÇ32G×óÓÒ£¬ÔÙÈ¥´ÅÅÌ¿´Êµ¼ÊµÄÊý¾ÝÎļþ´óС
[oracle@edustu4 ~]$ ll -h/