【Oracle】ORA-01653的应对处置--增加数据文件

今天在创建一张大表时遭遇到了如下错误:

ORA-01653: 表 LUNA.EMP615_30 无法通过 1024 (在表空间 USERS 中) 扩展

 

通关查询资料并测试,发现如下三步骤可以应对此错误:

1.查看ORacle表空间

SQL:

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

执行情况:

SQL> SELECT UPPER(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;

表空间名                       表空间大小(M) 已使用空间(M) 使用比   空闲空间(M)
------------------------------ ------------- ------------- -------- -----------
 最大块(M)
----------
SYSAUX                                   660        595.44   90.22%       64.56
        34

UNDOTBS1                                3185         37.25    1.17%     3147.75
      2678

USERS                               32761.25      32759.69  100.00%        1.56
      1.25


表空间名                       表空间大小(M) 已使用空间(M) 使用比   空闲空间(M)
------------------------------ ------------- ------------- -------- -----------
 最大块(M)
----------
SYSTEM                                   710        705.81   99.41%        4.19
         4

EXAMPLE                                  100         78.75   78.75%       21.25
     18.81

 

2.查看“USERS”表空间所使用数据文件

SQL:

select file_name,tablespace_name,bytes/1024/1024,maxbytes/1024/1024 from dba_data_files where tablespace_name='USERS';

反馈:

SQL> select file_name,tablespace_name,bytes/1024/1024,maxbytes/1024/1024 from dba_data_files where tablespace_name='USERS';

FILE_NAME
--------------------------------------------------------------------------------
TABLESPACE_NAME                BYTES/1024/1024 MAXBYTES/1024/1024
------------------------------ --------------- ------------------
C:\APP\UFO\ORADATA\ORCL\USERS01.DBF
USERS                                 32761.25         32767.9844

 

3.增加数据文件

SQL:

ALTER TABLESPACE USERS ADD DATAFILE 'C:\app\ufo\oradata\orcl\users001.dbf' size 30G autoextend on ;

反馈:

SQL> ALTER TABLESPACE USERS ADD DATAFILE 'C:\app\ufo\oradata\orcl\users001.dbf' size 30G autoextend on ;

表空间已更改。

增加数据文件到此结束。

 

【创建大表前后的表空间对比】

创建千万级大表前:

表空间名                       表空间大小(M) 已使用空间(M) 使用比   空闲空间(M)
------------------------------ ------------- ------------- -------- -----------
 最大块(M)
----------
SYSAUX                                   660        596.06   90.31%       63.94
        34

UNDOTBS1                                3185         37.31    1.17%     3147.69
      2699

USERS                               63481.25      39817.87   62.72%    23663.38
      3968


表空间名                       表空间大小(M) 已使用空间(M) 使用比   空闲空间(M)
------------------------------ ------------- ------------- -------- -----------
 最大块(M)
----------
SYSTEM                                 31430        706.81    2.25%    30723.19
      3968

EXAMPLE                                  100         78.75   78.75%       21.25

之后:

表空间名                       表空间大小(M) 已使用空间(M) 使用比   空闲空间(M)
------------------------------ ------------- ------------- -------- -----------
 最大块(M)
----------
SYSAUX                                   660         596.5   90.38%        63.5
        34

UNDOTBS1                                3185        499.25   15.68%     2685.75
      2495

USERS                               63481.25      48486.87   76.38%    14994.38
      3968


表空间名                       表空间大小(M) 已使用空间(M) 使用比   空闲空间(M)
------------------------------ ------------- ------------- -------- -----------
 最大块(M)
----------
SYSTEM                                 31430        706.81    2.25%    30723.19
      3968

EXAMPLE                                  100         78.75   78.75%       21.25

从62%到76%,可见此表所占份额。

 

【参考资料】

https://blog.csdn.net/zcb_data/article/details/80999641

 

END

posted @ 2022-06-15 06:38  逆火狂飙  阅读(516)  评论(0编辑  收藏  举报
生当作人杰 死亦为鬼雄 至今思项羽 不肯过江东