資料庫錯誤
Q: 錯誤訊息如下
2007-07-31 08:27:37 - Error running query: ORA-01653: unable to extend table BB_BB60.ACTIVITY_ACCUMULATOR by 16 in tablespace BB_BB60_DATA
ORA-06512: at "BB_BB60.ACTIVITY_ACCUMULATOR_CR", line 53 ORA-06512: at line 1 - blackboard.persist.PersistenceException: Error running query: ORA-01653: unable to extend table BB_BB60.ACTIVITY_ACCUMULATOR by 16 in tablespace BB_BB60_DATA ORA-06512: at "BB_BB60.ACTIVITY_ACCUMULATOR_CR", line 53 ORA-06512: at line 1
at blackboard.persist.BbPersistenceManager.runDbQuery(BbPersistenceManager.java:543) at blackboard.platform.tracking.TrackingManagerTask.run(TrackingManagerTask.java:136) at blackboard.platform.impl.services.task.TaskManagerService$TimerTaskProxy.run(TaskManagerService.java:312) at java.util.TimerThread.mainLoop(Timer.java:512) at java.util.TimerThread.run(Timer.java:462) Root Cause: java.sql.SQLException: ORA-01653: unable to extend table BB_BB60.ACTIVITY_ACCUMULATOR by 16 in tablespace BB_BB60_DATA ORA-06512: at "BB_BB60.ACTIVITY_ACCUMULATOR_CR", line 53 ORA-06512: at line 1
A: 是因為 Oracle 的 bb_bb60_data_file 已經到達 2G 了,需要新增加一個 Data file ,處理的方式如下:
set linesize 120
SQL> SELECT tablespace_name, ROUND(SUM(total_mb)-SUM(free_mb)) CUR_USE_MB, ROUND(SUM(total_mb)) CUR_SZ_MB,
ROUND((SUM(total_mb)-SUM(free_mb))/SUM(total_mb)*100) CUR_PCT_FULL, ROUND(SUM(max_mb) - (SUM(total_mb)-SUM(free_mb))) FREE_SPACE_MB,
ROUND(SUM(max_mb)) MAX_SZ_MB, ROUND((SUM(total_mb)-SUM(free_mb))/SUM(max_mb)*100) PCT_FULL
FROM (
SELECT tablespace_name, SUM(bytes)/1024/1024 FREE_MB,
0 TOTAL_MB, 0 MAX_MB
FROM dba_free_space
GROUP BY tablespace_name
UNION
SELECT tablespace_name, 0 CURRENT_MB,
SUM(bytes)/1024/1024 TOTAL_MB,
SUM(DECODE(maxbytes,0,bytes, maxbytes))/1024/1024 MAX_MB
FROM dba_data_files
GROUP BY tablespace_name)
GROUP BY tablespace_name;
TABLESPACE_NAME CUR_USE_MB CUR_SZ_MB CUR_PCT_FULL FREE_SPACE_MB MAX_SZ_MB PCT_FULL
---------- ---------- ------------ ------------- ---------- ----------
SYSTEM 499 500 100 32269 32768 2 USERS 0 5 9 32768 32768 0 BB_BB60_INDX 1702 1702 100 298 2000 85 BB_BB60_DATA 2000 2000 100 0 2000 100 BBADMIN_INDX 2 20 11 1998 2000 0 BB_BB60_STATS_INDX 865 865 100 1135 2000 43 SYSAUX 398 420 95 32370 32768 1 BBADMIN_DATA 2 50 4 1998 2000 0 BB_BB60_STATS_DATA 637 637 100 1363 2000 32 UNDOTBS1 489 3855 13 32279 32768 1
SQL> SELECT file_name, tablespace_name, ROUND(bytes/1045876) MB FROM dba_data_files ORDER BY file_name;
FILE_NAME TABLESPACE_NAME MB
-------------------- ----------
/export/home/oracle/oradata/bb71/bb_bb60_data_file1.dbf BB_BB60_DATA 2005 /export/home/oracle/oradata/bb71/bb_bb60_indx_file1.dbf BB_BB60_INDX 1707 /export/home/oracle/oradata/bb71/bb_bb60_stats_data_file1.dbf BB_BB60_STATS_DATA 639 /export/home/oracle/oradata/bb71/bb_bb60_stats_indx_file1.dbf BB_BB60_STATS_INDX 867 /export/home/oracle/oradata/bb71/bbadmin_data_file1.dbf BBADMIN_DATA 50 /export/home/oracle/oradata/bb71/bbadmin_indx_file1.dbf BBADMIN_INDX 20 /export/home/oracle/oradata/bb71/sysaux01.dbf SYSAUX 421 /export/home/oracle/oradata/bb71/system01.dbf SYSTEM 501 /export/home/oracle/oradata/bb71/undotbs01.dbf UNDOTBS1 3865 /export/home/oracle/oradata/bb71/users01.dbf USERS 5
SQL> alter tablespace bb_bb60_data add datafile '/export/home/oracle/oradata/bb71/bb_bb60_data_file2.dbf' size 2000M;