oracle
文章平均质量分 59
wish503
这个作者很懒,什么都没留下…
展开
-
ORA-01775: looping chain of synonyms
今天使用expdp导出一个schema报错 :ORA-01775: looping chain of synonyms怀疑是对象删除但是同义词还遗留的原因,查询一下果然是select 'drop public synonyms '||synonym_name||' ;' from dba_synonyms where table_owner=upper('ivasdata') and sy原创 2017-08-11 19:25:44 · 8948 阅读 · 0 评论 -
关于global index、local index、global partition index的适用场景
今天看到大牛们的讨论,把他们的总结记录下来,供自己参考学习。1.一个大原则,能创建local index的尽量创建local index。无论从分区管理角度,还是查询性能local index都有优势;2.那什么是否无法创建local index的情况呢?那就是查询条件和分区键值不符的情况,例如主键是保单号,分区键是日期,又要通过保单号查询,这种情况下,将保单号创建为global inde转载 2017-08-11 17:39:33 · 5009 阅读 · 0 评论 -
使用flashback恢复数据
一、flashback query先查询一下当前的SCN,这样好回退。select dbms_flashback.get_system_change_number from dual;select current_scn from v$database;适应范围:表中的数据持续变化,需要看到某个时间点错误删除修改了某些记录,可以根据这些记录再进行数据恢复。1恢复被删除了的储存过程...原创 2017-08-17 10:42:56 · 707 阅读 · 0 评论 -
ORA-08104: 该索引对象79931正在被联机建立或重建
现象:执行重建索引是报错alter index CLAIMDATA.CLM_ATP_TASK_TYPE REBUILD ONLINE;ORA-08104: 该索引对象79931正在被联机建立或重建 解决:SQL> DECLARE 2 RetVal BOOLEAN; 3 OBJECT_ID BINARY_INTEGER; 4 WAIT_FOR_LOCK原创 2017-08-08 19:16:22 · 1725 阅读 · 0 评论 -
创建trigger,审计和禁止用户的密码修改
1、审计用户 TEST 的密码修改。1)创建审计记录表,记录密码修改。create table FC.record_passwd_change as select SID, username, osuser, machine, program, logon_time from v$session where 1 = 2;2)创建tiggercreate原创 2017-07-19 21:54:14 · 643 阅读 · 0 评论 -
oracle的redo和undo
oracle实例在crash后,undo如何恢复的比较难于理解。下面详细描述了undo 的DML操作是如何保存在undo tablespace和在线归档日志中的。然后在分析下undo保存两份信息的原因。首先,看看undo是如何保存在undo tablespace中的。–oracle redo 包含 undo– Checkpointing 导致. 脏块被写到数据文件中转载 2017-07-31 16:46:11 · 502 阅读 · 0 评论 -
创建PKG,实现kill session
kill session权限是属于DBA权限的,但是不能直接给DBA以外的用户授DBA权限,所以创建一个PKG给用户调用,实现kill session。create or replace procedure dbmgr.prc_kill_session(v_username IN varchar2,v_sid IN number ,v_serial# IN number)is转载 2017-04-27 16:21:09 · 517 阅读 · 0 评论 -
推荐禁用11.2.0.3及以上版本的隐含参数_use_adaptive_log_file_sync
防止出现log file sync出现过长的情况,需要将所有11.2.0.3版本及以上版本的参数_use_adaptive_log_file_sync=false.可以直接修改生效,不需要重启库。alter system set "_use_adaptive_log_file_sync"=false;原创 2017-04-06 21:34:42 · 2203 阅读 · 0 评论 -
ORA-39700: database must be opened with UPGRADE option
环境 oracle 11G+linux+ASMA库test1的oracle软件版本11.2.0.3.9B库test2的oracle软件版本11.2.0.4.160119背景:用A库test1的备份还原成一套B库test2,但是由于两个库的软件版本不一致,没注意版本,直接open了。是从低版本到高版本,故open时报错ORA-39700: database must be原创 2017-10-19 15:37:55 · 623 阅读 · 0 评论 -
oracle有buffer等待事件,根据file#和block#确定objects
Wait until a buffer becomes available.There are four reasons that a session cannot pin a buffer in the buffer cache, and a separate wait event exists for each reason:1."buffer busy waits": A sessi原创 2017-10-20 14:22:12 · 474 阅读 · 0 评论 -
oracle 11G 软件克隆安装(单实例和RAC)
准备工作:将已安装oracle软件的oracle_home的tar成包,传至目标主机的指定目录,然后tar包解tar。单实例软件克隆(小机):1 配置profile,并执行生效。vi prof_testORACLE_SID=testORACLE_BASE=/paic/hq/t1cfs/data/app/oracleORACLE_HOME=$ORACLE_BASE/pro原创 2017-10-17 17:25:12 · 1715 阅读 · 0 评论 -
oracle统计信息
收集表的统计信息begin dbms_stats.gather_table_stats(ownname => 'TESTDATA', tabname => 'TEST_TABLE', estimate_percen原创 2017-11-06 15:50:30 · 390 阅读 · 0 评论 -
rman duplicate
11gR2利用active rman duplicate,源端归档模式下不停机复制一套新环境。以testa复制到testb为例,具体步骤如下:1.源端库TESTA打开归档模式SYS@testa> archive log list;Database log mode No Archive ModeAutomatic archival Disab原创 2017-11-06 15:23:35 · 1271 阅读 · 0 评论 -
rman auxiliary
目的,将oracle库TESTA的数据覆盖TESTB库。1源端和目标端重建密码文件TESTA:orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=test1234 force=y TESTB:orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=te原创 2017-11-06 14:02:07 · 1334 阅读 · 0 评论 -
oracle隐含参数"_system_trig_enabled"
可以禁用所有的trigger。SQL> ALTER SYSTEM SET "_system_trig_enabled"=false; System altered.原创 2016-05-16 15:59:37 · 3021 阅读 · 0 评论 -
oracle查询隐含参数
SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describFROM SYS.x$ksppi x, SYS.x$ksppcv yWHERE x.inst_id = USERENV ('Instance')AND y.inst_id = USERENV ('Instance')AND x.indx = y.indx翻译 2017-02-22 20:21:00 · 289 阅读 · 0 评论 -
oracle数据库SQL相关指标统计分析
---查询sql当前的指标:select a.HASH_VALUE, a.sql_text, a.PLAN_HASH_VALUE, round(a.BUFFER_GETS/a.EXECUTIONS) bg_per_exec, round(a.CPU_TIME/1000/a.EXECUTIONS) cpu_per_exec, ro转载 2016-11-29 22:35:34 · 681 阅读 · 0 评论 -
关于Oracle数据库IO等待相关指标的较为系统的分析方法
我们在IO问题发生时间段:1.可以查dba_hist_system_event 来看该IO相关等待时间的平均响应时间的变化趋势, 2.直接查dba_hist_event_histogram或者sys.WRH$_EVENT_HISTOGRAM ,来看该IO相关等待事件的等待时间直方图分布。3.我们也可以从整体数据库的IO变化量上(dba_hist_sysstat),看出问题时段的转载 2016-11-29 22:30:21 · 2288 阅读 · 0 评论 -
找出对oracle测试库的表执行delete的用户
用户反映测试库的表数据被删除了,需要找出是谁删除的。可以通过这个sql查出。select Q.sql_text, Q.SQL_ID, S.SAMPLE_TIME, S.SESSION_ID, S.USER_ID, S.ACTION, C.OSUSER, S.MACHINE原创 2016-04-23 16:04:35 · 634 阅读 · 1 评论 -
一些常用查询性能的sql
--、监控等待事件select event, sum(decode(wait_time, 0, 0, 1)) prev, sum(decode(wait_time, 0, 1, 0)) curr, count(*) from v$session_wait group by event order by 4;--利用v$syste原创 2016-05-11 11:22:13 · 367 阅读 · 0 评论 -
ORACLE SPA
--------------------------------------------------------Step1: 创建名称为STS_NAME_TEST 的SQL_SET.---------------------------------------------------BEGINDBMS_SQLTUNE.CREATE_SQLSET(SQLSET_NAME =>原创 2016-07-29 17:23:26 · 2341 阅读 · 0 评论 -
oracle trace文件
1 查询trace路径SELECT VALUE FROM V$PARAMETER WHERE NAME = 'user_dump_dest';2 find对应的trace file,oracle版本不同,查询方法不同oracle 10g: select d.value || '/' || lower(rtrim(i.instance, chr(0))) || '_ora_原创 2016-07-27 17:10:26 · 293 阅读 · 0 评论 -
ORACLE 11g的密码错误延时验证
应用(JDBC)的密码过期或者修改了,应用还是用老的密码在连,由于11g的密码错误延时验证,造成library cache lock。一开始检查可以看到,处于library cache lock都是JDBC的应用,sql id是空(即还没有开始跑sql)。检查ash,发现应用唯一的一个sql id是b84cknyvnyq25,是update user$ 表。这就很容易让人联系起来登原创 2016-05-16 17:12:37 · 2204 阅读 · 0 评论 -
使用sys用户删除其他schema下的dblink
使用sys用户删除其他schema下的dblinkCreate or replace procedure Drop_DbLink(schemaName varchar2, dbLink varchar2 ) is plsql varchar2(1000); cur number; uid nu转载 2016-05-13 16:31:56 · 932 阅读 · 0 评论 -
数据库日常管理常用sql脚本
/ 目录: ###########查询类########### 关于session: kill session和kill -9 查询session信息以及process信息 查找产生大量物理读的进程 查找产生redo log过快的进程转载 2016-11-29 22:43:38 · 2898 阅读 · 0 评论 -
关于direct path read
描述:用户反应数据库任何操作都很慢,然后我查询到当前有大量的direct path read等待事件。数据库版本是oracle 11G。诊断与解决步骤:1查询当前等待事件,主要是direct path readselect event, count(1) from v$session_wait WHERE EVENT NOT IN (select E.原创 2016-11-30 17:39:13 · 3471 阅读 · 0 评论 -
latch: cache buffers chains导致CPU冲高的问题
今天同事分享了一个特别好的案例,所以记录到我的博客现象:CPU冲高,大量latch: cache buffers chains等待事件.分析过程:1.根据等待事件查询出SQL信息。select t.BLOCKING_SESSION,t.BLOCKING_SESSION_STATUS,t.sql_id,t.SQL_HASH_VALUE,t.* from v$session t w转载 2016-09-27 11:17:12 · 3737 阅读 · 0 评论 -
oracle 12C 软件克隆安装
环境 12C R1+linux+ASM将已安装的12CR1的oracle_home的tar成包,传至目标主机的指定目录,然后tar包解tar。然后开始安装:cnsh281336:test> $ORACLE_HOME/perl/bin/perl $ORACLE_HOME/clo原创 2017-03-15 17:35:42 · 1186 阅读 · 0 评论 -
Error accessing PRODUCT_USER_PROFILE
oracle 10g ,创建完用户之后报warningSQL> conn OPMDATA / paic1234;Error accessing PRODUCT_USER_PROFILEWarning: Product user profile information not loaded!You may need to run PUPBLD.SQL as SYSTEM原创 2017-03-06 16:49:33 · 646 阅读 · 0 评论 -
调用CONTEXT上下文报错,ORA-01031: 权限不足 ,ORA-06512: 在 "SYS.DBMS_SESSION"
上下文处理:导入一个用户后,执行调用上下文报错SQL> execute pkg_clcp_cldm_utils.proc_set_cldm_context('AS','AS'); begin pkg_clcp_cldm_utils.proc_set_cldm_context('AS','AS'); end; ORA-01031: 权限不足 ORA-06512: 在 "S原创 2017-02-17 15:04:30 · 8121 阅读 · 0 评论 -
稳定执行计划操作手册--oracle库
稳定执行计划操作手册一、 概述本文档列举了不同版本间稳定执行计划的方法,给出了详细的操作步骤。考虑到可阅读性及可操作性,未做过多的原理介绍,需要使用者在操作前已经具备相关技术知识,以便操作起来得心应手。Outline 的使用前提Outline的功能是为了保存sql执行计划,以保证sql在db配置或者数据变化时每次执行时都使用该执行计划。Outline的实现是通过保存生成转载 2017-01-05 20:57:36 · 730 阅读 · 0 评论 -
10046跟踪session
10046可以跟踪其他session1.得到spidselect spid from v$session s ,v$process p where s.paddr=p.addr and s.sid =13 ;2 开启10046SQL> oradebug setospid 26112Oracle pid: 81, Unix process pid: 26112, ima原创 2016-07-27 17:31:40 · 728 阅读 · 0 评论 -
oracle锁相关
--锁查询select * from v$lock where sid in ( select sid from v$lock where id1 in (select object_id from dba_objects原创 2016-12-01 21:30:20 · 203 阅读 · 0 评论 -
大量read by other session导致oracle性能低
场景:测试库压力测试,用户反应oracle库很慢很慢1检查等待事件:select event,count(1) from v$session_wait group by event order by 2 desc;发现 read by other session 排第一。2找到read by other session的SQL,同时可以取一个AWR报告看看TOP SQL,都指向原创 2016-07-29 15:46:26 · 7352 阅读 · 1 评论 -
oracle数据库event堵塞问题分析
数据库发生了堵塞,例如大量latch free,大量log file sync, 大量enq , 需要尽快查看并备份当前的v$active_session_history表,以免1s一次的统计数据被覆盖。 被覆盖后只能查dba_hist_active_sess_history,根据snapshot的频率不同(一般15分钟一次)而记录的历史统计数据。关键点: 找到大量堵塞event的ho转载 2016-11-29 22:33:28 · 495 阅读 · 0 评论 -
oracle insert乱码问题
问题描述:windows客户端执行insert,中文是乱码的。windows客户端的字符集:SQL> select userenv('language') from dual;USERENV('LANGUAGE')----------------------------------------------------AMERICAN_AMERICA.ZHS16GBK o原创 2016-05-09 14:19:02 · 1598 阅读 · 0 评论