|
x Max Used Max Sort Free
Name Name Users Segment Size Used Bytes Used Hits Size Size Size Requests
-------------- -------- ------- ---------------- ---------------- ---- -------- ---------------- ---------------- ---------------- --------
TEMP SYS.0.0 0 29,570,891,776 0 0 17,230 29,570,891,776 29,570,891,776 29,569,843,200 0
GOEX_TEMP SYS.0.0 12 24,135,073,792 12,582,912 0 214,932 24,135,073,792 4,908,384,256 2,960,130,048 0
************** ------- ---------------- ---------------- -------- ---------------- ---------------- ---------------- --------
sum 12 53,705,965,568 12,582,912 232,162 53,705,965,568 34,479,276,032 32,529,973,248 0
--从上面的查询中可知,当前实例的temp临时表空间曾耗用量达到29,570,891,776,等于Total Temp Segment Size
--当前我们使用sys帐户来rebulid index,sys帐户使用的是默认的临时表空间temp。
SQL> @temp_sort_users.sql -->这个查询是查询当前哪些session正在使用临时段,其结果与上面的一致为12,582,912
Tablespace Name Username SID Serial# Contents Segment Type Extents Blocks Bytes
--------------- --------------- ------ --------- --------- ------------ -------- -------- ------------
GOEX_TEMP GOEX_WEBUSER 1079 39023 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1078 22320 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1075 15301 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1056 22505 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1046 17617 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1042 30925 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1041 10180 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1038 20315 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1034 19147 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1028 6362 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1027 12614 TEMPORARY LOB_DATA 1 128 1,048,576
GOEX_WEBUSER 1022 23077 TEMPORARY LOB_DATA 1 128 1,048,576
*************** -------- -------- ------------
sum 12 1,536 12,582,912
--那我们来看看GX_ARCHIVE_IDX表空间上索引的情形
SQL> SELECT *
2 FROM ( SELECT segment_name, bytes / 1024 / 1024 / 1024 AS size_g, extents
3 FROM dba_segments
4 WHERE tablespace_name = 'GX_ARCHIVE_IDX'
5 ORDER BY 2 DESC) t
6 WHERE ROWNUM < 3;
SEGMENT_NAME SIZE_G Extents
----------------------------------------------------------------- ---------- --------
PK_ACC_POS_STOCK_ARCH_TBL 25.9765625 540
PK_ACC_POS_CASH_PL_ARCH_TBL 3.97167969 177
--上面的这个查询尽然有一个接近26GB的大索引,问题应该是由于这个大索引引起的。至于这个这么大的索引是另外一个话题,不再次描述。
--根据当前的临时表空间的情形来看应该是够的。
--查看前面描述的 临时段被使用的情形2 CREATE INDEX部分在INDEX tablespace上也会有temp segment
--所以alert日志报告无法在GX_ARCHIVE_IDX 上extend temp segment
SQL> @tbs_free_single.sql
Enter value for input_tablespace_name: GX_ARCHIVE_IDX
old 22: AND T.TABLESPACE_NAME=upper('&input_tablespace_name')
new 22: AND T.TABLESPACE_NAME=upper('GX_ARCHIVE_IDX')
TABLESPACE_NAME USED_MB FREE_MB TOTAL_MB PER_FR
------------------------------ -------- -------- -------- ------
GX_ARCHIVE_IDX 45,912 19,037 64,949 29 %
SQL> @tbs_free_by_file_id.sql
Enter value for input_tbsname: GX_ARCHIVE_IDX
old 26: AND t.tablespace_name = UPPER ('&input_tbsname')
new 26: AND t.tablespace_name = UPPER ('GX_ARCHIVE_IDX')
TABLESPACE_NAME FILE_ID USED_MB FREE_MB TOTAL_MB PER_FR
------------------------------ ---------- -------- -------- -------- ------
GX_ARCHIVE_IDX 25 29,328 2,916 32,244 9 %
GX_ARCHIVE_IDX 40 16,584 16,121 32,705 49 %
SQL> select file_id,file_name,autoextensible from dba_data_files where file_id in(25,40);
FILE_ID FILE_NAME AUT
---------- ------------------------------------------------------------ ---
25 /u02/database/CABO3/oradata/CABO3_archive_idx.dbf NO
40 /u02/database/CABO3/oradata/CABO3_archive_idx2.dbf YES
--根据1267351.1的solution,我们为GX_ARCHIVE_IDX表空间添加一个新的数据文件
SQL> alter tablespace GX_ARCHIVE_IDX add datafile '/u02/database/CABO3/orada |