Oracle:Ora-01652无法通过128(在temp表空间中)扩展temp段的过程-解决步骤
现象:查询select * from v$sql时提示“Ora-01652无法通过128(在temp表空间中)扩展temp段的过程”
临时文件是不存储的,可以将数据库重启,重启后重建临时表空间;
shutdown immediate;--关库 startup;--启库 alter pluggable database db_** open;--打开 alter session set container=db_**;--切到目的数据库 select * from v$tempfile;--查看临时文件状态
或者手动创建临时文件。下面是手动创建临时文件的步骤:
解决步骤
1、查询当前临时表空间的信息
select * from dba_temp_files FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS SHARED INST_ID --------- ------- --------------- ------ ------ ------- ------------ -------------- -------- --------- ------------ ---------- ----------- ------ ------- (null) 3 TEMP (null) (null) OFFLINE (null) (null) (null) (null) (null) (null) (null) SHARED (null)
发现数据库并没有临时表空间
2、查询库中的临时文件状态
select name,status from v$tempfile; NAME STATUS -------------------------------------------------------------------------------------------- ------- /oradata/cdbtest/CDB_TEST/91C8CF1A0C80626CE0535465A8C0455F/datafile/o1_mf_temp_gq1852yy_.dbf OFFLINE
临时文件处于OFFLINE状态
3、给临时表空间增加临时文件
alter tablespace temp add tempfile '/oradata/cdbtest/CDB_TEST/temp/datafile/temp_clear_01.dbf' size 1024M
此时需注意,数据库中需要存在目录“/oradata/cdbtest/CDB_TEST/temp/datafile/”,临时文件添加成功
至于为什么在“/oradata/cdbtest"目录下,是通过show parameter db_create_file_dest参数,查看value值获得的。
“CDB_TEST/temp/datafile”目录要提前准备好
4、再次验证临时文件状态
select name,status from v$tempfile; NAME STATUS -------------------------------------------------------------------------------------------- ------- /oradata/cdbtest/CDB_TEST/91C8CF1A0C80626CE0535465A8C0455F/datafile/o1_mf_temp_gq1852yy_.dbf OFFLINE /oradata/cdbtest/CDB_TEST/91C8CF1A0C80626CE0535465A8C0455F/datafile/o1_mf_temp_gq1852yy_.dbf ONLINE
同时查询“select * from v$sql”能获得相应的结果集
https://www.cnblogs.com/handhead/
莫问收获,但问耕耘