-
Recent Posts
Recent Comments
- yangtingkun on 非空字段空值对查询的影响
- Eric Zong on 非空字段空值对查询的影响
- Kamus on Oracle Ace Director
- 设置全局死锁优先级 | yangtingkun on RAC全局死锁检测时间
- ORA-600(krbounotread_noctx)错误 | yangtingkun on ORA-600(krboReadBitmap_badbitmap)错误
Archives
- December 2020
- February 2019
- December 2018
- November 2018
- October 2018
- July 2018
- June 2018
- May 2018
- July 2016
- July 2013
- June 2013
- November 2012
- October 2012
- September 2012
- August 2012
- July 2012
- June 2012
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- November 2011
- October 2011
- September 2011
- August 2011
Categories
Meta
Author Archives: yangtingkun
2012年4月数据库技术大会第一天
今年是ITPUB组织数据库大会的第三年了,而我却是第一次参加。 PUB组织的架构师大会倒是一次都没有拉过,而前两次数据库大会却阴差阳错的都错过了。而且这也是我第一次在数据库大会上分享主题。当然这时废话,大会都没参与过,何来的主题分享。 虽然以前在Oracle的圆桌会议以及ACOUG上都分享过不同的主题,不过在这么大规模的会议上发表演讲,还确实是头一次。在加上最近一段时间工作上的事情比较多,因此演讲和PPT的准备时间都很紧张,甚至是今天的早上,都还在修改PPT。内容主要是一些比较有特点的案例的分享,并且希望通过案例的解决过程带给大家一些思考。 今天除了准备自己的演讲外,上午还去听了三思的演讲。小伙已经从原来的STEP BY STEP的实践阶段成长到设计符合特定应用场景的高可用架构的阶段了,而且目前身兼Oracle和MySql两大绝技,可谓博采众家、内外兼修。 下午和我同一个会场的基本上都是熟人,郑保卫、侯圣文和刘磊分别带来了精彩的演讲,使得我原本计划抽空去Mysql和DB2的会场取经的计划落空了。 晚上是IT168/ITPUB组织的晚宴,基本上演讲的嘉宾和PUB的版主都到齐了,可以说每年PUB组织的数据库大会,也是版主们每年最大的聚会,很多平时外地难得一见的版主汇聚一堂。只是可惜老虎的龙虾仍然是神“龙”首尾都不见。 最后给出我分享主题的PPT下载地址:https://yangtingkun.net/wp-content/uploads/2012/04/Think-Different.pptx
Posted in NEWS
Leave a comment
RMAN-600(8201)错误的解决
根据错误信息的判断,找到一个不重建控制文件的解决方案。 RMAN-600(8201)错误:https://yangtingkun.net/?p=690 RMAN-600(8201)错误的重现:https://yangtingkun.net/?p=716 其实解决方法很简单,由于导致错误的原因是目前的主库做过FAILOVER,导致RESETLOGS的时间比当前控制文件中的RESETLOGS时间要大,Oracle在进行RMAN同步的时候判断不严谨,导致数据同步不完整,并最终体现在一些RMAN命令上,比如SHOW ALL或BACKUP等。 这个问题只影响10.2.0.3及以下版本,因此升级是可以解决问题的。 此外,由于导致问题的根源在于控制文件中的ORPHAN记录,因此手工重建控制文件也是确实可行的方案。 其实除了这些方法外,还有一个办法。就是利用备库或之前备份的控制文件来创建CATALOG。由于只是当前的主库经历过FAILOVER,也就是RESETLOGS的操作,而原来的主库也就是现在的备库并没有经历这个操作,因此用之前的主库也就是目前的备库的控制文件来注册CATALOG就可以屏蔽这个错误。 测试将备库SWITCHOVER为主库,然后通过REGISTER DATABASE命令,可以顺利的进行CATALOG的同步。再次执行SWITCHOVER,切换当前主库为问题主库,这时通过问题主库连接刚才同步后的CATALOG,此时运行SHOW ALL和BACKUP命令都不会再出现错误。 这种方法可以临时的解决这个问题,但是一旦需要对问题主库执行完全同步,则问题可能会重现。 除了使用STANDBY控制文件外,如果可以找到数据库FAILOVER之前的备份控制文件,采用类似的方法,同样可以解决这个问题。
Posted in BUG
Tagged 8192, CATALOG, failover, flashback, REGISTER DATABSE, RMAN-600, show all, SWITCHOVER
Leave a comment
DML_LOCKS设置为0导致SHUTDOWN IMMEDIATE失败
DML_LOCKS参数设置系统中允许DML锁的数量,如果将这个参数设置为0,会禁止ENQUEUE的产生,有可能轻微的提升系统的性能。 不过如果将这个参数设置为0,带来的后果会严重很多: SQL> SHOW parameter dml_locks NAME TYPE VALUE ———————————— ———– —————————— dml_locks INTEGER 264 SQL> ALTER system SET dml_locks = 0 scope = spfile; System altered. SQL> shutdown immediate DATABASE closed. DATABASE dismounted. ORACLE instance shut down. SQL> startup … Continue reading
Posted in ORACLE
Tagged create index, dml_locks, DROP TABLE, enqueue, ora-62, shutdown abort, shutdown immediate, truncate table
Leave a comment
隐含参数_DISABLE_LOGGING导致数据库的损坏
Oracle不推荐修改隐含参数,尤其是对于你不了解的隐含参数,修改的后果可能很严重。 比如如果设置了_DISABLE_LOGGING参数为TRUE: _disable_logging = TRUE_disable_logging = true 那么启动数据库后进行任何的操作,在关闭数据库后,就会发现数据库出现了损坏: SQL> ALTER system checkpoint; System altered. SQL> shutdown abort ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 6.2268E+10 bytes Fixed SIZE 2243512 bytes Variable SIZE 4160750664 bytes … Continue reading
Posted in ORACLE
Tagged corrupt log file, ora-19821, redo file, SHUTDOWN, startup, _disable_logging
Leave a comment
调高SCN的方法
有的时候出于恢复或其他目的的需要,需要将现有的SCN提升。 在10g以前,一般使用event的方式: SQL> ALTER SESSION SET events ‘10015 trace name adjust_scn level 1’; SESSION altered.SQL> alter session set events ‘10015 trace name adjust_scn level 1’; Session altered. 在MOUNT状态下运行上面的SQL,可以根据调整SCN的需要设置不同的LEVEL。此外还存在类似的方法: ALTER system SET events ‘immediate trace name adjust_scn level 10;alter system set … Continue reading
opatch命令报错Inventory is corrupted
测试环境中执行opatch报错,简单描述一下解决过程。 错误信息如下: [orat3@hpserver2 OPatch]$ ./opatch lsinventory Invoking OPatch 10.2.0.5.1 Oracle Interim Patch Installer version 10.2.0.5.1 Copyright (c) 2010, Oracle Corporation. ALL rights reserved. Oracle Home : /t3/orat3/product/10.2.0/db_4.10 Central Inventory : /u01/app/oracle/oraInventory FROM : /etc/oraInst.loc OPatch version : 10.2.0.5.1 OUI version … Continue reading
Posted in ORACLE
Tagged Central inventory, ContentsXML, corrupted, inventory.xml, lsinventory, opatch, ORACLE_BASE, ORACLE_HOME, oraInst.loc
Leave a comment
通过数据库链指定AS OF SCN语句
一直不确定闪回查询的AS OF语句是否可以通过数据库链对远端数据库生效,而由于通过数据库链查询会使两个数据库的SCN同步,使得这个问题难以测试。 通过数据库链查询会导致源和目标库SCN同步:https://yangtingkun.net/?p=722 虽然Oracle会在通过数据库链执行查询或DML操作时同步数据库的SCN,但是指定的SCN是本地的还是远端的还是有意义的。 为了说明这种情况,创建一个JOB,定期进行数据的修改,以快速提高一个数据库的SCN: SQL> SELECT dbid, name FROM v$database; DBID NAME ———- ——— 452011237 ORAT2 SQL> SELECT COUNT(*) FROM t; COUNT(*) ———- 731791 SQL> BEGIN 2 FOR i IN 1..100000 loop 3 INSERT INTO t VALUES (i, ‘y’); … Continue reading
通过数据库链查询会导致源和目标库SCN同步
在通过数据库链执行跨数据库的查询时,Oracle会自动将两个数据库的SCN进行同步。 以前Eygle提到过这个问题,这次在讨论一个和远端数据库SCN有关的问题时,又碰到了这个问题,于是简单记录一下。 SQL> conn test/test@192.168.0.19:1666/ora102044 Connected. SQL> SELECT current_scn FROM v$database; CURRENT_SCN ———– 2745758 SQL> conn test/test@192.168.0.20:15210/orcl Connected. SQL> SELECT current_scn FROM v$database; CURRENT_SCN ———– 5642527 SQL> CREATE DATABASE link ora102044 2 CONNECT TO test 3 IDENTIFIED BY test 4 … Continue reading
ORA-600(kcratr_scan_lastbwr)错误
客户的测试环境中出现这个错误。 信息如下: 2012-03-22 11:10:24.991000 +08:00 Beginning crash recovery OF 1 threads parallel recovery started WITH 15 processes Started redo scan Hex dump OF (file 2, block 130960) IN trace file /oracle11r2/app/diag/rdbms/orcl/orcl/trace/orcl_ora_8087.trc Reading datafile ‘/oradata/orcl/sysaux01.dbf’ FOR corruption at rdba: 0x0081ff90 (file … Continue reading
RMAN-600(8201)错误的重现
前两天,客户的数据库在执行CATALOG方式的备份时出现了RMAN-600(8201)错误。由于比较了解客户的环境,在加上客户本身对于系统的了解,使得成功的模拟出这个错误。 RMAN-600(8201)错误:https://yangtingkun.net/?p=690 其实重现这个错误并不算太复杂,要求数据库的版本是10.2.0.3以下。 首先搭建一套DATA GUARD环境。然后在备库启用数据库的FLASHBACK功能,创建一个恢复点,然后将备库激活打开。备库打开后就可以关闭,然后重新MOUNT数据库,并利用FLASHBACK将数据库回滚到激活之前的恢复点,然后利用ALTER DATABASE CONVERT命令再次将这个数据库转化为物理备库,DATA GUARD环境恢复后,使备库应用日志一直到和主库保持一致,然后进行一次DATA GUARD的SWITCHOVER的操作,使得备库变成主库,主库变成备库。 这时,对新的主库创建CATALOG,执行REGISTER DATABASE后,执行show all命令,就会重新错误。 [orat1@hpserver2 ~]$ rman target / catalog rcat_user/rcat_password Recovery Manager: Release 10.2.0.3.0 – Production ON Sat Apr 4 20:51:56 2012 Copyright (c) 1982, 2005, Oracle. ALL rights reserved. connected … Continue reading
Posted in BUG
Tagged 8201, CATALOG, convert, data guard, failover, flashback, incarnation, register database, resetlogs, rman, RMAN-600, show all, SWITCHOVER
Leave a comment