Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

7

主题
1#
发表于 2014-1-6 07:54:04 | 查看: 4153| 回复: 3
再開發server上,爲了測試需要,
把server的時間修改到了未來某個時間(比如現在是1月6日,改成了1月12日),
修改時間后,又進行了一些DML操作。

過了一段時間后,又把時間改成正確的當前時間。
此時,如果用set transaction read only,
然後任意select 。。。from某個表,
會出現ORA-01466: Unable to read data -- Table definition has changed

如何才能除掉ORA-01466這個錯誤呢?
2#
发表于 2014-1-6 10:13:36
If the cause is an old snapshot, then commit or rollback the transaction and resume work.
a creation time-stamp in the future, ensure the system time is set correctly.
If the object creation time-stamp is still greater than the system time, then export the object's
data, drop the object, recreate the object so it has a new creation time-stamp, import the object's data, and resume work.

回复 只看该作者 道具 举报

3#
发表于 2014-1-6 13:02:47
[oracle@mlab2 ~]$ oerr ora 1466
01466, 00000, "unable to read data - table definition has changed"
// *Cause: Query parsed after tbl (or index) change, and executed
//         w/old snapshot
// *Action: commit (or rollback) transaction, and re-execute


回复 只看该作者 道具 举报

4#
发表于 2014-1-6 14:32:22
本帖最后由 jacksan 于 2014-1-7 09:38 编辑

應該所有的transaction都commit過了。
並且我試過restart oracle,結果還是有01466錯誤。
所以我覺得可能需要export-drop-recreate這個schema,不知還有別的方法嗎?

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-21 10:33 , Processed in 0.045867 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569