zengmuansha 发表于 2014-7-28 17:16:20

oracle11g ACTIVE DATAGURAD ROWID 无效


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

Maclean Liu(刘相兵 发表于 2014-7-28 17:20:20

1、你flush buffer cache 在 standby上能workaround这个问题吗?
2、请上传alert.log和相关1410的TRACE

zengmuansha 发表于 2014-7-29 09:32:29

Maclean Liu(刘相兵 发表于 2014-7-28 17:20 static/image/common/back.gif
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  等关键字都没查到。

zengmuansha 发表于 2014-7-29 09:34:26

Maclean Liu(刘相兵 发表于 2014-7-28 17:20 static/image/common/back.gif
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;

zengmuansha 发表于 2014-7-30 11:22:11

今天又报了无效ROWID 是备库的表和内存的不匹配。虽然FLASH BUFFER可以解决。
同样警报里没有错误

zengmuansha 发表于 2014-7-30 11:31:31

LOCK TABLE "CCPS_MAXMIND_OUTPUTS" IN SHARE MODE  NOWAIT  发现主库有锁表的行为。 这会不会造成备库无效ROWID的原因?

zengmuansha 发表于 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不匹配!

zengmuansha 发表于 2014-8-2 16:49:49

我的备库是建立在虚拟机上的。主库也是。 他们跑了好多年了!
页: [1]
查看完整版本: oracle11g ACTIVE DATAGURAD ROWID 无效