eygle.com   eygle.com
eygle.com  
 

« May 2008 | Blog首页 | July 2008 »

1 2 3 下一页


June 30, 2008

使用kfod查看Oracle ASM磁盘信息

作者:eygle

出处:http://blog.eygle.com

今天帮客户安装AIX系统上的Oracle10g数据库,使用了ASM管理存储,忽然记起Nigoo提到过一个以前没有注意到的工具kfod。

这个工具可以用于手工查询ASM磁盘的信息。其帮助信息如下:


db2:/home/oracle>kfod -help
_asm_a/llow_only_raw_disks KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)]
_asm_l/ibraries ASM Libraries[_asm_libraries='lib1','lib2',...]
_asms/id ASM Instance[_asmsid=sid]
a/sm_diskstring ASM Diskstring [asm_diskstring='discoverystring', 'discoverystring' ...]
d/isks Disks to discover [disks=raw,asm,all]
g/roup Group discover [group=controlfile]
n/ohdr KFOD header suppression [nohdr=TRUE/(FALSE)]
o/p KFOD options type [OP=DISKS/GROUPS/ALL]
p/file ASM parameter file [pfile='parameterfile']
s/tatus Include disk header status [status=TRUE/(FALSE)]
v/erbose KFOD verbose errors [verbose=TRUE/(FALSE)]

查看磁盘可以使用disk参数,其输出实际上是通过权限来列举可用磁盘:


db2:/home/oracle>kfod disk=all
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
1: 102795 Mb /dev/rhdisk10
2: 10240 Mb /dev/rhdisk3
3: 10240 Mb /dev/rhdisk4
4: 51200 Mb /dev/rhdisk5
5: 51200 Mb /dev/rhdisk6
6: 51200 Mb /dev/rhdisk7
7: 51200 Mb /dev/rhdisk8
8: 102400 Mb /dev/rhdisk9
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================

在我的一个Linux环境上输出如下:


[oracle@dbrac1 oracle]$ kfod disk=all
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
1: 97660 Mb ORCL:VOL1
2: 195321 Mb ORCL:VOL2
--------------------------------------------------------------------------------
Disk Size Path
================================================================================
1: 250 Mb /dev/raw/raw1
2: 251 Mb /dev/raw/raw2
--------------------------------------------------------------------------------
ORACLE_SID ORACLE_HOME
================================================================================
+ASM2 /opt/oracle/product/10.2.0/db
+ASM1 /opt/oracle/product/10.2.0/db

Posted by eygle at 7:39 PM | Comments (0)


June 29, 2008

功夫熊猫 与 无师自通的领悟

作者:eygle

出处:http://blog.eygle.com

功夫熊猫周五和老婆在东方广场的 新世纪 电影院看了一场 功夫熊猫,这只熊猫风头正健,到电影院很多人都是来看这部电影。 由于去的匆忙,没有带电影券、优惠券之类,结果到电影院发现中国移动VIP用户可以发短信来获取折扣券,很方便,发送VIPFILM代码很快就获得彩信优惠券。终于发现移动的VIP用户还有点用。

关于精彩部分就不说了,我要说说 熊猫阿宝的五溪指法,阿宝最后通过自悟的指法击败了残豹,那么这指法是如何来的呢?
师傅当初是没有教过的,我相信有这样一种无师自通的领悟,Panda在不断的练习和战斗中熟练并且成为一个挥洒自如,充分发挥自身潜质的功夫高手,这些使他具备了自由发挥与创造的基础。
终于Panda使出了核武器一样的超级指法。

其实在残豹和师傅斗争中,我一直期望能够有另外一种结局,残豹从一只可爱的小豹子成为一个充满野心与暴力的复仇者,很多人应该对此负责,甚至在Panda与残豹的决斗中,我也期待能有一种回归的结局,但是这种结局没有出现,因为电影需要有一个对立面的存在。

无师自通与忽然的领悟,每个人都需要这样的时刻。

有一些台词很值得回味,网上找到了几条:
1.往往在逃避命运的路上,却与之不期而遇
One meets its destiny on the road he takes to avoid it
2.你的思想就如同水,我的朋友,当水波摇曳时,很难看清,不过当它平静下来,答案就清澈见底了。
Your mind is like this water, my friend , when it is agitated ,it becomes difficult to see ,but if you allow it to settle , the answer becomes clear.
3.退出,不退出。做面条,不做面条。
Quit don't quit. Noodles don't noodles.
4.昨天是历史,明天是谜团,只有今天是天赐的礼物
Yesterday is history
Tomorrow is a mystery
But today is a gift
That is why it's called the present (the gift)
5.从来没有什么意外
There are no accidents
6.师傅:但有些事情我们可以控制,我可以控制果实何时坠落,我还可以控制在何处播种。
but there are things we can control,I can control when the fruit will fall ... And I can control What time to seed

