ORA-25153: 临时表空间为空
2015-12-22 08:43
344 查看
今天做flashback table实验时出现了报错,下面谈谈处理过程:
ORA-25153: 临时表空间为空
1.做闪回表的第一步要对表t启用row movement
SQL> alter table t enable row movement;
表已更改。
2.查询当前的scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
592774
3.往表里插入一个数据,并commit
SQL> insert into t values(123456,100);
已创建 1 行。
SQL> commit;
提交完成。
4.执行闪回表操作,此时报了个ORA-25153
SQL> flashback table t to scn 592774;
flashback table t to scn 592774
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-25153: 临时表空间为空
思路:
我数据的版本是10.2.0.1,之前做过控制文件恢复,导致临时表空间为空,|这是10g的一个bug,在11g里已经没有这个问题(以上两句不知是否正确)|。
1.首先查看dba_tablespaces,表空间都online
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
2.查看dba_temp_files
SQL> select tablespace_name,file_name from dba_temp_files;
未选定行
SQL> alter database default temporary tablespace temp;
alter database default temporary tablespace temp
*
第 1 行出现错误:
ORA-12907: 表空间 TEMP 已经是默认的临时表空间
问题就出在这里了,临时数据文件丢了。现在来加一个
SQL> alter tablespace temp add tempfile 'D:\oracle\product\10.2.0\oradata\test\TEMP01.DBF'size 21M autoextend off;;
表空间已更改。
SQL> select tablespace_name,file_name from dba_temp_files;
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
TEMP
D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEMP01.DBF
现在再执行闪回表:
SQL> flashback table t to scn 592774;
闪回完成。
SQL> select * from t;
ID AA
---------- ----------
1 100
12 100
123 100
1234 100
12345 100
成功了
ORA-25153: 临时表空间为空
1.做闪回表的第一步要对表t启用row movement
SQL> alter table t enable row movement;
表已更改。
2.查询当前的scn
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
592774
3.往表里插入一个数据,并commit
SQL> insert into t values(123456,100);
已创建 1 行。
SQL> commit;
提交完成。
4.执行闪回表操作,此时报了个ORA-25153
SQL> flashback table t to scn 592774;
flashback table t to scn 592774
*
第 1 行出现错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-25153: 临时表空间为空
思路:
我数据的版本是10.2.0.1,之前做过控制文件恢复,导致临时表空间为空,|这是10g的一个bug,在11g里已经没有这个问题(以上两句不知是否正确)|。
1.首先查看dba_tablespaces,表空间都online
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
2.查看dba_temp_files
SQL> select tablespace_name,file_name from dba_temp_files;
未选定行
SQL> alter database default temporary tablespace temp;
alter database default temporary tablespace temp
*
第 1 行出现错误:
ORA-12907: 表空间 TEMP 已经是默认的临时表空间
问题就出在这里了,临时数据文件丢了。现在来加一个
SQL> alter tablespace temp add tempfile 'D:\oracle\product\10.2.0\oradata\test\TEMP01.DBF'size 21M autoextend off;;
表空间已更改。
SQL> select tablespace_name,file_name from dba_temp_files;
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
TEMP
D:\ORACLE\PRODUCT\10.2.0\ORADATA\TEST\TEMP01.DBF
现在再执行闪回表:
SQL> flashback table t to scn 592774;
闪回完成。
SQL> select * from t;
ID AA
---------- ----------
1 100
12 100
123 100
1234 100
12345 100
成功了
相关文章推荐
- 在KVM中运行windows 10虚机(by quqi99)
- requirejs的简要用法
- 显示的MySQL 的select操作记录,general log
- 完美解决layDate强制动态显示当前时间(不求评论,但求疯狂转载!)
- 2016太原网络营销师郭文军揭秘SEM竞价中关键词分类?
- ThinkPHP--网站基本信息的设置F方法版
- 编程的智慧
- 英文单词升序排序
- hadoop学习;自己定义Input/OutputFormat;类引用mapreduce.mapper;三种模式
- git 忽略文件
- .net中的泛型
- 项目中常用文件的用途及注意项
- split()函数
- linux系统常用命令有哪些? semicolon命令的使用方法
- genstrings使用 -- ShinePug
- graphana从2.5开始也可以支持ES了
- Leetcode: Meeting Rooms
- 安卓日记——简述SimpleAdapter用法
- 目标未达成:Ubuntu 未达成 4 年 2 亿用户目标
- (笔记)Linux下的解压、压缩命令集合