随笔分类 -  --100 Oracle

这里记录我的Oracle学习日记
摘要:导读: 最近数据库经常出现会话阻塞的报警,过一会又会自动消失,昨天晚上恰好发生了一次,于是赶紧进行了查看,不看不知道,一看吓一跳,发现是由dataguard引起的log file sync等待。我们知道,通常log file sync等待都是由频繁写日志造成的,这次居然是由DG环境引起的。 (一)问 阅读全文
posted @ 2020-11-26 19:12 gegeman 阅读(1917) 评论(0) 推荐(0) 编辑
摘要:(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该返回100多万笔数据的,但是执行计划只返回了2条数据,比较奇怪,稍微思考,肯定是统计信息出问题了。explain plan for select * from TABLE_***_NOTIFY where be_ 阅读全文
posted @ 2020-06-04 09:30 gegeman 阅读(3562) 评论(0) 推荐(0) 编辑
摘要:在写 Oracle session相关数据字典(一) 这篇文章时,提到使用v$session视图的树形查询可以得到Oracle锁树,这样就便于我们找出阻塞会话的源头,但是仅仅可以在单机环境中使用。今天把单机和RAC的阻塞树都整理了一下,话不多说,直接开干,奥利给。(一)单机的阻塞会话树单机的不再测试 阅读全文
posted @ 2020-05-25 22:59 gegeman 阅读(2583) 评论(0) 推荐(1) 编辑
摘要:(1)创建表test01 create table test01 ( col1 number, col2 number, col3 date, col4 varchar2(30), col5 varchar2(100) ); (2)创建自增序列 CREATE SEQUENCE seq01 START 阅读全文
posted @ 2020-04-21 20:54 gegeman 阅读(1203) 评论(0) 推荐(0) 编辑
摘要:在Oracle数据库中,我们使用session相关视图(v$session、v$active_session_history,dba_hist_active_session_history等)查找问题时,往往可以定位到相应的主机名,但是,想要更进一步查找IP地址时,却发现各个数据字典表里面都没有记录IP。而开发人员和领导往往更关注IP地址,那么,如何让Oracle数据库显示IP呢? 可以创建系统触... 阅读全文
posted @ 2020-01-13 22:35 gegeman 阅读(2412) 评论(0) 推荐(1) 编辑
摘要:(一)什么是间隔分区 间隔分区是Oracle 11.1引入的新功能,通过该功能,可以在输入相应分区的数据时自动创建相应的分区。在没有间隔分区技术之前,DBA通常会创建一个maxvalue分区以避免ORA-14400:插入的分区键值不能映射到任何分区("inserted partition key d 阅读全文
posted @ 2019-11-16 18:29 gegeman 阅读(13981) 评论(0) 推荐(1) 编辑
摘要:(一)问题背景 最近在生产环境中,开发人员误操作,使用truncate将oracle数据库某个表的数据全部删除了,在删除之后,开发人员发现自己闯祸了,于是联系值班的DBA进行紧急数据恢复。 经过分析,表被truncate后,使用一般的闪回表、闪回查询、闪回事物等方法,是不可能将数据找回来的,可以使用 阅读全文
posted @ 2019-09-27 22:14 gegeman 阅读(2973) 评论(0) 推荐(1) 编辑
摘要:Oracle 12cR1 RAC集群安装文档:Oracle 12cR1 RAC集群安装(一)--环境准备Oracle 12cR1 RAC集群安装(二)--使用图形界面安装Oracle 12cR1 RAC集群安装(三)--静默安装 在上一篇文档【Oracle 12cR1 RAC集群安装(一)--环境准 阅读全文
posted @ 2019-08-14 22:48 gegeman 阅读(2104) 评论(0) 推荐(0) 编辑
摘要:(一)ASMM和AMM 在Oracle 10g时,Orale推出ASMM(Automatic Shared Memory Managed),实现了SGA和PGA各自内部的自调节。在Oracle 11g,又推出了AMM(Automatic Memory managed),实现了SGA和PGA的统筹管理 阅读全文
posted @ 2019-07-26 10:44 gegeman 阅读(1933) 评论(0) 推荐(0) 编辑
摘要:需求:密码要求3个月变更一次,不管是不是业务密码,均需修改。对于非业务账号,直接修改即可,没有什么影响,SQL语句为: 对于业务账号,密码是不能随便修改的,因为可能会影响到业务运行,如果知道密码,直接修改为原密码即可,如果不知道密码,可以操作:step1:查看数据字典sys.user$,确认用户的加 阅读全文
posted @ 2019-07-12 11:27 gegeman 阅读(1139) 评论(0) 推荐(0) 编辑
摘要:(一)分析函数语法 function_name(<argument>,<argument>...) over(<partition by clause><order by clause> <windowing_clause>); function_name:函数名称,如count(),sum(),a 阅读全文
posted @ 2019-03-26 16:18 gegeman 阅读(4297) 评论(1) 推荐(0) 编辑
摘要:操作系统版本:HP-UNIX B.11.31 数据库版本:11.2.0.4 RAC (一) 问题概要 (1)在AWR报告的Top 10 Foreground Events中发现reliable message占用了较高的DB Time,如下: Top 10 Foreground Events by 阅读全文
posted @ 2019-03-12 22:21 gegeman 阅读(4463) 评论(0) 推荐(0) 编辑
摘要:数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增,大约到了80个会话。通过查看EM的SQL信息,发现等待产生于SQL语句 select TIMEKEYID.nextval from dual (二)问题追踪获取AWR报告观察, 阅读全文
posted @ 2019-02-23 17:03 gegeman 阅读(2944) 评论(2) 推荐(0) 编辑
摘要:(一)session相关视图 (1)视图 v$session v$active_session_history dba_hist_active_session_history 如果是多节点数据库,v$session和v$active_hist_session_history仅获得单节点的信息,可以使 阅读全文
posted @ 2019-02-14 22:42 gegeman 阅读(2082) 评论(0) 推荐(1) 编辑
摘要:使用Oracle的在线重定义技术,可以将Oracle的普通表改为分区表。操作如下: STEP1:测试表是否可以在线重定义,这里以unixdev数据库的LIJIAMAN.BSTEST为例 如果表上没有主键,则会报错:SQL> exec dbms_redefinition.start_redef_tab 阅读全文
posted @ 2019-02-12 23:01 gegeman 阅读(1641) 评论(0) 推荐(0) 编辑
摘要:(一)DBMS_RANDOM包信息 DBMS_RANDOM包包含3个存储过程,4个函数,1个类型,一共8个模块,如下。 (二)各个模块的用法 (2.1)dbms_random.value ( function) 如果不输入任何参数,该函数默认返回一个0到1之间的随机数字。准确的说,该小数取值范围为[ 阅读全文
posted @ 2019-01-27 22:17 gegeman 阅读(2140) 评论(0) 推荐(0) 编辑
摘要:继上次删除分区表的分区遇到ORA-01502错误后[详细见链接:Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引的分区处于不可用状态],最近在split分区的时候又遇到了这个问题。这里记录一下该问题是如何产生的,以及如何去解决。 (一)目的 在生产中,我们的大多数分区表都是按照 阅读全文
posted @ 2018-11-11 22:35 gegeman 阅读(2596) 评论(0) 推荐(0) 编辑
摘要:在查看表空间的使用情况的时候,发现有几个LOBSEGMENT、LOBINDEX类型的对象占用了大量的空间。于是想找出那些表占用了大量的空间,以便于清理。 Oracle对BLOB类型的定义为:存储大型的、未被结构化的的变长二进制数据(如二进制文件、图片文件、音频和视频等非文本文件),在Oracle11 阅读全文
posted @ 2018-08-21 15:17 gegeman 阅读(9563) 评论(0) 推荐(0) 编辑
摘要:Oracle 11g默认用户密码会在使用180天后过期,我们可以通过dba_users数据字典看一下用户的信息。 结果如下: 我们可以看到账号的创建时间与过期时间相差180天。对于生产系统,账号是不能发生变动的,因此我们希望能够将账号的过期时间改为:永不过期。如何修改呢?在Oracle数据库中,用户 阅读全文
posted @ 2018-07-26 15:45 gegeman 阅读(960) 评论(0) 推荐(0) 编辑
摘要:OS 版本 :HP-UX B.11.31Oracle版本:11.2.0.4 (RAC) (一)问题描述 最近发现无法连接上数据库,报错信息为“ORA-00020:maximum number of processes (3000) exceeded”,很明显是数据库的进程数量已经达到了最大值,可用过 阅读全文
posted @ 2018-07-24 18:55 gegeman 阅读(515) 评论(0) 推荐(0) 编辑