问题:
当我们对 Oralce 数据库进行操作的时候,出现了:
1
|
ORA-25153: Temporary Tablespace is Empty |
的错误,提示 temporary 表空间为空。
思路:
- 当前用户没有设置表空间权限
- 表空间状态为 offline
- 当前用户没有指定表空间文件
解决:
1. 查看当前用户
1
2
3
|
SQL> show user;
USER is "SYS"
|
2. 查看当前用户是否已经设置了表空间权限
1
2
3
4
5
|
SQL> select username,temporary_tablespace from dba_users where username='sys';
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYS TEMP
|
假如为空,我们需要增加权限:
1
|
SQL> alter user sys temporary tablespace temp;
|
3. 查看表空间状态
1
2
3
4
5
|
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name='temp';
TABLESPACE STATUS
---------- ---------
TEMP ONLINE
|
假如为 OFFLINE,我们需要改为 ONLINE:
1
|
SQL> alter tablespace temp online;
|
4. 查看当前用户是否指定表空间文件
1
2
3
4
5
|
SQL> select tablespace_name, file_name from dba_temp_files;
TABLESPACE FILE_NAME
---------- --------------------------------------------------
TEMP /opt/oracle/oradata/orcl/temp01.dbf
|
假如为空,我们需要先查看文件是否存在(windows 下为安装目录下的 oradata/orcl/temp01.dbf):
1
2
3
|
ls /opt/oracle/oradata/orcl/temp01.dbf
/opt/oracle/oradata/orcl/temp01.dbf
|
在增加表空间文件:
1
|
SQL> alter tablespace temp add tempfile '/opt/oracle/oradata/orcl/temp01.dbf';
|
搞定!!!