手工删除DBA_TABLESPACES中的记录后...

    最初是在ITPub上看到人家这样的误操作的, 估计谁也没有遇到过这样的事, 不好作出回答. 今天我在自已的机器上试了一下, 10g的数据库, 如下所示:

SQL> delete from dba_tablespaces where tablespace_name='USERS';

1 row deleted.

SQL> commit;

Commit complete.

SQL> alter system checkpoint;

System altered.

    决定重启一下数据库, 之前当心打不开数据库, 结果数据库还是能打开的, 这样就好多了. 当去查询这个表空间上的数据时, 出现了600错误, 如下所示:

SQL> select * from anysql.emp;
select * from anysql.emp
                     *
ERROR at line 1:
ORA-00600: internal error code, arguments: [5119], [], [], [], [], [], [], []

    然后我用AUL找回了被删除的记录, 用sqlldr装载到数据库中, 重新启动, 没有遇到任何问题, 再去查这个表空间的记录, 也没有问题. 当然也可以用Log Miner或MyLOG去找回被删除的记录.

留言 (4)

学习中!

dba_tablespaces 这张表里的数据都能被删除!
--自打俺10年前从业DBA,从来没敢试过,怕触犯天条. ;)

亏你想得出来!!! 厉害!
Keep an open mind and thinking flexible.

我最开始啥也不懂的时候,貌似测试AR
有问题,比如2边对不起来
就删改系统表,最后db坏掉,就删db,重建db
反反复复...^_^

这个是一个网友的同事干的事情

发表留言:

« Previous | Main | Next »

英语900句 | English 900

  • His flattery makes me sick.
  • 他的恭维让我恶心.
  • We had a good time.
  • 我们玩的很开心.
  • We enjoyed ourselves very much.
  • 我们玩的很开心.
  • I am bored to death.
  • 我无聊死了.
  • This house is for rent.
  • 此房出租.