-The End-


Posted by eygle at 9:30 PM | Comments (11)


June 26, 2008

使用Linux下script工具记录Oracle输出

作者:eygle

出处:http://blog.eygle.com

在Linux下使用Oracle数据库时,很多时候我们想记录输出信息,当然有很多方法可以选择,但是这里我想说的是script工具。

在Linux下有一个script工具,可以将当前终端会话中的所有输入输出结果捕获到一个指定的文件里。
看一下这个工具的man输出:
[oracle@jumper oracle]$ which script
/usr/bin/script
[oracle@jumper oracle]$ man script
SCRIPT(1)                BSD General Commands Manual                SCRIPT(1)

NAME
    script - make typescript of terminal session

SYNOPSIS
    script [-a] [-f] [-q] [-t] [file]

DESCRIPTION
    Script makes a typescript of everything printed on your terminal.  It is
    useful for students who need a hardcopy record of an interactive session
    as proof of an assignment, as the typescript file can be printed out
    later with lpr(1).

    If the argument file is given, script saves all dialogue in file.  If no
    file name is given, the typescript is saved in the file typescript.

当然最重要的是看一下实际效果。

在记录操作前执行 script 命令开始记录,最后输入 exit 退出记录,中间的所有操作都会被记录下来,以下是一个测试过程,中间步骤被省略:
[oracle@jumper oracle]$ script
Script started, file is typescript
[oracle@jumper oracle]$ sqlplus "/ as sysdba"
<...ignore operation here...>
[oracle@jumper oracle]$ exit
Script done, file is typescript

现在让我们来看看记录文件typescript中记录了什么内容:
[oracle@jumper oracle]$ cat typescript
Script started on Thu 26 Jun 2008 07:56:18 AM CST
[oracle@jumper oracle]$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Thu Jun 26 07:56:24 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

SQL> set linesize 120
SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

Session altered.

SQL> col status for a8
SQL> col group# for 999999
SQL> select * from v$log;

GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS  FIRST_CHANGE# FIRST_TIME
------- ---------- ---------- ---------- ---------- --- -------- ------------- -------------------
      1          1        14    1048576          1 YES INACTIVE    1.9008E+10 2008-06-23 00:42:36
      3          1        15    1048576          1 YES INACTIVE    1.9008E+10 2008-06-25 14:29:37
      4          1        13    1048576          1 YES INACTIVE    1.9008E+10 2008-06-20 14:56:12
      5          1        16    1048576          1 NO  CURRENT    1.9008E+10 2008-06-25 15:58:38

SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
[oracle@jumper oracle]$
[oracle@jumper oracle]$ exit

Script done on Thu 26 Jun 2008 07:57:38 AM CST

这个工具是不是很有用途呢?
当然还有更强悍的 scriptreplay 工具可以replay script,不过缺省一般不带,不说了。

-The End-

Posted by eygle at 10:39 AM | Comments (5)


June 25, 2008

Oracle中的不可见字符处理案例一则

作者:eygle

出处:http://blog.eygle.com

今天遇到一则案例,问题是数据库中看来完全相同的字段却存在长度差异。

通过lengthb以及dump我们可以知道问题所在:
SQL> select trim(log.sname),dump(log.sname),lengthb(log.sname)
  2    from st.LIMPORT_LOG log
  3  where log.dfee > date '2008-06-22'
  4    and log.dfee < date '2008-06-23'
  5    and log.sspname like '263%'
  6  group by log.sname,dump(log.sname);

TRIM(LOG.SNAME)  DUMP(LOG.SNAME)                                                LENGTHB(LOG.SNAME)
------------------- ----------- ----------------------------------------------
263网络通信        Typ=1 Len=15: 50,54,51,205,248,194,231,205,168,208,197,0,0,0,0  15
263网络通信        Typ=1 Len=11: 50,54,51,205,248,194,231,205,168,208,197          11

使用DUMP函数我们发现,在有问题的数据中,数据末尾存在几个字符0,0,0,0,也就是多出了几个字符。
正是这多出的几个字符导致了存储异常。

那么这个0代表什么字符呢?在ASCII编码表里我们可以看到这对应了一个不可见字符,这是数据入库时的异常导致的:



-The End-

Posted by eygle at 4:50 PM | Comments (5)


