
Oracle数据库
huaishu
这个作者很懒,什么都没留下…
展开
-
ORA-00600: 内部错误代码
数据库drop tablespace XXX,同时rm删除文件,最后导致dba_data_files查看数据文件是offline,但是文件状态是可用。以上报错日志,10号文件导致内部服务器错误。select file#,relfile#,inc,status$,blocks,ts#,crscnwrp,crscnbas from file$ where file#=10;sele原创 2015-07-23 16:21:08 · 2339 阅读 · 0 评论 -
Thread 1 cannot allocate new log, sequence 210510
查看REDO日志组select group#,member from v$logfile;SQL> select * from v$logfile; GROUP# STATUS TYPE MEMBER IS_---------- ------- ------- -----------------------------原创 2013-11-22 15:44:27 · 6043 阅读 · 2 评论 -
Latch: cache buffer chains等待事件的学习
Latch: cache buffer chains等待时间的含义:“buffer cache中block的header是被放置到hash chains上,而hash chains又是放在hash bucket中,多个hash bucket被一个cache buffers chains latch保护。当多个session并发访问同一个数据块上的数据,每个session都要首先获得cach原创 2013-11-22 14:13:27 · 2838 阅读 · 0 评论 -
ORACLE性能优化
根据IO从高到低到SQL:SELECT * FROM ( SELECT PARSING_USER_ID, SORTS, COMMAND_TYPE, DISK_READS/(1+EXECUTIONS),first_load_time, sql_text, EXECUTIONS原创 2013-04-16 19:31:52 · 671 阅读 · 0 评论 -
oracle查看当前SQL
set lines 10000set pages 0select sq.SQL_TEXT from v$open_cursor oc, v$sql sq, v$session swhere oc.HASH_VALUE = sq.HASH_VALUE and s.SID = oc.SID and s.STATUS = 'ACTIVE' and s.US原创 2013-10-28 17:44:06 · 623 阅读 · 0 评论 -
ORA-27102: out of memory
修改SGA为20G后,数据库无法启动, ORA-27102: out of memory经过一番查找,发现是一个参数的设置的不对/etc/sysctl.conf的shmall shmall这个参数设置的值太小就会报ORA-27102: out of memory 对于32位系统,一页=4k,也就是4096字节。kernel.shmall =原创 2013-10-28 18:06:53 · 846 阅读 · 0 评论 -
db2 编译C 自定义函数
#include #include #include #include #include #include //Macro for iendity the blanks#define isSpaces(ch) (ch == ' ' || ch == '\t' || ch == '\r' || ch == '\b' || ch原创 2013-09-04 00:30:34 · 1026 阅读 · 0 评论 -
oracle 查询语句索引建议
--创建任务 DECLARE my_task_name VARCHAR2(30); my_sqltext CLOB; BEGIN my_sqltext := 'SELECT ID_CODE,ID_NAME FROM VIDS.TRACE_OFFLINE_hist T WHERE 1 =1 AND LOGOUT_原创 2013-08-30 16:15:37 · 989 阅读 · 0 评论 -
缩小数据文件尺寸报ORA-03297的处理办法
最近历史数据库磁盘空间不足,而有一个表空间有50个G容量,但是实际只占100m的空间,使用ALTER TABLE table SHRINK SPACE CASCAD后大部分数据文件可以调整,当试图调整其中一个数据文件尺寸的时候报RA-03297: file contains used data beyond requested RESIZE value说明这个文件不能通过降低hwm来释原创 2013-08-29 16:29:58 · 633 阅读 · 0 评论 -
Oracle drop 表以后空间无法回收
最近发现线上系统某个文件增长过快。检查发现很多临时表在此表空间中没有清除,手动drop临时表以后收缩表空间。alter table '||table_name ||' enable row movement;alter table '||table_name ||' shrink space cascade;alter database datafile '原创 2013-08-15 17:57:30 · 3813 阅读 · 0 评论 -
Oracle 查询计划分析
数据每月一张表,查询时数据合并。查看查询计划--------------------------------------------------------------------------------------------------------------------------------------------------------------| Id | Op原创 2013-08-13 10:28:54 · 945 阅读 · 0 评论 -
Heap size 3059K exceeds notification threshold (2048K)
发现数据alter.log日志中报出大量Heap size 3071K exceeds notification threshold (2048K)网上查找发现是数据库bugOracle10g中,在load较大的对象进library cache中时,会记录以上警告。在版本10.2.0.1中,这个定义大对象的阈值是2M,这是有隐含参数_kgl_large_heap_w原创 2013-08-21 16:42:08 · 1430 阅读 · 0 评论 -
java.sql.SQLException: ORA-01555: 快照过旧: 回退段号 11 过小
Caused by: java.sql.SQLException: ORA-01555: 快照过旧: 回退段号 11 (名称为 "_SYSSMU11$") 过小INFO | jvm 1 | 2013/08/21 12:52:32 | ORA-02063: 紧接着 line (起自 DB_ONLINE)INFO | jvm 1 | 2013/08/21 12:52:32原创 2013-08-21 13:57:48 · 9258 阅读 · 0 评论 -
ORACLE B树索引概念
索引与表一样,也属于段(segment)的一种。里面存放了用户的数据,跟表一样需要占用磁盘空间。只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样。在理解索引时,可以想象一本书,其中书的内容就相当于表里的数据,而书前面的目录就相当于该表的索引。同时,通常情况下,索引所占用的磁盘空间要比表要小的多,其主要作用是为了加快对数据的搜索速度,也可以用来保证数据的唯一性。原创 2013-07-27 00:04:05 · 1083 阅读 · 0 评论 -
一个引号引起的血案,ORACLE SQL 分页语句的错误
SELECT *FROM (SELECT rownum rn , t.TRACE_ID, t.LOGIN_AT, t.ID_CODE AS RID_CODE, t.ID_NAME AS RID_NAME, t.TRACE_ID AS RID_TRACE_ID, t.ID_TYPE AS RID_TYP原创 2013-11-11 10:55:18 · 872 阅读 · 0 评论 -
ora-01652无法通过128(在表空间temp中)扩展temp段
create index I_trace_hotel_1 on TRACE_HOTEL(ROOMNO,id_code) TABLESPACE TRACE_HOTEL_IDX nologging parallel 16*第 1 行出现错误:ORA-12801: 并行查询服务器 P005 中发出错误信号ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段创原创 2013-11-27 10:36:51 · 26008 阅读 · 0 评论 -
数据库连接过多问题
最近线上不断爆出数据库连接超时,表现1.应用无法连接数据库2.日志中c3p0不断报出time out排查:检查数据库中是否有过多sql语句,没有发现问题。select sid,serial#, status,PADDR,LOGON_TIME,program from v$session where status='ACTIVE'; \n select sq.SQL_原创 2015-07-01 10:14:29 · 2357 阅读 · 0 评论 -
oracle表锁问题
系统症状用户添加数据无法添加,日志正常输出,sql脚本直接在数据库执行,等待。判断可能是开发操作表后没有commit通过alter system killsession命令结束进程alter system kill session '6976,33967';--查询锁对象 select 'alter system kill session ''' || SID ||原创 2015-06-04 15:58:40 · 662 阅读 · 0 评论 -
oracle 整理表碎片
公司数据库10.2.0.1.0 通过命令set autotrace traceonly explain statselect count(1) from T;发现consistent gets 读取比表实际行数多10倍,可能是数据库删除太多数据导致。 0 recursive calls 0 db block gets 557965 consis原创 2015-05-21 15:56:09 · 542 阅读 · 0 评论 -
sqlplus传递参数shell
网上找到sqlplus提供参数给shell方法:1.sqlplus内部输出值[oracle@jumper oracle]$ cat a.shsqlplus -S "/ as sysdba" set heading offcol today noprintcolumn today new_val datselect to_char( sysdate, 'yyyy-mm-d原创 2015-05-14 11:05:29 · 3101 阅读 · 0 评论 -
linux sqlplus 安装配置
一、下载oracle 10g sqlplus软件http://www.oracle.com/technology/software/tech/oci/instantclient/index.htmloracle-instantclient-basic-10.2.0.4-1.i386.rpmoracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm原创 2014-09-04 18:10:16 · 10071 阅读 · 0 评论 -
ORACLE undo 空间大
UNDO空间2天变800G,时间紧迫,最终选择直接删除UNDO空间,补回数据。登录数据库1.修改参数文件Create pfile from spfile 2.查看不正常回滚段SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS WHERE TABLESPACE_NAME='UNDOTBS1';非ONL原创 2014-04-03 10:27:16 · 753 阅读 · 0 评论 -
Oracle 释放过度使用的Undo表空间
故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃;问题分析:产生问题的原因主要以下两点:1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况;2. 有较大事务没有收缩或者没有提交所导制;说 明:本问题在ORACLE系统管理中属于比较正常的一现象,日常维护多注意对磁盘空间的监控。备 份: (如果没有在线事务,可以原创 2014-01-07 09:55:24 · 24274 阅读 · 0 评论 -
ORACLE回滚段
最近数据负载奇高,检查undo表空间文件达到400G。创建回滚段 语法: CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITIAL integer[K|M]] [NEXT integer[K|M]]原创 2014-01-27 16:40:48 · 1235 阅读 · 0 评论 -
oracle undo 表空间 ——估算UNDO表空间的大小
最近发现实时数据库负载很高,数据库日志很多等待事件,检查IO正常,SQL查询也无问题。发现以前因为undo表空间满添加过文件,添加过好几个表空间文件。如何估算Oracle数据库所需的UNDO表空间的大小要确定Oracle需要的UNDO 表空间的大小,需要以下三条信息: UR 以秒为单位的UNDO_RETENTIONUPS 每秒生成的还原数据块的数量DBS原创 2014-01-07 21:40:50 · 12915 阅读 · 1 评论 -
ORACLE当前活动的SQL,CPU负载高问题
select s.USERNAME, sq.SQL_TEXT, s.LAST_CALL_ET from v$open_cursor oc, v$sql sq, v$session swhere oc.HASH_VALUE = sq.HASH_VALUE and s.SID = oc.SID and s.STATUS = 'ACTIVE' order by s.USERNA原创 2013-04-18 19:15:51 · 2342 阅读 · 0 评论 -
Checkpoint not complete造成oracle故障报告及解决方案
WARNING: inbound connection timed out (ORA-3136)Mon Jan 6 09:24:22 2014WARNING: inbound connection timed out (ORA-3136)Mon Jan 6 09:24:22 2014WARNING: inbound connection timed out (ORA-3136)原创 2014-01-06 10:07:39 · 5959 阅读 · 0 评论 -
ORACLE MOVE表空间
move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效(LOB类型例外)。做表空间转移之前,被转移表的用户必须在目的表空间上有使用表空间的权限,否则会报错:ORA-01950: no privileges on tablespace...表move分为1.普通表move2.分区表move3.LONG4.LOB大字段类型move5.索引的move通过rebui原创 2013-12-05 17:39:47 · 2545 阅读 · 0 评论 -
通过DBA_EXTENTS查看占用空间的表--释放表空间
1.找到数据文件对应的文件号select file#,name from v$datafile where name like '%LOADTBS.dbf';2.找到文件中最大的块号select max(block_id) from dba_extents where file_id=49;3.计算一下文件中最大使用块占用的位置select 39616145*8/1原创 2013-12-07 15:24:59 · 8534 阅读 · 0 评论 -
如何Shrink Undo表空间,释放过度占用的空间
登陆检查,发现是SYSAUX表空间空间用尽,不能扩展,尝试手工扩展SYSAUX表空间:alter database datafile '+ORADG/danaly/datafile/sysaux.266.600173881' resize 800mTue Nov 29 23:31:38 2005ORA-1237 signalled during: alter database datafi转载 2013-12-07 15:10:16 · 2717 阅读 · 0 评论 -
Oracle 索引概述
Oracle提供了多种不同类型的索引以供使用。简单地说,Oracle中包括如下索引: B*树索引:这些是我所说的“传统“索引。到目前为止,这是Oracle 和大多数其他数据库中最常用的索引。B*树的构造类似于二叉树,能根据键提供一行或一个行集的快速访问,通常只需很少的读操作就能找到正确的行。不过,需要注意重要的一点, ”B*树“中的”B“不代表二叉(binary) ,而代表平衡(bal原创 2013-07-26 23:38:16 · 596 阅读 · 0 评论 -
ORACLE数据库表概述
在这一章中,我们将讨论各种类型的数据库表,并介绍什么情况下想用哪种类型的数据库表(也就是说,在哪些情况下某种类型的表比其他类型更适用)。我们会强调表的物理存储特征:即数据如何组织和存储。 从前只有一种类型的表,这千真万确,原先确实只有一种“普通”表。管理这种表就像管理“一个堆”一样(下一节会给出有关的定义) 。后来,Oracle又增加 了几类更复杂的表。如今,除了堆组织表外,还有聚簇表原创 2013-07-26 23:51:55 · 653 阅读 · 0 评论 -
ORACLE最大连接数
第一步,在cmd命令行,输入sqlplus第二步,根据提示输入用户名与密码1. 查看processes和sessions参数 SQL> show parameter processes NAME TYPE VALUE db_writer_processes原创 2013-08-01 15:05:48 · 640 阅读 · 0 评论 -
Linux 内核参数 和 Oracle相关参数调整
Linux 内核参数的大小和Oracle 有很大的关闭,比如ORA-27102的错误,就是因为内核参数的大小不当造成。Upon startup of Linux database get ORA-27102: out of memory Linux-X86_64 Error: 28: No space left on device安装Oracle的时候,可以参考Oracle 的安装转载 2013-05-03 14:22:15 · 527 阅读 · 0 评论 -
如何用 SQL Tuning Advisor (STA) 优化SQL语句
ORACLE DBA 手记,参考互联网资料:在Oracle10g之前,优化SQL是个比较费力的技术活,不停的分析执行计划,加hint,分析统计信息等等。在10g中,Oracle推出了自己的SQL优化辅助工具: SQL优化器(SQL Tuning Advisor :STA),它是新的DBMS_SQLTUNE包。使用STA一定要保证优化器是CBO模式下。执行DBMS转载 2013-05-02 22:29:27 · 551 阅读 · 0 评论 -
Oracle undo 表空间管理
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要指定一个UNDO 表空间。 如果设为manual,系统启动后使用rollback segment方式存储undo信息。如果系统没有指定undo_management,那么转载 2013-05-16 16:47:40 · 549 阅读 · 0 评论 -
Oracle online redo log日志 (当前或非当前日志) 损坏之后的DB恢复
SQL>startup 之后报错ORA-00314:log 3 of thread 1 , expected sequence# doesn't match ORA-00312: online log 3 thread 1 :'/home/oracle/app/oracle/oradata/ora8/redo01.log'联机日志分为当前联机日志(current)和非当转载 2013-05-16 12:33:28 · 1057 阅读 · 0 评论 -
ORACLE执行计划的步骤和顺序
DBA手记笔记:先从最开头一直往右看,直到看到最右边的并列的地方,对于不并列的,靠右的先执行:对于并列的,靠上的先执行。 即并列的缩进块,从上往下执行,非并列的缩进块,从下往上执行。如下示例:Execution Plan---------------------------------------------------------- 0 S转载 2013-05-02 19:31:47 · 643 阅读 · 0 评论 -
ORACLE将表cache进SGA
尝试将表缓存进buffer pool,并长期keep在LRU热端,BUFFER_POOL和CACHE同时指定,用BUFFER_POOL来指定存储的缓冲池。alter table T_FLY cache;alter table T_FLY storage(buffer_pool keep);因为内存空间是有限的,所以oracle采用LRU算法来调度谁来原创 2013-05-02 15:12:12 · 885 阅读 · 0 评论 -
linux下Oracle通过设置大内存页解决使用swap分区问题
该服务器的内存为8G,SGA设置为4G,PGA设置为1G。操作系统为64位。 按照道理,即使内存发生不够的情况,应该是磁盘读写变得更加激烈,而不是开始频繁的使用swap交换分区,沿着这个思路,寻找相关资料,发现如果配置大内存页可以强行把SGA锁定到内存中,大内存页是不允许被交换的。而同时相关资料也说明,在内存比较大的情况下,当系统内存为8G以上时,如果不采用大内存页(2M),那么原创 2013-04-05 23:38:38 · 1072 阅读 · 0 评论