Archivelog Calendar

查询Oracle归档日志产生频率,以日历形式展现:. SELECT * FROM (SELECT A.*, B.SIZE_GB, DECODE(C.SIZE_GB, NULL, 0, C.SIZE_GB) DELETED_GB, B.SIZE_GB - DECODE(C.SIZE_GB, NULL, 0, C.SIZE_GB) REMAIN_GB FROM (SELECT * FROM (SELECT TO_DATE(b.date_time, 'DD/MM/YYYY') dt, TO_CHAR(TO_DATE(b.date_time, 'DD/MM/YYYY'), 'DAY') DAY, "00", "01",  "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23",

insert select语句报ORA-32690:Hast Table Infrastructure ran out of memory

系统环境 OS:SUNOS 5.10 DB:Oracle 10.2.0.4.0 问题现象 用户在pl/sql developer上执行insert select 语句报报ORA-32690,如图: 问题分析 根据文档(Query crash with ORA-32690 -- Bug 6471770. (文档 ID 960690.1))得知,该问题是由于Bug 6471770所致。 Bug 6471770影响的版本:10.2.0.3.0及之后的版本,并在11.2中被修复。 MOS上给出的解决办法: Cause This seems to be Bug 6471770. - Known bug on database version 10.2.0.3. - The workaround is resolving the issue. The bug is fixed in 11.2 release. Solution: So

Oracle FAQ

整理硬盘,N年前整理的一份FAQ:   1. Q: Oracle 的安装复杂么? 我是否可以像安装其他程序一样,通过setup程序来安装Oracle? A: Oracle安装在Windows平台,确实可以通过点击setup程序很顺利的完成安装,但是安装完成后的设置操作需要对Oracle的运行机制有一定了解才能保证你的Oracle合理高效运行; Oracle软件在Unix平台安装相对复杂,虽然Oracle提供了基于Java的安装界面,保证了各平台安装界面的一致;但是要完成在Unix平台的安装,需要了解对应的操作系统补丁安装、内核参数调整;X窗口设置等内容,没有安装经验很难独立完成安装。 2. Q:如何确定当前的Oracle版本? A: 当一个系统中安装有多个版本的ORACLE时,可以按照下面的方法来确定当前的Oracle版本:   1、比较“/etc/oratab”与$ORACLE_HOME环境变量;   2、进入ORACLE数据库中,执行SELECT * FROM V$INSTANCE; 3、执行select * from v$version 3. 什么是Oracle的隐藏参数,都有什么作用? A: Oracle中存在这“大量”的以”_”开头的参数,这些参数需要在Oracle专家的指导下使用,在不充分了解其含义、危害的情况下使用,会带来不可预知的副作用;应该说好的系统不会需要设置这些参数,不要迷信这些隐藏的东西。 4. Oracle都有哪些数据类型? A: CHAR 固定长度字符串 最大长度2000 bytes   VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749   NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes   NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes   DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS)   LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作   RAW

Analyze Oracle Listener Log using RingoJS

分析linstener.log(使用RingoJS) 在listener.log中,会记录每一次建立连接的记录,所以在做Oracle 连接相关的问题分析时候,可能需要对listener.log中建立连接的信息进行统计分析。 一些简单的分析需求,可以使用Linux/Unix shell的一些命令行工具来进行,比如grep,wc等,如果想进行一些复杂的分析(某些时间段、某些IP、某些客户端程序建立连接情况),使用perl、ruby之类的脚本语言,配合regular expression,效果也还好;但是做这种类型的分析其实SQL语句是最强大的,此文就介绍一下将listener.log的信息结构化到关系数据库中,然后利用SQL语句进行分析涉及的相关技术。使用的工具介绍:           RingoJS, javascript解释器,Mozilla使用Java语言实现了一个JavaScript Engine,叫做Rhino,RingoJS是基于Rhino实现的一个工具,常用来和Node.js作对比,都是服务器端JavaScript环境,除了JavaScript语言本身的强大功能外,提供丰富的library,文件IO,网络通讯非常易于实现。           PostgreSQL数据库,Oracle太过庞大了,在我的工作电脑上,已经不再安装Oracle了,PostgreSQL是替代者。           sql-store,RingoJS环境中的ORM组件,用于实现JavaScript对象和关系数据库表的映射。 listener.log的结构: <TIMESTAMP> * <CONNECT_DATA> * <CLIENT_ADDRESS> * <COMMAND> * <SERVICE_NAME> * <RETURN_CODE> 当然,在listener.log中,也存在其他信息,不符合这个格式,那部分信息我们只是显示出来,不存储到数据库中分析。 RingoJS实现: var fs = require('fs'); // 使用ringojs fs(Filesystem)组件,来进行文件读写 // 创建到PostgreSQL的数据库连接var {Store, ConnectionPool} = require("ringo-sqlstore");var store =