数据字典视图之:v$dlm_traffic_controller

作者:eygle

出处:http://blog.eygle.com

v$dlm_traffic_controller用于控制RAC中DLM的流量,其视图结构为:

SELECT inst_id, kjitrftlid, kjitrftrid, kjitrftrrd, kjitrftinc, kjitrftta,
      kjitrfttl, kjitrfttr,
      DECODE (kjitrfttw, 0, 'NO        ', 'YES      '), kjitrftss,
      kjitrftsr, kjitrftsql, kjitrftsqm, kjitrftsqt, kjitrftqtb, kjitrftqtw,
      kjitrftst, kjitrftpxy
  FROM x$kjitrft

其字段对应关系为:
SQL> desc v$dlm_traffic_controller
Name                                      Null?    Type
----------------------------------------- -------- --------------------------------------------
LOCAL_NID                                          NUMBER
REMOTE_NID                                        NUMBER
REMOTE_RID                                        NUMBER
REMOTE_INC                                        NUMBER
TCKT_AVAIL                                        NUMBER
TCKT_LIMIT                                        NUMBER
TCKT_RCVD                                          NUMBER
TCKT_WAIT                                          VARCHAR2(10)
SND_SEQ_NO                                        NUMBER
RCV_SEQ_NO                                        NUMBER
SND_Q_LEN                                          NUMBER
SND_Q_MAX                                          NUMBER
SND_Q_TOT                                          NUMBER
SND_Q_TM_BASE                                      NUMBER
SND_Q_TM_WRAP                                      NUMBER
STATUS                                            NUMBER
SND_PROXY                                          NUMBER

以上数据来自Oracle10g 10.2.0.4环境。

-The End-

Posted by eygle at 12:17 AM | Comments (1)


June 23, 2008

RAC基本概念:PCM、IDLM、DLM等

作者:eygle

出处:http://blog.eygle.com

Oracle RAC的很多概念一脉相承来自OPS,不过在新版本已经进行了不同的解释和引申。
以下是几个相关概念的说明和介绍:

Oracle Parallel Server允许不同节点上的多个INSTANCE实例同时访问一个数据库,以提高系统的可用性、可扩展性及性能。
Oracle Parallel Server中的每个实例都可将共享数据库中的表或索引的数据块读入本地的缓冲区中,这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中。那么保持这些缓冲区的数据的一致性就很重要。

PCM - Parallel Cache Management
Oracle使用 PCM( Parallel Cache Management) 维护缓冲区的一致性,通过PCM Oracle允许一个节点访问位于另一个节点的缓冲区Cache中的数据;
IDLM - Integrated Distributed Lock Manager
Oracle通过集成分布式锁管理器(Integrated Distributed Lock Manager,IDLM)来协调资源的使用,防止发生冲突,从而实现PCM 并行Cache管理,专门的LCK进程用于实现实例间的数据一致。

Oracle并行服务器中的每个PCM锁可管理多个数据块。PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关。一旦某个节点上的实例启动后,它就可以获取各种各样的DLM锁,这些锁主要划分为 PCM(Parallel Cache Management,并行Cache管理)锁和非PCM锁。PCM锁用于锁住数据库块,非PCM锁用于锁住所有其他的共享DLM资源(例如共享池中的数据文件和对象)。

实现这些功能的不同进程在不同版本中名称不同,以下是一些最为重要的进程:

LMON: Global Enqueue Service Monitor, 以前称为 Lock Monitor
LMD: Global Enqueue Service Daemon, 以前称为 Lock Monitor Daemon
LMS: Global Cache Service Processes, 以前称为 Lock Manager Services

-The End-

Posted by eygle at 10:46 AM | Comments (0)


June 20, 2008

结束山东国税Oracle高级培训课程

作者:eygle

出处:http://blog.eygle.com

这一周的周一到周四,为山东国税做了一次为期四天的 Oracle数据库高级技术培训,昨晚回到北京。

培训地点在山东潍坊,第一次到这个中国的风筝之都,感觉环境与气候都不错。
整个培训进展的很顺利,结识了很多朋友,相处尤为融洽,所以讲课也轻松愉快。

感谢山东国税的朋友们:)这次培训,山东每个地市都有人来参加,是一次全省同行的聚会。
感谢老杨同志,在火车站他给我上了堂税务知识课,让我学到了不少Oracle之外的知识。

最满意的是山东的饮食,第一次到一个地方吃饭可以明目张胆的来一盘大葱、上一碟大蒜,痛快啊。
当然,山东朋友的酒量实在是太厉害了,而且喝酒的算法极其复杂,主席副主席、领3杯喝几次、啤酒白酒换算关系,总之比Oracle要复杂。没研究明白。

