oracle 扩容temp,查看临时表空间使用情况,如何扩展表空间   temp

SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",BLOCKS SUM_BLOCKS,

USED_SPACE "USED_SPACE(M)",ROUND(NVL(USED_SPACE,0)/SPACE*100,2) "USED_RATE(%)",

NVL(FREE_SPACE,0) "FREE_SPACE(M)"

FROM

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES)/(1024*1024),2) SPACE,SUM(BLOCKS) BLOCKS

FROM DBA_TEMP_FILES

GROUP BY TABLESPACE_NAME) D,

(SELECT TABLESPACE_NAME,ROUND(SUM(BYTES_USED)/(1024*1024),2) USED_SPACE,

ROUND(SUM(BYTES_FREE)/(1024*1024),2) FREE_SPACE

FROM V$TEMP_SPACE_HEADER

GROUP BY TABLESPACE_NAME) F

WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)

当通过ORACLE中的create table ... as select 语句创建一张新表时,新表的数据量为比较大,如10亿,这时SQL*Plus很可能就会提示“ORA-01653: ...”错误信息。这个错误信息暗示表空间大小不够,需要为表空间增加数据文件。

分析:

1. 查询表空间剩余字节大小SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024 AS "FREE SPACE(M)"

FROM DBA_FREE_SPACE

WHERE TABLESPACE_NAME = '&tablespace_name'

GROUP BY TABLESPACE_NAME;注:如果是临时表空间,请查询DBA_TEMP_FREE_SPACESELECT TABLESPACE_NAME, FREE_SPACE/1024/1024 AS "FREE SPACE(M)"

FROM DBA_TEMP_FREE_SPACE

WHERE TABLESPACE_NAME = '&tablespace_name';

2. 如果不知道表空间数据文件目录规划,可以先查询出表空间所有数据文件SELECT TABLESPACE_NAME, FILE_ID, FILE_NAME, BYTES/1024/1024 AS "BYTES(M)"

FROM DBA_DATA_FILES

WHERE TABLESPACE_NAME = '&tablespace_name';

注:如果是临时表空间,请查询DBA_TEMP_FILESSELECT TABLESPACE_NAME, FILE_ID, FILE_NAME, BYTES/1024/1024 AS "SPACE(M)"

FROM DBA_TEMP_FILES

WHERE TABLESPACE_NAME = '&tablespace_name';

3. 为空间不足的表空间增加数据文件

ALTER TABLESPACE &tablespace_name ADD DATAFILE '&datafile_name' SIZE 2G;

注:如果要为临时表空间扩容,使用下面的语句

ALTER TABLESPACE &tablespace_name ADD TEMPFILE '&datafile_name' SIZE 2G;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
扩容Oracle数据库的临时表空间,可以按照以下步骤进行操作: 1. 查看当前临时表空间使用情况 可以执行以下SQL语句查看当前临时表空间使用情况: ``` SELECT tablespace_name, sum(bytes_used) / 1024 / 1024 AS used_mb, sum(bytes_free) / 1024 / 1024 AS free_mb, sum(bytes_total) / 1024 / 1024 AS total_mb FROM v$temp_space_header GROUP BY tablespace_name; ``` 2. 确认需要扩容临时表空间 根据上一步的查询结果,确认需要扩容临时表空间名称。 3. 创建新的数据文件 执行以下SQL语句在需要扩容临时表空间中创建新的数据文件: ``` ALTER TABLESPACE temp ADD TEMPFILE '/path/to/new/tempfile.dbf' SIZE 1024M; ``` 其中,`/path/to/new/tempfile.dbf`为新数据文件的路径和文件名,`1024M`为新数据文件的大小,可以根据需要进行修改。 4. 查看数据文件状态 执行以下SQL语句查看新数据文件的状态: ``` SELECT file_name, tablespace_name, bytes / 1024 / 1024 AS size_mb, status FROM dba_temp_files WHERE tablespace_name = 'TEMP'; ``` 确认新数据文件状态为`AVAILABLE`。 5. 删除旧的数据文件 执行以下SQL语句删除旧的数据文件: ``` ALTER TABLESPACE temp DROP TEMPFILE '/path/to/old/tempfile.dbf'; ``` 其中,`/path/to/old/tempfile.dbf`为旧数据文件的路径和文件名,需要根据实际情况进行修改。 6. 查看临时表空间使用情况 执行第一步的SQL语句,确认临时表空间使用情况已经扩容。 注意:在进行上述操作前,建议备份数据库以防止意外情况发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值