sky's profileDBA日记PhotosBlogListsMore Tools Help
    9/30/2006

    放假了

    是不是7天短了点? 咋还觉得时间安排不开呢?
     
    中午出门,看见2辆jetta并排停在马路中间,2个司机分别坐在自己车里和对方聊天,弄得我一楞一楞的。还真是头一次见过这样的司机。
    9/27/2006

    cpu 不足的一个案例

    hpux,20个cpu的主机A,安装了oracle数据库。
    用vmstat或者top看,idle的cpu几乎全部为0。
    而user也只占用了很少的cpu,大量cpu资源被sys占用。
    io也不繁忙,内存足够。
     
    问题出在哪里呢?
    top监控,发现大量进程占用较高cpu,但是每个进程持续时间非常短,估计不超过2秒。
    检查数据库的监听器日志,发现一个服务器B向A发起频繁的数据库连接,大概每秒10多次这样。
    而数据库里面的logon trigger确无法捕捉到这样的进程,也就无法判断是何种应用程序在不断的连接数据库。
     
    晚上,在B上测试,发现一个tuxedo服务在作以上的工作。停止该服务后,主机A cpu恢复正常。
    莫非是大量进程不断的创建,操作系统的fork动作占用cpu?我无从考证啊
    9/21/2006

    用手机发一个

    挺好玩
    9/19/2006

    Redhat RHEL AS3 /SUSE 下安装 Oracle DB 10g 中文乱码问题的解决

    itpub上看的,帖在这里吧

    Redhat RHEL AS3 下安装 Oracle DB 10g 中文乱码问题的解决
    不少兄弟反映在rhel3下安装oracle10g时出现乱码, 其实在安装和使用时出现乱码的地方有多个, 可以分为三类:
    1. 安装时的乱码
    2. 一些应用程序的乱码, 比如 dbca, netca
    3. 一些基于oc4j的web应用的乱码, 比如 isqlplus, em

    造成这些问题的原因都是一个, 就是这些程序都使用jdk, 相应的jdk(或jre) 使用的字体配置文件 font.properties 中的字体和操作系统的字体或者字体配置文件不匹配. 解决的办法是把两者改成一致.
    1. 下载, 解包 ship.db.cpio.gz, 生成目录 Disk1
    2. cd Disk1/stage/Components/oracle.swd.jre/1.4.2.0.0/1/DataFiles/
    unzip all_except_bin.jar
    (这时生成一个 jre 的目录)
    cd jre/1.4.2/lib/
    mv font.properties font.properties.bak
    cp font.properties.zh_CN.Redhat8.0 font.properties
    cd ../../../
    zip -r all_except_bin.jar.new jre/
    mv all_except_bin.jar.new all_except_bin.jar
    (这么累啊, 其实就是把 font.properties 文件换掉. 这样安装时汉字显示就没有问题了)

    3. 如法炮制, 把Disk1/stage/Components/oracle.jdk/1.4.2.0.0/1/DataFiles/sol_bin.1.1.jar

    文件里面的font.properties 文件换掉, 创建数据库和执行网络配置时的乱码就没有了. isqlplus 和em 的乱码也解决了.


    发现在suse9上以上,10g没找到合适的自带的font文件。

    在网上找了一个,用一下红色内容替代font.properties文件的内容就可以在suse9上解决10g乱码的问题:)

    # @(#)font.properties.zh_CN.SuSE.linux	1.1 03/07/14
    # Copyright 2003 Sun Microsystems, Inc. All rights reserved.
    #
    
    # Component Font Mappings For Linux zh_CN
    #
    serif.0=-b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.1=-*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.2=-arphic-ar pl sungtil gb-medium-r-normal--*-%d-*-*-p-*-iso10646-1
    
    serif.italic.0=-b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1
    serif.italic.1=-*-songti-medium-i-normal--*-%d-*-*-c-*-iso10646-1
    serif.italic.2=-arphic-ar pl sungtil gb-medium-i-normal--*-%d-*-*-p-*-iso10646-1
    
    serif.bold.0=-b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1
    serif.bold.1=-*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    serif.bold.2=-arphic-ar pl sungtil gb-bold-r-normal--*-%d-*-*-p-*-iso10646-1
    
    serif.bolditalic.0=-b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1
    serif.bolditalic.1=-*-songti-bold-i-normal--*-%d-*-*-c-*-iso10646-1
    serif.bolditalic.2=-arphic-ar pl sungtil gb-bold-i-normal--*-%d-*-*-p-*-iso10646-1
    
    sansserif.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.1=-*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.2=-arphic-ar pl sungtil gb-medium-r-normal--*-%d-*-*-p-*-iso10646-1
    
    sansserif.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.italic.1=-*-songti-medium-i-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.italic.2=-arphic-ar pl sungtil gb-medium-i-normal--*-%d-*-*-p-*-iso10646-1
    
    sansserif.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.bold.1=-*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.bold.2=-arphic-ar pl sungtil gb-bold-r-normal--*-%d-*-*-p-*-iso10646-1
    
    sansserif.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    sansserif.bolditalic.1=-*-songti-bold-i-normal--*-%d-*-*-c-*-iso10646-1
    sansserif.bolditalic.2=-arphic-ar pl sungtil gb-bold-i-normal--*-%d-*-*-p-*-iso10646-1
    
    monospaced.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.1=-*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.2=-arphic-ar pl sungtil gb-medium-r-normal--*-%d-*-*-p-*-iso10646-1
    
    monospaced.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.italic.1=-*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.italic.2=-arphic-ar pl sungtil gb-medium-r-normal--*-%d-*-*-p-*-iso10646-1
    
    monospaced.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.bold.1=-*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.bold.2=-arphic-ar pl sungtil gb-bold-r-normal--*-%d-*-*-p-*-iso10646-1
    
    monospaced.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    monospaced.bolditalic.1=-*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    monospaced.bolditalic.2=-arphic-ar pl sungtil gb-bold-r-normal--*-%d-*-*-p-*-iso10646-1
    
    dialog.0=-b&h-lucidasans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.1=-*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.2=-arphic-ar pl sungtil gb-medium-r-normal--*-%d-*-*-p-*-iso10646-1
    
    dialog.italic.0=-b&h-lucidasans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.italic.1=-*-songti-medium-i-normal--*-%d-*-*-c-*-iso10646-1
    dialog.italic.2=-arphic-ar pl sungtil gb-medium-i-normal--*-%d-*-*-p-*-iso10646-1
    
    dialog.bold.0=-b&h-lucidasans-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.bold.1=-*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    dialog.bold.2=-arphic-ar pl sungtil gb-bold-r-normal--*-%d-*-*-p-*-iso10646-1
    
    dialog.bolditalic.0=-b&h-lucidasans-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1
    dialog.bolditalic.1=-*-songti-bold-i-normal--*-%d-*-*-c-*-iso10646-1
    dialog.bolditalic.2=-arphic-ar pl sungtil gb-bold-i-normal--*-%d-*-*-p-*-iso10646-1
    
    dialoginput.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.1=-*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.2=-arphic-ar pl sungtil gb-medium-r-normal--*-%d-*-*-p-*-iso10646-1
    
    dialoginput.italic.0=-b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.italic.1=-*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.italic.2=-arphic-ar pl sungtil gb-medium-r-normal--*-%d-*-*-p-*-iso10646-1
    
    dialoginput.bold.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.bold.1=-*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.bold.2=-arphic-ar pl sungtil gb-bold-r-normal--*-%d-*-*-p-*-iso10646-1
    
    dialoginput.bolditalic.0=-b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1
    dialoginput.bolditalic.1=-*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    dialoginput.bolditalic.2=-arphic-ar pl sungtil gb-bold-r-normal--*-%d-*-*-p-*-iso10646-1
    
    # Missing Glyph Character
    #
    default.char=274f
    
    # Component Font Character Encodings
    #
    fontcharset.serif.0=sun.io.CharToByteISO8859_1
    fontcharset.serif.1=sun.io.CharToByteUnicodeBigUnmarked
    fontcharset.serif.2=sun.io.CharToByteUnicodeBigUnmarked
    
    fontcharset.sansserif.0=sun.io.CharToByteISO8859_1
    fontcharset.sansserif.1=sun.io.CharToByteUnicodeBigUnmarked
    fontcharset.sansserif.2=sun.io.CharToByteUnicodeBigUnmarked
    
    fontcharset.monospaced.0=sun.io.CharToByteISO8859_1
    fontcharset.monospaced.1=sun.io.CharToByteUnicodeBigUnmarked
    fontcharset.monospaced.2=sun.io.CharToByteUnicodeBigUnmarked
    
    fontcharset.dialog.0=sun.io.CharToByteISO8859_1
    fontcharset.dialog.1=sun.io.CharToByteUnicodeBigUnmarked
    fontcharset.dialog.2=sun.io.CharToByteUnicodeBigUnmarked
    
    fontcharset.dialoginput.0=sun.io.CharToByteISO8859_1
    fontcharset.dialoginput.1=sun.io.CharToByteUnicodeBigUnmarked
    fontcharset.dialoginput.2=sun.io.CharToByteUnicodeBigUnmarked
    
    # Exclusion Ranges
    #
    
    # XFontSet Information
    #
    fontset.serif.plain=\
    -b&h-lucidabright-medium-r-normal--*-%d-*-*-p-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.serif.italic=\
    -b&h-lucidabright-medium-i-normal--*-%d-*-*-p-*-iso8859-1,\
    -*-songti-medium-i-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.serif.bold=\
    -b&h-lucidabright-demibold-r-normal--*-%d-*-*-p-*-iso8859-1,\
    -*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.serif.bolditalic=\
    -b&h-lucidabright-demibold-i-normal--*-%d-*-*-p-*-iso8859-1,\
    -*-songti-bold-i-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.sansserif.plain=\
    -b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.sansserif.italic=\
    -b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-medium-i-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.sansserif.bold=\
    -b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.sansserif.bolditalic=\
    -b&h-lucida-bold-i-normal-snas-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-bold-i-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.monospaced.plain=\
    -b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.monospaced.italic=\
    -b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.monospaced.bold=\
    -b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-,1\
    -*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.monospaced.bolditalic=\
    -b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
    -*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialog.italic=\
    -b&h-lucida-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-medium-i-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialog.bold=\
    -b&h-lucida-bold-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialog.bolditalic=\
    -b&h-lucida-bold-i-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-bold-i-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialog.plain=\
    -b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialoginput.italic=\
    -b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialoginput.bold=\
    -b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
    -*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialoginput.bolditalic=\
    -b&h-lucidatypewriter-bold-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
    -*-songti-bold-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.dialoginput.plain=\
    -b&h-lucidatypewriter-medium-r-normal-sans-*-%d-*-*-m-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    fontset.default=\
    -b&h-lucida-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1,\
    -*-songti-medium-r-normal--*-%d-*-*-c-*-iso10646-1
    
    appendedfontpath=/usr/X11R6/lib/X11/fonts/truetype
    
    
    9/6/2006

    ora-19809 不准确的中文翻译

    SQL> select * from v$version;
    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    OS为WINDOWS2003企业版
    数据库关闭后,在启动,报如下错误
    SQL> startup
    ORACLE 例程已经启动。
    Total System Global Area  419430400 bytes
    Fixed Size                  1249368 bytes
    Variable Size             247467944 bytes
    Database Buffers          163577856 bytes
    Redo Buffers                7135232 bytes
    数据库装载完毕。
    ORA-16038: 日志 2 序列号 45 无法归档
    ORA-19809: 超出了恢复文件数的限制
    ORA-00312: 联机日志 2 线程 1:
    '+DISKGROUPA/orcl/onlinelog/group_2.265.599669549'
    ORA-00312: 联机日志 2 线程 1:
    '+DISKGROUPB/orcl/onlinelog/group_2.258.599669551'
    一开始以为是控制文件的限制。
    SQL> alter database backup controlfile to trace;
    数据库已更改。
    想重建控制文件。
    就在寻找生成的trace文件的时候,突然想起来能不能是recover dest满了呢?
    SQL> show parameter recovery
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_recovery_file_dest                string      E:\oracle\product\10.2.0\flash
                                                     _recovery_area
    db_recovery_file_dest_size           big integer 2G
    SQL> alter system set db_recovery_file_dest_size=4g scope=both;
    系统已更改。
    SQL> alter database open;
    数据库已更改。
    SQL>
    查了一下错误信息,原来说得很明白。
    ORA-19809: limit exceeded for recovery files
    Cause: The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded.
    Action: The error is accompanied by 19804. See message 19804 for further details.
    ORA-19804: cannot reclaim string bytes disk space from string limit
    Cause: Oracle cannot reclaim disk space of specified bytes from the DB_RECOVERY_FILE_DEST_SIZE limit.
    Action: There are five possible solutions: 1) Take frequent backup of recovery area using RMAN. 2) Consider changing RMAN retention policy. 3) Consider changing RMAN archivelog deletion policy. 4) Add disk space and increase DB_RECOVERY_FILE_DEST_SIZE. 5) Delete files from recovery area using RMAN.

     

    我们对比一下19809的中文和英文错误描述:

    ORA-19809: 超出了恢复文件的限制

    ORA-19809: limit exceeded for recovery files

    恐怕这一字之差是引起我误会的主要原因吧。

    9/4/2006

    四平计费挂起

    辽源还没处理完,四平又出事了
    时间回到昨天。。。。。
    早上9:00左右,cpb打电话来,描述现象为pro*c的计费程序在某一步挂起。
    检查session,发现同样的程序有5个进程,询问得知为多次中止程序遗留的。
    杀掉进程,问题没有得到解决。shutdown abort数据库,重启。
    发现查询部分视图时hang。 比如v$locked_object就无法查询(2号主机),而同样的视图在一号主机没有任何问题。
    vmstat可以看到2号主机io wait高达90%。
    可以看到ora_p001_sid.....ora_p008_sid占用了系统大量资源。
    因为p×××进程为parallel slave进程,怀疑是并行查询导致,于是修改job_queue_processes=0,重启数据库,发现问题依旧。可以排除并行查询了。
    因为smon一直比较忙,王老师也提示可能在作回滚。检查参数fast_start_parallel_rollback=low
    可以确认p×××进程在执行回滚,而smon作为回滚的调度。
    修改fast_start_parallel_rollback=false后,io wait降低下来了。不过以上问题依旧存在。
     
    下午6点,实在太累了,就回家睡觉了。王老师和zcy继续处理。
    今天早上听王老师说,她把需要rollback的回滚段放到1号主机上执行回滚(也回滚了好久),2号主机就正常了。
    在1号主机上,刚开始视图无法查询的问题依然存在,不过过了一小会,就恢复了正常。而回滚足足到晚上10点多才完成。
     
    这个问题也算是个无头公案吧。虽然知道了大事务回滚导致了问题,但是具体怎么回事,就不得而知了。
    不管怎么说,问题终于好了。
    这个周末过的,真累啊
    9/3/2006

    处理辽源计费数据库

    半夜2点被齐哥电话吵醒,告诉我可能早上起来出差。
    之后就是失眠 上次出差后,生理时钟还是没有完全调整过来。
    大约2点办,就在我辗转反测的睡不着的时候,宋经理一个电话,我只好起来,强打精神,打车来到公司。
    老下的保安兄弟,不好意思,吵到你的好梦了
     
    因为lylbas数据库部分裸设备已经因为vg重建而丢失,所以唯一的方案就是重建lv,重建数据库,然后imp 8月31日的备份。
    给齐哥提供裸设备的名字和大小,划分完lv,大概3点半。
    重建数据库(大概1小时)
    创建必须的表空间,大概2小时。
    在用imp show=y 查看表空间定义的时候,报imp-00037错误,意思是字符集有问题。
    检查lang和nls_lang以及数据库字符集设置,发现全部一致。
    因为是压缩备份,imp时候使用的是原先备份用的管道 exp_pipe,怀疑是管道或备份文件有问题。
    新建管道mknod imp_pipe p
    使用新管道imp,成功。
    imp还没有开始。。。
     
     
    8:40开始imp数据。。。
    晚上18:00回家休息zcy接替
    第二天早上6点完成。
    9/2/2006

    ora-205

    昨天晚上辽源计费旧系统数据库无法启动,报ora-205.控制文件有问题
    发现可以看到/dev/rcontrol*的文件,并且属性也对。可以无法在varyon的vg里面找到这几个裸设备。
    其他没有varyon的vg也无法varyon。
    重起ha,报错。
    经齐哥检查,说是ha配置被修改了。而且rhosts文件丢失。7133坏了一块硬盘
    虽然7133是raid5,一块硬盘损坏并不影响数据,但是因为在启动时,发现硬盘损坏也无法启动
     
    9月3日:
    发现阵列多块硬盘损坏。所以阵列无法使用。蓝色部分应该不正确

    郁闷的话费

    单位发的冲值卡一直都是移动的,可是我用的是联通的手机。所以每次都要找地方把移动的换成联通的。换2张卡大概要花费5元吧。
    昨天晚上加班,一顿长途,然后手机就欠费了。在家里找找,只有移动的卡了,没办法,只好去换。
    可是我找了4家,都没有一家和我换的,哪怕我和人家说可以当场查询余额。
     
    郁闷死了。只好自己掏51块买了张50的卡冲上。
    可是我的移动冲值卡怎么办呢? 郁闷!
    下次坚决不要移动的了,哪怕要固定电话的,我可以给我老爸,我lp的老爸,姐夫,老舅。。。。等等若干人冲值啊。现在这2张冲值卡,恐怕我只好暂时留在手里了
     
    对了,下次发卡的时候,我拿去换成固定电话的