从北京到潍坊,坐动车组,不到5个小时,想想这个速度可以接受,以后去山东玩,也许周末就可以。

对于课程我的要求是:把我讲的记住50%就可以,明年我再讲一次,再记住50%,大家就和我一样了。哈哈!

这一次是来去匆匆,希望下一次能够在山东多做停留,那里还是我祖上的故乡。

-The End-

Posted by eygle at 4:48 PM | Comments (14)


June 18, 2008

久违的命题 - 为何而读书?

作者:eygle

出处:http://blog.eygle.com

好不容易冲上网来,发一张照片。

久违的一句话:为中华崛起而读书!
这几天看到这句话,颇觉得亲切,仿佛埋藏心中已久的记忆被重新唤起。

然而今天,我们为什么而读书呢?

Posted by eygle at 9:51 PM | Comments (15)


June 15, 2008

严正抨击 金摇篮 劣质奶粉质量

作者:eygle

出处:http://blog.eygle.com

前几天回家,去探望了亲戚家的Baby,那个Baby比我家墨墨小十天左右,同样非常可爱。

不过在谈到奶粉时,他们和我抱怨遇到了劣质奶粉,这个奶粉的牌子是 金摇篮。我用手机拍了一张奶粉罐:

我之前是并不熟悉这个牌子的,他们说这个牌子的也不便宜,也要160多一罐。
不过他们在冲泡奶粉的过程中发现奶瓶底部会积累一些黑点,似乎是杂质一类,开始没太注意,后来偶然用磁铁隔着奶瓶去接触,发现那些黑点会随着磁铁跑,竟然是铁屑杂质。

全家人顿时吃惊不小,奶粉的质量、孩子的健康,一瞬间心里没了底,投诉到厂家后,厂家又反复推诿,迟迟没有答复。
当然家里马上就换掉了奶粉。

养儿的都会知道父母的担忧,在中国,奶粉的质量始终得不到保证,我能做的就是严正抨击 金摇篮 这个奶粉品牌,大家购买时一定要注意。

-The End-

Posted by eygle at 1:48 PM | Comments (25)


June 13, 2008

如何查看Veritas VCS安装版本号

作者:eygle

出处:http://blog.eygle.com

由于VCS在大版本间还可能有不同的补丁发布,所以同一版本的安装发布可能不同。
如何查看VCS的具体安装版本号呢?

通过 pkginfo 查看相关安装组件的版本是一个方法,比如通过 VRTSvxfs 可以看到详细的版本号。
以下显示安装的VERITAS File System版本号为:VERITAS-3.5FS MP2 版本。PSTAMP 记录了详细的信息。
# pkginfo -l VRTSvxfs
  PKGINST:  VRTSvxfs
      NAME:  VERITAS File System
  CATEGORY:  system,utilities
      ARCH:  sparc
  VERSION:  3.5,REV=GA06
  BASEDIR:  /
    VENDOR:  VERITAS Software
      DESC:  Commercial File System
    PSTAMP:  VERITAS-3.5FS-2003-07-01MP2=113206-10
  INSTDATE:  5? 31 2004 14:37
  HOTLINE:  (800) 342-0652
    EMAIL:  support@veritas.com
    STATUS:  completely installed
    FILES:      265 installed pathnames
                  35 shared pathnames
                  5 linked files
                  49 directories
                  59 executables
                  5 setuid/setgid executables
              28195 blocks used (approx)             

在另外一个系统上,我们看到,安装版本为VERITAS-3.5FS,两者不一致可能会导致Cluster工作不正常:
# pkginfo -l VRTSvxfs
  PKGINST:  VRTSvxfs
      NAME:  VERITAS File System
  CATEGORY:  system,utilities
      ARCH:  sparc
  VERSION:  3.5,REV=GA06
  BASEDIR:  /
    VENDOR:  VERITAS Software
      DESC:  Commercial File System
    PSTAMP:  VERITAS-3.5FS-2002-06-13
  INSTDATE:  Jun 11 2008 11:21
  HOTLINE:  (800) 342-0652
    EMAIL:  support@veritas.com
    STATUS:  completely installed
    FILES:      258 installed pathnames
                  32 shared pathnames
                  5 linked files
                  46 directories
                  58 executables
                  5 setuid/setgid executables
              26432 blocks used (approx)

-The End-

Posted by eygle at 11:31 AM | Comments (0)


1 2 3 下一页


CopyRight © 2004-2008 eygle.com, All rights reserved.