ORA-00600 3020 Lost Write写丢失问题分析
最近半年在客户和测试环境前后发生了3次ORA-00600 [3020]错误, 都是在11g data guard环境下做完switchover切换操作之后, Standby的MRP进程起不来了.Errors in file /d/db/oradata/diag/rdbms/oss/oss/trace/oss_pr01_11035.trc (incident=324505):ORA-00600: internal error code, arguments: [3020], [3], [3712], [3712], [], [], [], [], [], [], [], [] ORA-10567: Redo is inconsistent with data block (file# 3, block# 3712, file offset is 30408704 bytes) ORA-10564: tablespace UNDOTBS1 ORA-01110: data file 3: '/d/db/oradata/oss/undotbs0
关于隐藏参数:_no_recovery_through_resetlogs
这个参数用于限制恢复能否跨越resetlogs,对于数据库的恢复来说,resetlogs通常意味着不完全恢复,在数据库resetlogs打开之后,控制文件中的很多信息被改写,在Oracle 10g之前,如果数据库resetlogs打开,那么将不再能够通过当前的控制文件再次进行resetlogs点之前的恢复,而Oracle 10g改变了这个历史。在Oracle 10g中,即使通过resetlogs方式打开了数据库,Oracle仍然支持再次从resetlogs时间点之前进行恢复;在Clone数据库时,Oracle设置这个参数为True,意思就是不允许再次进行跨越resetlogs时间点的恢复。[@more@]
关于expdp在solaris RAC环境上不能执行出错的解决
报错如下:ORA-31626: job does not existORA-31637: cannot create job SYS_EXPORT_SCHEMA_01 for user NAP3ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95ORA-06512: at "SYS.KUPV$FT_INT", line 606ORA-39080: failed to create queues "" and "" for Data Pump jobORA-06512: at "SYS.DBMS_SYS_ERROR", line 95ORA-06512: at "SYS.KUPC$QUE_INT", line 1550ORA-01403: no data found这种错误通常都是由于Oracle软件升级之后和库不一致产生的,需要重新执行catalog.sql an
关于在Oracle中删除表空间中的数据文件的问题
在10gR2之前,使用alter database datafile offline drop方法只能是让表空间的数据文件脱机,不是真正删除,在数据字典 v$datafile,dba_data_files里面还是能够查到这些offline的文件的信息;要清除这些数据字典中的信息,只能是删除整个表空间; 从10gR2开始,支持语法alter tablespace drop datafile来删除一个空的数据文件,相关信息也从数据字典中删除[@more@]
oracle10g RAC中查看Private IP的方法
1> 查看oracle数据字典gv$cluster_interconnects (10gR2)SQL> select * from gv$cluster_interconnects; INST_ID NAME IP_ADDRESS IS_PUBLIC SOURCE---------- --------------- ---------------- --------- ------------------------------- 1 interface 10.10.10.11 NO Oracle Cluster Repository 2 interface 10.10.10.12 NO Oracle Cluster Repository 2> 查看oracle内部的表x$ksxpiaSQL> conn sys/sys@grid1 as sysdba已连接。SQL>
发现dba_segments和dba_extents中统计段空间大小居然不一样
最近在测试系统上发现dba_segments和dba_extents中统计段空间大小居然不一样SQL> select bytes,blocks,extents from dba_segments where segment_name='PROFILE' and owner='NAP3'; BYTES BLOCKS EXTENTS---------- ---------- ---------- 0 0 0SQL> select bytes,blocks,extent_id from dba_extents where segment_name='PROFILE' and owner='NAP3'; BYTES BLOCKS EXTENT_ID---------- ---------- ---------- 167772160 20480 0在metalink上搜索到如下资料: D
升级时产生错误:Error:*** Alert: Invalid staging area
使用脚本升级10.1.0.4到10.1.0.5时报错: Preparing to launch Oracle Universal Installer from /tmp/OraInstall2008-08-25_07-05-05AM. Please wait ...Oracle Universal Installer, Version 10.1.0.5.0 ProductionCopyright (C) 1999, 2005, Oracle. All rights reserved................................................................100% Done.Error:*** Alert: Invalid staging area. There are no top level components for Solaris Operating System (SPARC) available for installation in this staging area. ***开始以
RAC中报错ORA-01092: ORACLE instance terminated. Disconnection forced
今天做Oracle RAC环境下升级10.1.0.5的回退工作。其中通过在startup upgrade状态下执行一些sql脚本,但每次startup upgrade老是报错: ORA-01092: ORACLE instance terminated. Disconnection forced [@more@]检查日志: Errors in file /opt/profdb/trace/nap3x1_ora_18676.trc: ORA-39701: database must be mounted EXCLUSIVE for UPGRADE or DOWNGRADE Error 39701 happened during db open, shutting down database USER: terminating instance due to error 39701 比较了一下升级时的步骤,少了步设置CLUSTER_DATABASE=FALSE,这步在
静默(silent)升级Oracle10g RAC 10.1.0.4 to 10.1.0.5
近期针对客户10.1.0.4的RAC平台做了个脚本升级到10.1.0.5RAC环境:solaris 两个节点:clnode1 clnode2步骤如下: 1. upgrade oracle software1.1 shutdown database (run on clnode1) shutdown instance on all nodes: $ORACLE_HOME/bin/srvctl stop database -d db_name 1.2 shutdown all processes lisntener and CSS as root (run on clnode1) #/etc/init.d/init.cssd stop1.3 upgrade crs software and database software (run on clnode1) (note: need to make rac_crs.rsp and rac_db.rsp) $./runInstaller -silent
10g R2中connect角色权限的变化
Oracle10gR2在部署安全配置的时候,提供了额外的安全性,强制使用了最少特权原则:对于经常使用的CONNECT角色仅仅提供了连接数据库所需要的权限,即CREATE SESSION权限.过去许多年以来,CONNECT角色一直应用在许多代码,应用,和文档中,尽管CONNECT角色被频繁使用在建立账户的时候,但是仅仅连接数据库,是不需要如此多的权限的.10g R2中Connect角色权限的删减[@more@]每个用户应当只仅仅授予他们所需要的合适的权限,最小化的权限避免了风险,减少了无意操作和恶意操作所带来的危害CONNECT角色现在只有这一个权限: CREATE SESSION其他7个
批量绑定中的SAVE EXCEPTION 子句
Oracle 从9i 开始增强了批 DML 在发生异常时处理的错误及失败的程序执行能力。这是通过FORALL 语句的 SAVE EXCEPTION 子句来实现,其语法如下: FORALL index in lower..upper save exceptionsSAVE EXCEPTIONS 子句是 oracle 9i 中引入的,它在一个隐式游标属性SQL%BULK_EXCEPTIONS 中保存错误行,允许 FORALL 语句继续处理其余行。下面这一段代码是 SQL%BULK_EXCEPTIONS 的应用例子:[@more@]create or replace procedure batch_dml(errnum outnumber,errtext outvarchar2)is type user_id_tab istableofnumberindexbybinary_intege
给Oracle数据库打补丁[转载]
给软件打补丁相当于给人打预防针,对系统的稳定运行至关重要。本文详细、系统地介绍了Oracle数据库补丁的分类、安装、管理等问题。厂商提供给用户的软件补丁的形式多为编译后的库函数,所以安装软件补丁实际上就是把这些库函数拷贝到相应目录,并在需要时进行联接操作。软件公司一般在一段时间后会把针对某一版本的所有补丁进行整理:合并融合,解决冲突,进行整体测试,并使文件拷贝和联接操作自动执行,得到一个软件补丁“包”。不同的公司使用不同的名称,现在一般计算机用户都熟悉的Windows ServicePack就是这样的补丁包。Oracle公司给
关于外键未加索引引起锁问题
测试:session 1:SQL> delete from emp where emp.deptno=10;session 2:SQL> delete from dept where deptno=40;现象:在emp的字段deptno没有索引时session 2等待, 有索引则不等待.结论:如果没有索引时,对父表的操作,会级联加一个TM S锁(level 4)到子表上; 如果有索引时,对父表的操作,会级联加一个TM RS锁(level 2)到子表上; 这时如果子表上本身就有个TM RX锁(这种锁很容易产生,insert update delete都会产生这种锁), TM S锁和TM RX锁是互斥的, TM RS锁和TM RX锁是相容的.[@more@]
One more chance-ferras(21金维他广告英文歌完整版) (转载)
找了N久的歌,今天无意在网上发现,感谢love li分享。在这里帖出来是让更多的人看到。One More Chance EMI罐头音乐,编号KPM 655/85,付费版权音乐。作曲: Simon May / Simon Lockyer / John Brant 歌手:ferras 下载地址:192K品质下载:[url]http://www.fs2you.com/zh-cn/files/0bac6d5e-22ee-11dd-852b-0014221f4662/ 320K品质下载: [url]http://www.fs2you.com/files/6ef17840-22ef-11dd-ba84-00142218fc6e/歌词:[@more@]Always knew I have one it takes 我知道我曾经拥有All I ever had once I had 如果我曾经拥有的能够重来Eve
ORA-19809: limit exceeded for recovery files
今天有客户报启动数据库遇到如下问题:ORA-16038: log 3 sequence# 1126 cannot be archivedORA-19809: limit exceeded for recovery filesORA-00312: online log 3 thread 1: '/opt/oracle/product/10.1/oradata/orcl/redo03.log'查了一下错误信息ORA-19809: limit exceeded for recovery files Cause: The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded. Action: The error is accompanied by 19804. See message 19804 for further details. [@more@]ORA-19804: cannot reclaim string by
关于ORA-00376错误的恢复
今天遇到ORA-00376错误:SQL> select count(*) from bb_bb60.course_main;ORA0-00376: "file '/data/data1/blackboard/oracle/data/bb_bb60_indx_file1.dbf' cannot be read at this time"重启数据库没有问题,怀疑数据文件有问题:[@more@]SQL> select file#,status from v$datafile; FILE# STATUS---------- ------- 1 SYSTEM 2 ONLINE 3 ONLINE 4 ONLINE 5 ONLINE 6 ONLINE 7 ONLINE 8 ONLINE 9 ONLINE 10 ONLINE 11 ONLI
[转载] 关于“哟西”
日前有朋友发来信件谈起小山ちれ(既然说到这段的时候她确实在使用这个名字,用这个名字称呼她是比较客观的吧,并不代表某种倾向),说到下面一段,让老萨考证一下。[让很多人跳骂的就是这个“呦西、呦西”。她每赢一个球就喊一声“呦西”,还要手握拳头。其实是她在日本训练习惯了,打赢一个球就“呦西”一下。我们在美国也习惯说OK。“呦西”跟“OK”是一样的啦。如果我们赢一个就OK一声,可能很多人也不会觉得有什么啊。本来就没有什么政治含义在里头。我问何智丽这事的时候,她还愣了一下,她说,这有什么?她在日本连续拿了7次冠军,
在Oracle10g中使用包DBMS_ADVANCED_REWRITE实现新的查询重写功能
从Oracle10g版本1开始,提供了新的包DBMS_ADVANCED_REWRITE来实现查询重写。它允许你截获特定的SQL语句,并将其重定义为另一个SQL语句。下面是一个简单的例子:1、确认测试用户有必要的权限去运行 CONN sys/password AS SYSDBA GRANT EXECUTE ON DBMS_ADVANCED_REWRITE TO test; GRANT CREATE MATERIALIZED VIEW TO test;[@more@]2、创建测试用表 CONN test/test DROP TABLE rewrite_test_tab; CREATE TABLE rewrite_test_tab ( id NUMBER, description VARCHAR2(50), CONSTRAINT rewrite_test_tab_pk PR
10g中的绑定变量的捕获功能
有时我们在调试程序时往往会遇到这种情况:由于程序中使用了绑定变量技术,所以无法从v$sql这些视图中获取到变量的具体值。从10g开始, oracle提供了捕获绑定变量值的功能。 [@more@]首先查看当前的10g系统是否启动了绑定变量捕获功能:select statistics_name, description, session_statusfrom V$STATISTICS_LEVELwhere statistics_name = 'Bind Data Capture'缺省情况下系统每15分钟取样一次,如果你的系统压力比较小的话,也可以减小这个时间。可以通过修改隐藏参数来实现:ALTER SYSTEM SET "_CURSOR_BIND_CAPTURE_INTERVAL"
百家讲坛-《人类的起源》 吴新智
主讲人简介: 吴新智,中国科学院院士,中国解剖学会名誉理事长。 1928年生,安徽合肥人。1953年上海医学院医本科毕业。1961年中国科学院研究生毕业。此后至今历任中国科学院古脊椎动物与古人类研究所助理研究员、副研究员、研究员、博士生导师、副所长。1984年与外国同行联名提出多地区进化假说,为当今关于现代人起源争论的两大学说之一。 1990年被评为中国科学院优秀研究生导师。已发表古人类学论著90余件。1991年获中国科学院自然科学一等奖。1999年获郭沫若中国历史学奖二等奖。 内容简介: 一、 物种起源 1