undo_tablespace

YY_MM_DD 2010-11-12 02:33:24
我数据库里有两个撤销表空间UNDOTBS01和MYUNDO
我现在把数据库的撤销的空间从UNDOTBS01更该为了MYUNDO,并且将UNDOTBS01设置为了offline
现在我运行DDL语句的时候老是报下面的错误,请大鸟赐教
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-00376: 此时无法读取文件 2
ORA-01110: 数据文件 2: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF'
...全文
67 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
YY_MM_DD 2010-11-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iihero 的回复:]
显式归档,然后执行DDL试试,或者重启
[/Quote]

什么叫显示归档呢?
iihero_ 2010-11-13
  • 打赏
  • 举报
回复
显式归档,然后执行DDL试试,或者重启
心中的彩虹 2010-11-13
  • 打赏
  • 举报
回复
我操作的,没点问题
SQL> conn /as sysdba
已连接。
SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
SQL> select name from v$tablespace
2 /

NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP

SQL> create undo tablespace UNDOTBS2
2 datafile 'F:\oracle\product\10.2.0\oradata\orcl\UNDOTBS2.01.dbf' size 25M
3 /

表空间已创建。

SQL> alter system set undo_tablespace=UNDOTBS2
2 /

系统已更改。


SQL> alter system set undo_tablespace=UNDOTBS2 scope=both
2 /

系统已更改。
SQL> drop tablespace UNDOTBS1 including contents and datafiles
2 /

表空间已删除。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 213912452 bytes
Database Buffers 390070272 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- --------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS2
SQL> select tablespace_name,status from dba_tablespaces
2 /

TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
UNDOTBS2 ONLINE

SQL> conn scott/sys
已连接。
SQL> insert into emp select * from emp_test
2 /

已创建14行。

SQL> commit
2 /

提交完成。
心中的彩虹 2010-11-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 yy_mm_dd 的回复:]
我数据库里有两个撤销表空间UNDOTBS01和MYUNDO
我现在把数据库的撤销的空间从UNDOTBS01更该为了MYUNDO,并且将UNDOTBS01设置为了offline
现在我运行DDL语句的时候老是报下面的错误,请大鸟赐教
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-00376: 此时无法读取文件 2
ORA-01110: 数据文件 2: 'E:\ORACLE……
[/Quote]
可以把不要的删掉
shutdown immediate
startup mount
alter database datafile 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF' offline drop
startup
tangren 2010-11-13
  • 打赏
  • 举报
回复
1、楼上的显示归档可能是将在归档模式下,将某个表空间置于归档模式如:
sql>alter tablespace tablespace_name begin backup;
2、在切换UNDO表空间时,如果还来的事务还没有完成,则仍然使用原来的UNDO表空间,你是否是原来的事务并未完成。
SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1

SQL> create undo tablespace myundotbs datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10G\MYUNDOTBS01.DBF' size 50M;

Tablespace created

SQL> alter system set undo_tablespace=myundotbs;

System altered

SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string MYUNDOTBS

SQL> alter tablespace undotbs1 offline;

Tablespace altered

SQL> SELECT t.tablespace_name, t.status FROM dba_tablespaces t;

TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 OFFLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
MYUNDOTBS ONLINE

7 rows selected

SQL> insert into t values(20);

1 row inserted

SQL> commit;

Commit complete

SQL>
hidanger0 2010-11-12
  • 打赏
  • 举报
回复
重启数据库试试捏。。
ngx20080110 2010-11-12
  • 打赏
  • 举报
回复
樓主把你的操作列出來吧,我做類似的操作沒有問題呀

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