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

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

69

积分

0

好友

13

主题
1#
发表于 2014-7-28 17:16:20 | 查看: 5376| 回复: 7

ORA-01410 无效ROWID  昨天备库上的应用报该异常。经检查备库的某个表的索引不可用。
select count (*) from table  走的是关键字索引。 而主库就OK 。

难道备库在恢复过程中 造成ROWID的改变。 导致备库的索引不一致?

数据库版本是 Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0


会不会是某个BUG

Bug 8740993
Abstract: ORA-1410 OCCURRED ON ADG STANDBY DATABASE DURING TABLE SCAN.
This bug applies to standby databases and occurs when the standby is re-applying DDL for table drops/truncates/shrinks. The buffer cache is not being updated for the new object numbers.
Fixed in 12.1, 11.2.0.2

索引会不会呢?


在另外个网站也找到相应的问题

数据库11G,做Active DG读写分离.周五系统上线开发在一张表drop indexes之后insert在create index在备库select count(*) from报 invalid ROWID.从新在主库alter index index_name rebuild online问题解决.原因还在查找


刘大的文章 http://www.askmaclean.com/archives/ora-1410.html 说他的是BUFFER 无效ID

而我这个系统好久没做过重建索引的事情。案发前几天,记得做过了删除一个用户名字叫"CCPS”
案发时候的用户叫'CCPS1“ 难道我drop CCPS用户影响的?


备库数据保护参数
SQL> show parameter db_ultra_safe;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_ultra_safe                        string      OFF

SQL> show parameter db_lost_write_protect;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_lost_write_protect                string      NONE

SQL> show parameter db_block_check  
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_checking                    string      FALSE
db_block_checksum                    string      TYPICAL
2#
发表于 2014-7-28 17:20:20
1、你flush buffer cache 在 standby上能workaround这个问题吗?
2、请上传alert.log和相关1410的TRACE

回复 只看该作者 道具 举报

3#
发表于 2014-7-29 09:32:29
Maclean Liu(刘相兵 发表于 2014-7-28 17:20
1、你flush buffer cache 在 standby上能workaround这个问题吗?
2、请上传alert.log和相关1410的TRACE ...

1  这个当时是重建主库的索引,备库就自动地好了。 没有对备库flush buffer cache.

2 当时查看了主备的alert.log 没有发现1410错误。是JAVA应用前台报出来的。后来自己在PL/SQL里使了下也报1410,当ALERT.LOG 还是没有。
通过VI  :/ORA-   :/.trc  :/1410  等关键字都没查到。

回复 只看该作者 道具 举报

4#
发表于 2014-7-29 09:34:26
Maclean Liu(刘相兵 发表于 2014-7-28 17:20
1、你flush buffer cache 在 standby上能workaround这个问题吗?
2、请上传alert.log和相关1410的TRACE ...

在主库和备库都设置 三个参数 可以解决此类问题吧?


ALTER SYSTEM set DB_BLOCK_CHECKSUM=full  scope=both;  
ALTER SYSTEM set DB_BLOCK_CHECKING=full  scope=both;
ALTER SYSTEM set DB_LOST_WRITE_PROTECT=TYPICAL scope=both;

回复 只看该作者 道具 举报

5#
发表于 2014-7-30 11:22:11
今天又报了无效ROWID 是备库的表和内存的不匹配。虽然FLASH BUFFER可以解决。
同样警报里没有错误

回复 只看该作者 道具 举报

6#
发表于 2014-7-30 11:31:31
LOCK TABLE "CCPS_MAXMIND_OUTPUTS" IN SHARE MODE  NOWAIT  发现主库有锁表的行为。 这会不会造成备库无效ROWID的原因?

回复 只看该作者 道具 举报

7#
发表于 2014-7-31 09:24:28
Bug 8740993
Abstract: ORA-1410 OCCURRED ON ADG STANDBY DATABASE DURING TABLE SCAN.
This bug applies to standby databases and occurs when the standby is re-applying DDL for table drops/truncates/shrinks. The buffer cache is not being updated for the new object numbers.
Fixed in 12.1, 11.2.0.2

匹配的只有这个BUG, 可最近没有做DROPS TRUNCATES SHRINKS。
只是事发前几天有做过DROP USERS
DROP USERS CCPS
发生故障的是CCPS1的索引和表,内存的对象跟文件的对象ID不匹配!

回复 只看该作者 道具 举报

8#
发表于 2014-8-2 16:49:49
我的备库是建立在虚拟机上的。主库也是。 他们跑了好多年了!

回复 只看该作者 道具 举报

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

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

GMT+8, 2024-12-21 05:55 , Processed in 0.055559 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

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