存档

2014年3月 的存档

killcpu.sh,can make all cpu used percent to 100%

2014年3月26日 没有评论

起初我们想测一下一台主机CPU空载与满负载(100%)时用电是不是相差很大。实测发现HP小机有差别,而IBM小机无变化。
用的是如下一段脚本,想让CPU利用率为多少就能到多少,脚本很简单,只有短短15行。

#! /bin/sh
# filename killcpu.sh
for i in `seq $1`
do
echo -ne ”
i=0;
while true
do
i=i+1;
done” | /bin/sh &
pid_array[$i]=$! ;
done
for i in “${pid_array[@]}”; do
echo ‘kill ‘ $i ‘;’;
done

阅读全文…

分类: Unix 标签:

oracle死事务处理

2014年3月26日 没有评论

曾遇到两次死事务的问题,都是同事对一张大表清理时,PC机异常掉电,系统自动回滚造成的。smon会对死事务清理,会产生大量enq:TX锁等待,业务基本处理HANG的状态
一般说来DBA没有什么办法,只能乖乖的等着smon清理完,可业务等不急,如此下来一堆人围着你心情非常不爽。[@more@]1、如何查看是否有死事务?还有多少个块需要恢复?

用sys用户执行如下SQL:

SELECT KTUXEUSN ROLLBACK_SEGS_NUM,
KTUXESIZ UNDO_BLOCKS,
KTUXESLT,
KTUXESQN, /* Transaction ID */
KTUXESTA STATUS,
KTUXECFL FLAGS
FROM SYS.X$KTUXE
WHERE KTUXECFL = ‘DEAD’;

2、如何算一下需要多少时间恢复完?
可以看一下eygle的文章:http://www.eygle.com/archives/2007/09/smon_rollback_dead_transaction.html
阅读全文…

分类: Oracle 标签: ,

solaris 9 top工具安装

2014年3月26日 没有评论

最近在折腾solaris,发现自己的系统里缺少了top工具,网上相关的文章真是少的可怜,为给遇到同样问题的朋友提供些帮助,我简单的整理了一下。[@more@]
做技术就是会了不难,难了不会,这个小小的问题我折腾了两个小时。top这个软件是不在sun给的那堆光盘中的,它是一个free software,可以到http://www.sunfreeware.com这里进行下载。我以solaris 9为例,其top package的下载链接为:ftp://ftp.sunfreeware.com/pub/freeware/sparc/9/top-3.6-sol9-sparc-local.gz,如下以1234的方式简单的说说:

1、按之上的连接把top-3.6-sol9-sparc-local.gz存在你的机器上,并上传到服务器.我把它传到了/tmp/yang这个目录。

sun480-1#[/tmp/yang]ls -l
总数 432
-rw-r–r– 1 root other 215455 6月 21 15:08 top-3.6-sol9-sparc-local.gz

2、用gzip解压缩

sun480-1#[/tmp/yang]gzip -d top-3.6-sol9-sparc-local.gz
sun480-1#[/tmp/yang]ls -l
总数 1216
-rw-r–r– 1 root other 617984 6月 21 15:08 top-3.6-sol9-sparc-local

阅读全文…

分类: Unix 标签: ,

How to know one object’s dependence?

2014年3月26日 没有评论

在我们的日常的维护中,有时我们会调整一张表的表结构或是修改某一个底层一些的procedure等对象,而对其有依赖性的一些对象就会更得无效。事实上我们常需要看一下有哪些Object对于要修改的这个Object有依赖性以确实影响的范围,从而确定修改的时间。[@more@]

1 以HR用户下的Table A进行测试,建一Procedure参照它。

SQL> select * from tab where tname=’A’;
TNAME TABTYPE CLUSTERID
—————————— ——- ———-
A TABLE

CREATE PROCEDURE “HR”.”TEST” as
v1 number;
begin
select count(*) into v1 from a;
end;

2 发现dependence的方法。
阅读全文…

分类: Oracle 标签: ,

ORA-01438诊断

2014年3月26日 没有评论

