诡异的OGG-01004 Database error 1403 no data found
配置某个客户OGG环境时,同事报告某个表数据没有同步过去错误是:2016-11-18 14:53:46 WARNING OGG-01004 Oracle GoldenGate Delivery for Oracle, rep_zt.prm: Aborted grouped transaction on '*', Database error 1403 (OCI Error ORA-01403: no data found, SQL <UPDATE /*+ RESTRICT_ALL_REF_CONS...
Oracle Connect by 单行变多行
create table my_t1( rowno number, wareid number, maxqty number, wareqty number)insert into my_t1 values(1, 100, 400, 500);insert into my_t1 values(2, 110, 240, 600);SELECT wareqty, maxqty, wareid, &nbs...
Oracle Scheduler Job未能按时启动
接到同事报告过来的一个问题,几个scheduler job不能按时运行。设置的是30秒一次,但是实际上几分钟,可能才运行一次。连到客户数据库,从scheduler的日志来看确实是这么回事。开始怀疑是job执行的过程有问题,不能在30秒之内完成。但是实际拿过来执行,没有处理数据,很快就完成了。重建作业之后问题依旧。于是查看...
ORA-56935: 现有数据泵作业正在使用其他版本的时区数据文件
将一个11.2.0.1的数据泵导出文件导入12.1.0.2版本时,出现如下错误连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit ProductionWith the Partitioning, OLAP, Advanced Analytics and Real Application Testing optionsORA-39006: 内部错误ORA-39065: DISPATCH 中出现意外的主进程异常错...
隐式类型转换(SYS_OP_C2C)-记一次SQL调优
对客户数据库生成的AWR报告中发现的一个简单的SQL引起了我的注意:SELECT* FROM t_ol_srcorder_m WHERE olorderno =:olorderno1 AND ROWNUM
使用USE_HASH Hint调优一个SQL语句
开发的同事写了个很长的SQL, 执行效率低下,于是找到我:SQL如下:点击(此处)折叠或打开SELECT w.wareid, w.warename, w.warespec, ...
记一次数据库高CPU占用率处理过程
接到同事电话之后,反馈说数据库CPU占用率居高不下, 上午9点以后基本在90%以上。零售前端操作较卡。第一反应获取了一份AWR报告。报告显示,DB Time与平时相比,达到了2,3倍之多。
ORA-08104 指定的索引正在被联机重建或...
ORA-08104: this index object 索引# is being online built or rebuilt尝试在一个表上通过create index .. online创建索引, 之后,因耗时太长,把session杀掉了drop索引时, 得到错误信息:ORA-08104可以通过如下脚本进行清理:DECLARE isclean BOOLEAN;BEGIN isclean := FALSE; WHI...
Oracle Regexp_Replace
SELECT regexp_replace('13,453,5', '([0-9]{2,3})', '''\1''') FROM dual;SQL> SELECT regexp_replace('13,453,5', '([0-9]{2,3})', '''\1''') FROM dual;REGEXP_REPLA------------'13','453',5这里的\1表示向后引用匹配要讲数字替换成前后均有单引号,正则表达式应该两侧都有括号, 否则,\1会被认为是...
只对某个特定的SQL语句开启10046 trace
原文地址:https://blogs.oracle.com/Database4CN/entry/%E5%8F%AA%E5%AF%B9%E6%9F%90%E4%B8%AA%E7%89%B9%E5%AE%9A%E7%9A%84sql%E8%AF%AD%E5%8F%A5%E5%BC%80%E5%90%AF10046_trace最近碰到了这样一个有趣的问题: 有一条SQL语句,大部分时间它的执行时间是几十个毫秒; 但是偶尔某次的执行时间会长于2秒钟。因为...
学习Oracle内核(cursor: pin S)
Oracle的buffer cache是SGA的一个重要组成部分,因此当遇到并发访问时,都需要通过锁机制来保护()。这个锁就是buffer pin。如果要读一个buffer, 先要获得共享的buffer pin锁。写则要获取独占的buffer pin锁。这里buffer pin锁就有了两种模式,一种是S(共享模式),另外则是X(排他模式或独占模式)。等待事件cursor: pin ...
【LOCK】V$LOCK视图中的ID1和ID2含义
在诊断有关锁等待这种数据库等常见故障的时候经常会用到V$LOCK视图,这个视图中的ID1和ID2的含义经常被提及。了解这两个字段的含义对理解V$LOCK视图很有意义。 本文简单对V$LOCK视图中的ID1和ID2含义进...
RMAN异机恢复异操作系统(Linux到Windows)
1. 在Windows上创建Oracle实例,服务 C:\Windows\system32>oradim-new -sid prod 实例已创建。2. 恢复spfile 启动数据库实例至nomount状态 pfile是从原数据库实例拷贝而来 #Oracle init.ora parameter file generated by instance prod on 06/22/201610:33:41...
Oracle PL/SQL INDICES
Indices关键字主要用于处理稀疏数组的处理。FORALL..IN 1..array.count, 当array稀疏时,会提示错误,某个元素不存在。这个时候,使用indices可以跳过此影响 FORALL i IN INDICES OF l_tab INSERT INTO forall_test VALUES l_tab (i);测试脚本:DECLARE TYPE t_forall_test_tab IS TABLE...
修改域名之后的数据库服务不能启动的问题解决过程
在客户现场这边,因客户网络调整,修改域名,重启了开发所使用的数据库服务器。重启完成后,Oracle数据库服务不能启动,手动启动时提示错误1053。 尝试改动了sqlnet.ora,将SQLNET.AUTHENTICATION_SERVICES= (NTS)改成了SQLNET.AUTHENTICATION_SERVICES= (NONE)。这个改动造成了“sqlplus / as sysdba”时提...
OGG强制删除replicat
GGSCI (WINDOWS-0QO8SQ0) 6> dblogin userid system, password *****Successfully logged into database.GGSCI (WINDOWS-0QO8SQ0) 7> delete rep2ERROR: Could not delete DB checkpoint for REPLICAT REP2 (OCI Error ORA-00942: table or view does not exist (status = 942). Deleting from checkpoint table ggat...
一次客户数据库CPU 100%处理过程
6月4日上午接到同事电话,客户数据库CPU使用率达到100%,已经不能进行正常业务。连接到数据库,首先创建了一个snapshot,产生了一个AWR报告。因为紧急,所以,同事要求重启数据库。于是重启数据库,并关闭了应用的某些功能(如脱机销售数据同步)。大概几分钟之后,数据库恢复正常。AWR报告dbtime异常进一步查看AWR报...
使用dbms_sqltune进行SQL优化
随着Oracle版本的进化,越来越多的自动化工具简化了数据库运维,优化时的工作,如SQL Access Advisor ,SQL Tuning Advisor等。这里简略记录一下使用DBMS_SQLTUNE package调优一个简单的SQL的几个步骤。准备工作:create table test_sqltune as select rownum id, trunc(dbms_random.value*1000000) amt from dualconnec...
使用ErrorStack进行Oracle错误跟踪及诊断
alter session set events '1722 trace name errorstack level 1';当一个存储过程比较复杂,可以对某个特定的Oracle错误代码,如ORA-01722 Invalid number进行跟踪,找到报错的SQL语句。这个在开发以及生产环境运维时相当有用。参考:http://mp.weixin.qq.com/s?__biz=MjM5MDAxOTk2MQ==&mid=402587120&idx=1&sn=1304b...
Linux常用命令
1. find 根据名称寻找文件: find /u01 -name "alert*.log" 忽略文件大小写 find /u01 -iname "alert*" 同时find多个匹配, alert*.log以及后缀名是dbf的文件 find /u01 \( -name "alert*.log" -o -iname "*.DBF" \)...