在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT) ORA-00922: missing or invalid option
2015-07-10 06:23
579 查看
在Oracle 11.2的数据库中建表时遇到 RESULT_CACHE (MODE DEFAULT) ORA-00922: missing or invalid option
背景介绍:
此db是11.2.0.3.8的linux下的单机,是OGG的备库,OGG的主库是11.2.0.3.8下的linux下的rac。这两个db通过OGG进行灾备。最初发现“ORA-00922: missing or invalid option”错误,就是因为OGG备端上的rep进程abend,abend时的rpt(report)如下:
以下的报错忽略。
看到OGG的rep进程报错,一开始还以为是ogg的问题,后来就从上面单独截取出create 脚本,放在sqlplus里边跑,结果还是报错(就是本文一开始可以看到的),那就可以说是Oracle database 的问题了,不是OGG的问题。
后来仔细想了想ogg主库和ogg备库的差异,ogg主库是dbca新创建的,ogg备库是从10.2.0.5升级升上来的。想到这里,有经验的DBA就会立即去检查OGG备库的compatible参数,检查的结果是compatible参数值为10.2.0.5.于是就要求修改该参数,修改为11.2.0.0.0(跟主库一样),当然,修改此参数有几个注意点:
1. 修改compatible参数是重启数据库生效。
2. 一旦修改完成此参数后(指重启数据库后),就不能降低此参数到原来的值,否则实例到mount状态时会报如下的错误:
本案例的知识点:
1. 查看db是dbca新建的还是upgrade上来的方法:
hostdr:[/home/oracle]$sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Thu Jul 9 12:52:11 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> SQL> CREATE TABLE USERA."TABLE_NAME_AA" 2 ( 3 C1 CHAR(8 BYTE) DEFAULT ' ', 4 C2 CHAR(2 BYTE) DEFAULT ' ', 5 C3 NUMBER(12) DEFAULT 0, 6 C4 NUMBER(16) DEFAULT 0, 7 C5 NUMBER(16) DEFAULT 0, 8 C6 NUMBER(12) DEFAULT 0, 9 C7 NUMBER(16) DEFAULT 0, 10 C8 NUMBER(16) DEFAULT 0, 11 C9 NUMBER(12) DEFAULT 0, 12 C10 NUMBER(16) DEFAULT 0, 13 C11 NUMBER(16) DEFAULT 0 14 ) 15 TABLESPACE USERS 16 RESULT_CACHE (MODE DEFAULT) 17 PCTUSED 0 18 PCTFREE 10 19 INITRANS 1 20 MAXTRANS 255 21 STORAGE ( 22 INITIAL 64K 23 NEXT 1M 24 MINEXTENTS 1 25 MAXEXTENTS UNLIMITED 26 PCTINCREASE 0 27 BUFFER_POOL DEFAULT 28 FLASH_CACHE DEFAULT 29 CELL_FLASH_CACHE DEFAULT 30 ) 31 LOGGING 32 NOCOMPRESS 33 NOCACHE 34 NOPARALLEL 35 MONITORING 36 / RESULT_CACHE (MODE DEFAULT) * ERROR at line 16: ORA-00922: missing or invalid option SQL>
背景介绍:
此db是11.2.0.3.8的linux下的单机,是OGG的备库,OGG的主库是11.2.0.3.8下的linux下的rac。这两个db通过OGG进行灾备。最初发现“ORA-00922: missing or invalid option”错误,就是因为OGG备端上的rep进程abend,abend时的rpt(report)如下:
2015-05-18 10:14:14 INFO OGG-01407 Setting current schema for DDL operation to [USERA]. 2015-05-18 10:14:15 INFO OGG-01408 Restoring current schema for DDL operation to [goldengate]. 2015-05-18 10:15:30 INFO OGG-01407 Setting current schema for DDL operation to [USERA]. Source Context : SourceModule : [ggapp.ddl] SourceID : [/scratch/mmar/view_storage/mmar_20199012/oggcore/OpenSys/src/gglib/ggapp/ddlrep.c] SourceFunction : [DDLREP_handleDDLError(const UString &, const UString &, const UString &, UString &, int, RepConfig_t *, const UString &, const UString &, const UStr ing &, CDBObjName<7> &, CDBObjName<1> &, long *)] SourceLine : [684] 2015-05-18 10:15:30 ERROR OGG-00519 Fatal error executing DDL replication: error [Error code [922], ORA-00922: ^Z^Z^Z^Z^Z^Z^Z SQL CREATE TABLE USERA."TABLE_NAME_AA" ( C1 CHAR(8 BYTE) DEFAULT ' ', C2 CHAR(2 BYTE) DEFAULT ' ', C3 NUMBER(12) DEFAULT 0, C4 NUMBER(16) DEFAULT 0, C5 NUMBER(16) DEFAULT 0, C6 NUMBER(12) DEFAULT 0, C7 NUMBER(16) DEFAULT 0, C8 NUMBER(16) DEFAULT 0, C9 NUMBER(12) DEFAULT 0, C10 NUMBER(16) DEFAULT 0, C11 NUMBER(16) DEFAULT 0 ) TABLESPACE USERS RESULT_CACHE (MODE DEFAULT) PCTUSED 0 PCTFREE 10 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 64K NEXT 1M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT ) LOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING /* GOLDENGATE_DDL_REPLICATION */], no error handler present. *********************************************************************** * ** Run Time Statistics ** * ***********************************************************************
以下的报错忽略。
看到OGG的rep进程报错,一开始还以为是ogg的问题,后来就从上面单独截取出create 脚本,放在sqlplus里边跑,结果还是报错(就是本文一开始可以看到的),那就可以说是Oracle database 的问题了,不是OGG的问题。
后来仔细想了想ogg主库和ogg备库的差异,ogg主库是dbca新创建的,ogg备库是从10.2.0.5升级升上来的。想到这里,有经验的DBA就会立即去检查OGG备库的compatible参数,检查的结果是compatible参数值为10.2.0.5.于是就要求修改该参数,修改为11.2.0.0.0(跟主库一样),当然,修改此参数有几个注意点:
1. 修改compatible参数是重启数据库生效。
2. 一旦修改完成此参数后(指重启数据库后),就不能降低此参数到原来的值,否则实例到mount状态时会报如下的错误:
ORA-00201: control file version 11.2.0.0.0 incompatible with ORACLE version 10.2.0.5 ORA-00202: control file: 'D:\IM\CONTROLFILE\CONTROL01.CTL'
本案例的知识点:
1. 查看db是dbca新建的还是upgrade上来的方法:
SQL> set pages 100 lines 120 SQL> col action format a16 SQL> col namespace format a10 SQL> col version format a10 SQL> col comments format a26 SQL> col action_time format a30 SQL> col bundle_series format a15 SQL> set line 200 SQL> alter session set nls_timestamp_format = 'yyyy-mm-dd hh24:mi:ss.ff'; SQL> select * from dba_registry_history; ACTION_TIME ACTION NAMESPACE VERSION ID BUNDLE_SERIES COMMENTS ------------------------------ ---------------- ---------- ---------- ---------- --------------- -------------------------- 2015-01-03 12:15:56.136897 VIEW INVALIDATE 8289601 view invalidation 2015-01-03 12:16:30.178980 UPGRADE SERVER 11.2.0.3.0 Upgraded from 10.2.0.5.0 2015-01-03 12:16:39.788907 APPLY SERVER 11.2.0.3 8 PSU PSU 11.2.0.3.8 SQL>
相关文章推荐
- oracle 集合 varray
- oracle 集合 nested_table
- Python导入oracle数据的方法
- Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
- Oracle基本语句2
- Oracle 基本语句1
- Oracle Undo表空间介绍
- 使用Oracle sqlldr 快速批量导入文本文件
- Oracle数据库的基本概念及PL/SQL(DDL)
- 关于Oracle索引建立的几个注意要点
- Oracle常用SQL语句
- Oracle 用户权限
- Oracle ->> Oracle下查看实际执行计划的方法
- oracle存储过程
- Oracle Partition 分区详细总结
- oracle中long和date的互换
- Oracle创建存储过程、创建函数、创建包
- Oracle中Union与Union All的区别(适用多个数据库)
- MYSQL 与 Oracle 之间的数据类型转换
- error LNK2019: 无法解析的外部符号 "public: virtual __thiscall oracle::occi::SQLException