ORA-014380, “value larger than specified precision allows for this column”这种报错很常见,大部时侯我们知道自己用的是什么语句,操作的是哪张表,但是哪个value引起的问题就很难判断了。
产生ora-01438的原因也不少,比如表上的trigger的级联DML操作引起的,bug的原因,但最主要的原因还是插入的列值过来引起的。
按习惯上讲,我们可以做一个1438的errorstack的trace,不过一般这个trace很大且用处也不大,因为只能从中看到哪个表、哪个列、哪条语句引起的问题,但是不清楚哪个值引起的问题。

如下以一个测试来粗略说明一个发现原因的方法。

1、准备测试条件:
1)表T1

SQL> desc t1
Name Null? Type
——————————- ——– ————
COL1 NUMBER(2)

阅读全文…

分类: Oracle 标签: ,

Oracle logon trigger举例

2014年3月26日 没有评论

以一个例子来说明logon trigger的使用问题。

1、问题提出

如下只是一个举例,自己修改一下可以完成更多的功能。想完成如下的功能:
1)某一个Ip段的用户不能登陆
2)针对的只是某一个或几个用户
3)对连接所用的应用程序也进行了限定。


2、问题解决

1)如果你的logon trigger不是建在sys用户下,v_$session的查询权限需要授权给给建trigger的用户。
我选择在system用户下建:

SQL>connect / as sysdba;
SQL>grant select on v_$session to system;

阅读全文…

分类: Oracle 标签: , ,

如何将PENDING OFFLINE状态的回滚段OFFLINE?

2014年3月23日 没有评论

版本ORACLE 9.2.0.4,采用Auto Undo Management
在v$transaction没有使用到这些PENDING OFFLINE的回滚段,可这些回滚段一个月的状态都是这样,有什么方法可以转为OFFLINE呢?

问题描述:

itpub swelp提问:

版本ORACLE 9.2.0.4,采用Auto Undo Management
在v$transaction没有使用到这些PENDING OFFLINE的回滚段,可这些回滚段一个月的状态都是这样,有什么方法可以转为OFFLINE呢?
阅读全文…

vi命令速查

2014年3月23日 没有评论

vi命令如何常用,放于此以备查。

Last line mode:
/exp Go forward to exp
?exp Go backward to exp
:w Write buffer to disk
:w newfile Write buffer to newfile
:w! file Write Absolutely
:q Quit editor
:q! Quit,discarding buffer
:wq Write buffer and quit
: x Write if needed & quit
:f Edit & file status
:r Read file into buffer
:r file Read named file in
:e (Re)edit file
:e! (Re)edit,discard file in
:e file Edit nameed file
:3,8d Delete lines 3-8
阅读全文…

分类: Unix 标签: ,

Oracle起动库时1102报错处理

2014年3月23日 没有评论

实际过程中有时我们会遇到这样的问题,当你用startup试图启动数据库时会遇到ORA-01102的报错,如何处理呢?[@more@]
一、提出问题
实际过程中有时我们会遇到这样的问题,当你用startup试图启动数据库时会遇到ORA-01102的报错。我们可以在Unix下切换到Oracle的用户,执行一下oerr ora 1102便会看到有关1102的简短的描述,如下:


rp2$[/home/ora2]oerr ora 1102
01102, 00000, “cannot mount database in EXCLUSIVE mode”
// *Cause: Some other instance has the database mounted exclusive or shared.
// *Action: Shutdown other instance or mount in a compatible mode

看了这个1102的简短的解释你一定有些迷惑,因为它有一些的误导性。如下我便来分析一下问题产生的原因,并给出解决的办法。
 
二、分析原因
当你启动数据库遇到1102报错时,之前的数据库的down操作一般都不是正常完成的,或由于一些异常使Oracle在操作系统中残留一些内存结构,Pmon等一几个进程依然存在等原因使Oracle误认为Instance依然在运行着,所以库就没有启动,具体说来大体原因有如下几个:
1、pmon、smon、lwgw及dbwr这些后台进程依然存在着
2、Oracle开辟的共享内存没有释放掉
3、”lk” and “sgadef.dbf”这两个用于锁内存的文件存在着。
阅读全文…

分类: Oracle 标签:

Glance Hot Key 速查

2014年3月20日 没有评论

Hp-unix的glance是我们观测其系统性能的最常用的一个程序,由于经常用到,把它的hot key放于这里以备忘。
阅读全文…

分类: Unix 标签: