简单了解EXT4文件系统
最近看到了有EXT4的文件系统的介绍,找了一下这个升级版的文件系统的NEW FEATURE:1 Multiblock Allocation 2 Delayed Allocation 3 Break 32000 subdirectory limit 4 directory Inodes reservation 5 nsec timestamps 6 inode version on disk 7 uninitialized groups 8 journal checksumming 9 persistent preallocation 10 Online Defragmentation 11 Undelete Feature for Ext4 12 Large file support 简单看了看,其实对于大多数系统来说,子目录数、单个文件等等估计都很难达到EXT3的限制的,所以这些吸引力估计不大。我比较关心的
rman备份的时候读取v$session_longops失败导致备份失败
一个redhat as4下的oracle 10.2.0.2的库使用的是基于物理dataguard的备份,每天晚上自动使用rman对数据库进行备份,但是今天却发现昨天晚上的备份失败!因为数据要保证能恢复到任何的时间点,所以备份脚本中是先对数据库进行增量备份,然后进行日志的备份。结果发现增量备份成功,但日志却没有被备份。错误提示如下:RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ====================================================
HP,请送我两瓶杀虫剂
HP,本来是一个硬件厂商,送礼品应该送个鼠标垫、小U盘啥的,不过目前我倒觉得应该买笔记本送杀虫剂。HP觉得大学宿舍很多蟑螂引起HP笔记本故障率很高,而返修的成本不仅仅是换个硬件的成本,还有HP维修人员的成本,还有大家沟通、来往车费等等,总价格算下来一台花费500应该不算夸张吧,这还计算客户的时间损失呢。杀虫剂我没买过,不过我想50块钱买两瓶应该够了吧,撑死了100块总够了吧。这样HP也不用背负个返修率高的名声,顺便帮大学宿舍美化下环境,还节省了HP自己和客户的时间,实在觉得这是个一箭我都算不过来多少雕的妙计,强烈建议
不同介质的访问速度
网上看到一个图片,不同的介质的访问速度,记录一下:L1 CACHE:1NSL2 CACHE:4.7NSRAM:83NSHARD DISK:13.7MS[@more@]
虎年寄语
希望自己虎年能学会独立思考,踏踏实实做人、做事,技术、思想和人生都能上一个台阶!悟空!八戒![@more@]
在linux系统中对文件进行分割
经常对从数据库中SPOOL出来的数据进行分割,而以往都是要在UltraEdit中一点点的剪切、复制,一直觉得linux中应该有个命令,今天终于找到了,那就是SPLIT。[@more@]下面是帮助信息:[root@logana opt]# split --helpUsage: split [OPTION] [INPUT [PREFIX]]Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; defaultPREFIX is `x'. With no INPUT, or when INPUT is -, read standard input.Mandatory arguments to long options are mandatory for short options too.-a, --suffix-length=N use suffixes of length N (defa
在rman备份过程中,数据文件增长可能会导致ORA-00600 [krbockstat-nrblks]
今天凌晨对数据库进行备份,结果却出现一个600错误,查阅metalink后发现是一个bug,而且说只要备份不失败,则对数据库和数据库的备份都没有任何影响。在这里记录一下吧。[@more@]Backup Fails With ORA-00600 [krbockstat-nrblks] If Datafile Grows During RMAN Backup Doc ID: Note:415798.1 Type: PROBLEM Last Revision Date: 15-MAR-2007 Status: MODERATED This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) Rapid Visibility (RaV) process, and therefore has not been subject to a
foxmail 6.5 beta3 某些邮件不能直接回复的问题
一直使用FOXMAIL,前段时间FOXMAIL的自动升级提醒我进行升级,而且是大版本的升级,于是就直接做了升级。升级后发现搜索功能得到了很大的增强,使用起来非常方便,而且搜索的速度飞快。但是,用了一段时间发现某些邮件不能直接进行回复。点回复,然后回完了发送会没有反应,发送不出去。同时如果点保存,也不能成功,最后只能退出,导致你回复的东西白写了。比较搞笑的是明明不能保存,退出的时候还要提示你进行保存,这不是瞎折腾嘛。最后偶只能把新建一个邮件,然后把要回复的格式、收件人、标题等全部拷到新建邮件,总算能绕个弯子把信
查看执行计划出现ORA-22992错误
查看一个sql的执行计划,结果出现ORA-22992提示,知道这个提示是远程DB LINK包含LOB字段,所以不能在select中被显示,但是仔细核对后,发现这个sql使用的三个表的连接都是本地表,而且这三个表根本不包含LOB字段,见鬼![@more@]首先怀疑是工具的问题,发生问题时是使用PL/SQL DEVELOPER来执行的,登陆服务器,直接使用SET AUTOTRACE TRACEONLY来查看执行计划,结果统计信息能出来,计划还是出不来,提示:Execution Plan----------------------------------------------------------ERROR: an uncaught error in function display has ha
DELL R900服务器上基于REDHAT 4.6安装oracle中碰到的Can't connect to X11 window server using 'localhost:0.0'
之前没怎么在linux下安装过oracle,到这个公司后,虽然安装过无数次,不过都是按照前辈写好的文档安装的,而且一路顺畅,因为都是在同一个版本的OS上安装同一个版本的ORACLE,所以没出过问题。12月份,公司订了dell最新的服务器R900,其中配置了4个4核cpu,top的时候可以看到一共有16个cpu显示。安装oracle之前,前辈就提醒过,说超过8个cpu的系统跟8个以下是不一样的,因为超过8个之后,REDHAT使用的内核都不一样了,少于8个,内核显示如下:2.6.9-42.ELsmp,而新安装的系统上显示是:2.6.9-67.ELlargesmp,多了一个large的显示。而且,这
ASM磁盘空间假装耗尽,ORA-15041: diskgroup space exhausted
一个DATAGUARD,当主库RESIZE扩大一个数据文件后,DG上面却不能应用这个RESIZE的操作,导致MPR进程停掉,报错如下:ORA-01237: cannot extend datafile 123ORA-01110: data file 516: '+DG01/dg/datafile/aa.276.689185035'ORA-17505: ksfdrsz:1 Failed to resize file to size 3053300 blocksORA-15041: diskgroup space exhausted本来想这个错误太明显了,无非是因为DG上面得ASM组没有空闲空间了,导致数据文件不能扩展。于是登陆ASM实例,查询空闲空间,结果如下:SQL> select name,total_mb,free_mb from v$asm_diskgroup;NAME
SHARED POOL中KGH: NOACCESS占用大量内存的问题分析
接上篇的ORA-04031错误,知道整个SHARED POOL的组件中,ASM extent pointer array占用很大的内存是显示的一个BUG后,继续分析各个组件占用的内存大小,结果发现KGH: NO ACCESS组件也占用了400多M,这个又是个什么鬼东西呢?还是看看METALINK上怎么说的吧。[@more@]首先找到了下面一篇文章:https://metalink.oracle.com/metalink/plsql/f?p=130:14:4157546628394209832::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,461160.1,1,0,1,helveticaApplies to:Oracle Server - Enterprise Edition
REDHAT中如何判断主机的CPU是32位还是64位的
可以直接查看/proc/cpuinfo文件,其中有关于CPU的详细信息,包括型号、CACHE、频率等等,但是没有地方明确的写明是32位还是64位的,不过在FLAG那一行有很多的标志信息,如果其中有LM标志,说明这个是64位的CPU,如果没有,则说明是32位的。FLAG的详细的解释是定义在cpufeature.h头文件中的,里面关于LM的解释是Long Mode (x86-64),这个文件在64位系统上位于/usr/include/asm-x86_64目录下,在32位系统中位于/usr/include/asm目录下,下面列一个64位的cpufeature的头文件做个记录吧[@more@]#define X86_FEATURE_FPU (0*32+ 0) /*
打补丁打出新的BUG来了
ORACLE 10.2.0.2版本的RAC环境下,因为拿标准的TPC-C进行压力测试,发现后台ALERT日志中报有很多DEADLOCK,或许是TPC-C压力测试软件的问题,也或许是ORACLE的BUG,于是找到BUG相对应的补丁,OPATCH打上去,结果三个节点只有一个节点能起的来了,其他两个节点不能OPEN了,最后把新打的PATCH删掉,错误依旧。[@more@]手工启动会报ORA-03113: end-of-file on communication channel,尝试了一步步的来启动,结果发现是最后库OPEN的时候出现的问题,同时后台ALERT日志中报错:ORA-07445: exception encountered: core dump [kkxsyn()+584] [SIG
NULL列时,如何使得IS NULL或者IS NOT NULL可以使用索引来提高查询效率
虽然我们一直强调在进行数据库设计的时候,要尽量设置所有的列为NOT NULL,这样的最直接的好处就是假如这个列上有一个索引,那么对这个表进行COUNT(*)统计的时候(假设这个表只有这一列有索引,并且索引全扫描比 全表扫描COST低),ORACLE会直接对这个列的索引进行一个快速扫描得到COUNT结果,而不是进行一个全表扫描。虽然B*TREE索引是不存储 NULL值的,但是因为你定义列的时候明确的告诉ORACLE这一列是NOT NULL的,所以ORACLE会知道扫描索引得到的结果跟全表扫描得到的结果是一致的(因为列的值都是NOT NULL的,也就是说列的所有
遭遇ITL死锁
转载自www.ixdba.com:一个增量刷新的程序,看哪些记录发生变化了(使用TRIGGER记录),就在远端把相应的记录删除,再把本地的数据insert过去。因为数据量比较大,而单一的delete和insert对资源的使用率也不高,就准备多开几个程序一起刷新,来加快刷新速度。其中有一个中间表,只会插入和删除,不会更新,就想当然的把PCTFREE设置为0以节省空间。结果发生了死锁。piner版主对这种类型的死锁进行了深入的分析,这里只进行转载。[@more@]1、什么是ITLITL(Interested Transaction List)是Oracle数据块内部的一个组成部分,用来记录该块所有发
物理DATAGUARD库上的KSVCREATE: PROCESS(M000)
CREATION FAILED 问题天天有,没有今天多,RMAN备份的问题没搞定的时候,想着把数据库打开会不会这个错误就没了呢,于是就把dataguard open read only了,结果错误依旧,而且后台日志还有新的错误报出来了:ksvcreate: Process(m000) creation failed,之前已经碰到过因为归档日志把磁盘写满导致MMON进程挂掉,然后awr报表不能自动收集的情况:http://zhang41082.itpub.net/post/7167/369161,这次看来还是这个awr的问题了。[@more@]google了半天,发现很多都是说因为process参数设置太小导致不能创建新的进程,此数据库是一个dataguard,
利用B*TREE的特性,为列值分布极端不平衡的表创建特殊索引来提高效率
问题提出: 一个订单处理系统,需要频繁的取出最早提交但是还未处理的订单来进行处理,随着时间的累加,表中数据越来越多,性能也越来越低。[@more@]首先来看看表结构,简化后如下:ID NUMBER(10) Y COMMITDATE DATE Y STATUS NUMBER(1) Y 其中ID是主键,唯一的标明了一个订单,COMMITDATE表示订单的提交时间,STATUS表示订单的处理状态,其中0表示未处理,1表示已处理。当然此表还有很多列来描述一笔订单,这里只是简化的结构。此表当初建立了tab_ord
11G R2中的并行执行,dbms_parallel_execute
在以前我们处理大数据量的时候,一般机器硬件都足够强悍,单线程的处理怎么也消耗不了多少的系统资源,而整个处理的过程又比较慢,这个时候并行就出现了。 并行可以通过ORACLE的PARALLEL来指定和执行,而在11G R2版本中,这个功能得到了加强,ORACLE推出了一个dbms_parallel_execute包,专门来处理这些内容。这个包其实原理也比较简 单:首先是把数据分成一个个CHUNK,然后指定并行度来同时执行这些任务。就类似手工的按照主键、ROWID或者数据的日期等等进行并行处理类似。下面 来看看这个咚咚怎么使用[@more@]使用dbms_parallel_
纪念二姨父!
2007年7月10日下午两点,二姨父去世!写了删,删了又写,不知道该如何来表达自己的心情。愿天堂里还有一堆朋友一起喝酒,愿灵魂安息!阿门![@more@]