Tag Archives: update

ORA-7445(_intel_fast_memcpy.A)错误

在10.2.0.4 RAC for X86-64环境上出现了ORA-7445[_intel_fast_memcpy.A]的错误。 以前碰到过几次的memcpy有关的错误,但是这个错误函数是第一次碰到: Sat Apr 7 17:27:11 2012 Errors IN file /opt/app/oracle/admin/orcl/bdump/orcl1_j002_16579.trc: ORA-07445: exception encountered: core dump [_intel_fast_memcpy.A()+10] [SIGSEGV] [Address NOT mapped TO object] [0x2A9734C000] [] []Sat Apr 7 17:27:11 2012 Errors in file /opt/app/oracle/admin/orcl/bdump/orcl1_j002_16579.trc: ORA-07445: exception encountered: … Continue reading

Posted in BUG | Tagged , , , | Leave a comment

ODA一键式升级

ODA另外一个值得称道的方便之处,就是一键式升级。 数据库的升级本身就是比较麻烦的事情,不谈跨大版本的升级,仅仅是PSR的升级也包括很多的步骤,即使是一个PSU的升级,同样也不是一个简单的工作。如果是RAC环境,那么恭喜你,工作量DOUBLE都不止。 那么对于ODA而言,除了RAC架构之外,还有自身的ILON以及管理工具要维护,因此整个环境的升级一定是一个非常烦琐的工作。而ODA的最大目标就是简化工作,因此整个ODA硬件及软件环境这个非常烦琐的操作被简化为几个命令完成。 当前的ODA管理工具oak版本为2.2.0.0.0,包含的数据库版本为11.2.0.3.2,下面的测试将oak升级到2.3.0.0.0,而数据库的版本相应的升级到11.2.0.3.3。 首先需要从MOS上下载补丁文件:p13982331_23000_Linux-x86-64.zip,这个文件打包了所有ODA升级需要的文件。 上传到/tmp目录后,通过unpack选项进行解压: [root@odaenmo1 ~]# cd /opt/oracle/oak/bin [root@odaenmo1 bin]# ./oakcli unpack –package /tmp/p13982331_23000_Linux-x86-64.zip Unpacking takes a while, pls wait…. Successfully unpacked the files TO repository.[root@odaenmo1 ~]# cd /opt/oracle/oak/bin [root@odaenmo1 bin]# ./oakcli unpack –package /tmp/p13982331_23000_Linux-x86-64.zip Unpacking takes a … Continue reading

Posted in ORACLE | Tagged , , , , , , , , , , | Leave a comment

利用触发器解决更新主键冲突的问题

有朋友问我能否用触发器实现更新数据时,如果发现主键已经存在,则将冲突的主键更新为当前记录之前的主键值。 简单的说,如果表中存在主键为1和2的记录,如果一条UPDATE语句将1更新为2,那么想要实现的功能是为了确保这个UPDATE可以执行成功,在后台自动将ID为2的记录更新为1。 这个功能应该可以实现,但是直接在触发器中肯定无法实现,因为这是一个标准的变异表问题。而且即使是采用自治事务的方式,也需要小心,因为要修改原有的记录就必须通过UPDATE实现,而这个UPDATE又会导致触发器的触发,如果处理不当,就会导致循环触发。 SQL> CREATE TABLE T (ID NUMBER, NAME VARCHAR2(30), CONSTRAINT PK_T PRIMARY KEY (ID)); TABLE created. SQL> CREATE OR REPLACE PROCEDURE P_UPDATE_T (P_NEW NUMBER, P_OLD NUMBER) AS 2 BEGIN 3 FOR I IN (SELECT ID FROM T WHERE … Continue reading

Posted in ORACLE | Tagged , , , , | Leave a comment

ORA-600(13030)错误

在ITPUB上看到的一个UPDATE RETURN引发的ORA-600错误。 告警日志中错误如下: Mon Jan 16 09:50:13 2012 Errors IN file /DATA/dir1/app/oracle/admin/moyzkf1/udump/moyzkf1_ora_27801.trc: ORA-00600: internal error code, arguments: [13030], [1], [], [], [], [], [], []Mon Jan 16 09:50:13 2012 Errors in file /data/dir1/app/oracle/admin/moyzkf1/udump/moyzkf1_ora_27801.trc: ORA-00600: internal error code, arguments: [13030], [1], … Continue reading

Posted in BUG | Tagged , , , | Leave a comment

插入LOB对象的方法

其实以前写过类似的文章,但是都是在其他例子中,没有专门针对这个问题进行过描述,最近发现,还有很多人不清楚,插入一个包含LOB对象的记录需要几个步骤。 在客户的环境中,发现插入一条包含LOB的记录,居然用了四个步骤: SQL> CREATE TABLE T_LOB (ID NUMBER, NAME VARCHAR2(30), CONTENTS CLOB); 表已创建。 SQL> DECLARE 2 V_CLOB CLOB; 3 V_STR VARCHAR2(32767) := LPAD(’A’, 4000, ‘A’); 4 BEGIN 5 INSERT INTO T_LOB 6 VALUES (1, ‘A’, EMPTY_CLOB()); 7 SELECT CONTENTS 8 … Continue reading

Posted in ORACLE | Tagged , , , , | Leave a comment