天道酬勤

Oracle and My Life

Archive for November, 2009

libXp.so.6: cannot open shared object file: No such file or directory

one comment

OEL5.3上安装Oracle 10g时提示如下错误:

Exception in thread “main” java.lang.UnsatisfiedLinkError: /tmp/OraInstall2009-11-25_02-34-42PM/jre/1.4.2/lib/i386/libawt.so:libXp.so.6: cannot open shared object file: No such file or directory

原因是缺少了包,装上如下的包就可以了。

# rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm

记录一下以免过段时间又忘了。

-The End-

Written by ochef

November 25th, 2009 at 3:38 pm

Posted in Database

Tagged with

Configure Ora11gR2 T-gateway for DB2UDB

leave a comment

Oracle使用Generic Heterogeneous Services和Transparent Gateways两种方式访问non-oracle 数据库系统,前者是使用不同数据源的ODBC驱动访问,后者使用各自的native driver访问,这里主要说说Gateway。
测试环境:DB2:OEL5.3 + DB2UDB 9.7 ORACLE:OEL5.3 + Oracle 11.2
可以看到,11gR2确实有了更多人性化的东西,除了安装RDBMS时的“Fix & Check Again”功能外,在安装透明网关时也比之前的版本更方便,需要手工配置的地方越来越少,充分体现了User love simplicity。

dg4db2

在安装完gateway之后,在$ORACLE_HOME目录下会有一个dg4db2/admin的文件夹(目录命名发生了点变化,以前为:tg4drda),有三个模板文件:initdg4db2.ora、listener.ora.sample、tnsnames.ora.sample。复制一份initdg4db2.ora文件命名为initdb2inst1.ora(db2inst1为db2的实例名)。打开initdb2inst1.ora配置如下参数:

HS_FDS_CONNECT_INFO=[ochef.db2]:50000/sample,LUW

HS_FDS_TRACE_LEVEL=OFF

HS_FDS_RECOVERY_ACCOUNT=RECOVER

HS_FDS_RECOVERY_PWD=RECOVER

HS_TRANSACTION_MODEL=COMMIT_CONFIRM

HS_FDS_TRANSACTION_ISOLATION=READ_COMMITTED

HS_FDS_SUPPORT_STATISTICS=TRUE

HS_FDS_RESULTSET_SUPPORT=FALSE

HS_FDS_PACKAGE_COLLID=ORACLEGTW

HS_IDLE_TIMEOUT=0

以上参数基本上不用修改,都是在安装时在上图中填写的参数值自动生成。将listener.ora.sample、tnsnames.ora.sample文件中的内容分别添加到$ORACLE_HOME/network/admin下对应的listener.ora和tnsnames.ora文件。具体内容如下:

Listener.ora文件中添加如下内容:

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(SID_NAME=db2inst1)

(ORACLE_HOME=/u01/app/oracle/product/11.2.0)

(PROGRAM=dg4db2)

)

)

tnsnames.ora文件,添加如下内容:

db2inst1 =

(DESCRIPTION =

(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ochef.11g)(PORT = 1521)))

(CONNECT_DATA =  (SID = db2inst1))

(hs = ok)

)

启动监听

[oracle@ochef ~]$ lsnrctl start

创建dblink连接db2的数据库实例db2inst1

[oracle@ochef ~]$ sqlplus “/as sysdba”

SQL> create public database link ora4db2 connect to db2inst1 identified by db2inst1  using ‘db2inst1′;

检查db2link ora4db2是否连接成功:

SQL>select * from db2inst1.employee@ora4db2;

SQL> select count(*) from db2inst1.employee@ora4db2;

COUNT(*)

———-

42

Simple无处不在。

-The End-

Written by ochef

November 14th, 2009 at 9:28 pm

Posted in Database

Tagged with , ,

AIX下使用 raw 创建 non-rac 的ASM

leave a comment

这几天反反复复的折腾ASM for AIX,深刻体会到书到用时方恨少,故作此文记录之。说来惭愧,学习RAC的时候没彻底搞清CRS、CSS、CLUSTERWARE之间的关系;学习ASM的时候没搞清在NON-RAC for AIX环境下的LV和RAW设备。在AIX上安装NON-RAC选用ASM作为存储的10.2的数据库,先是遇到CSS服务启不来,接着是在ASM创建磁盘组的时候发现不了raw设备,一切原于我没有明白AIX下raw设备是如何使用的,不同平台之间意义是不一样的,照葫芦画瓢是行不通的。废话少说,入正题,以下这段内容来自:http://bbs.chinaunix.net/archiver/?tid-1090407.html thesix’s said

在AIX里,每个LVM设备支持两种操作方式,分别被抽象为 Block Device (块设备)和 Character Device (字符设备),其中Character Device 又被称为 Raw Device (原因往下看):比如:

# ls -l /dev/*hdisk0

brw——-   1 root     system       22,  2 May 15 2007  hdisk0

crw——-   2 root     system       22,  2 May 15 2007  rhdisk0

# ls -l /dev/*hd3

brw-rw—-   1 root     system       10,  7 May 15 2007  /dev/hd3

crw-rw—-   1 root     system       10,  7 May 15 2007  /dev/rhd3

这里文件属性开头的’c'字母代表Character, 文件名开头的’r'字母代表Raw。

字符设备支持不定长的数据传输 (data transfers of arbitrary sizes),最小一个字节(但绝不是每次只能传一个字节或字符!),LVM和存储设备的单次最大I/O只受 LTG (logical track group) 大小的限制,缺省为128KB,可修改。

块设备只能做定长的数据传输,数据必须经过 ‘kernel buffer cache’。这个以512-byte block 为单位的buffer cache是传统的块设备的缓存,千万不要和文件系统的缓存混为一谈!这样的存取方式不仅效率低,而且带来诸多问题,严重影响大数据量传输的性能,所以现代操作系统中几乎不用块设备的方式进行高速存储设备的数据存取。

数据库建议直接使用裸设备,意指避开文件系统和文件系统的缓存管理,直接和字符设备打交道。

(注意:文件系统一定是建在字符设备上的,不可能建到块设备上)

这样做的好处主要是三个:

1. 实现每个I/O的代码大大减少:filesystem 和 virtual memory for filesystem 的代码都规避了。

2. 避免了重复缓存造成的内存浪费(数据库和文件系统都有自己的数据缓存)。

3. 避免了文件锁的问题:文件系统里的文件不能同时被多个进程或线程更新。

坏处也有:

1. 失去了通过对普通文件进行管理的易用性。

2. 不能利用文件系统的 Readahead 的功能,顺序读的速度可能做不到最优

自从有了DIO和CIO之后,基于文件系统的数据库性能得以大大提高。CIO是最接近与裸设备的一种基于文件系统的数据库运行方式,因为它解决了两个问题:

没有文件缓存(就是裸设备优势之2.);

没有文件锁(就是裸设备优势之3.)。

它保持了文件的可见性,所以不存在裸设备劣势之1。

当然DIO和CIO同样不支持Readahead。

综上所述:

-          字符设备和块设备是对同一个物理设备的两种不同的存储方式的抽象。

-          裸设备这个感念是针对其上有无文件系统来说的,和字符及块设备在概念上没有任何实质联系;

-          块设备的block buffer机制和文件系统的缓存是两回事;

-          块设备在现代操作系统中基本没有任何用途。

-          数据库用裸设备或文件系统mount with CIO, 结合AIO (异步I/O),可以达到最佳I/O性能

(在AIX 新版本中raw LV 和 CIO FS 均支持 AIO Fast Path );

注:相关概念或称谓在不同的操作系统中可能不尽相同,但原理是一样的。

现在看看我的环境:(AIX5310 + ORA10.2.0.4.0)

1. 创建可扩展的VG

# mkvg -S -y datavg hdisk1

2. 创建LV,使用raw设备

# mklv -y lv_dg1 -t raw datavg 40 (pp size 128MB)

# mklv -y lv_dg2 -t raw datavg 40

# mklv -y lv_flashback -t raw datavg 16

3. 修改属主、权限

# chown oracle:dba /dev/*lv_dg*

# chown oracle:dba /dev/rlv_flashback

# chmod 660 /dev/*lv_dg*

# chmod 660 /dev/rlv_flashback

4. 检查

# ls -al /dev/rlv*

crw-rw—-    1 oracle   dba          42,  1 Nov 12 12:36 /dev/rlv_dg1

crw-rw—-    1 oracle   dba          42,  2 Nov 12 12:37 /dev/rlv_dg2

crw-rw—-    1 oracle   dba          42,  3 Nov 12 12:37 /dev/rlv_flashback

做完这些,在ASM创建磁盘组的时候指定相应路径 /dev/rlv_* 即可。

asm_aix

1
2
3
4
5
6
7
8
9
10
11
SQL>select group_number,name,state FROM v$asm_diskgroup;
 
GROUP_NUMBER     NAME                  STATE
 
------------    --------------------- -----------
 
1                 DG1                   CONNECTED
 
2                 DG2                   MOUNTED
 
3                 DG_FLASHBACK          CONNECTED

-The End-

Written by ochef

November 12th, 2009 at 4:52 pm

Posted in Database

Tagged with , , ,

Configure the CSS on Non-RAC & Trace It (LinuxUnix)

leave a comment

前一篇文章中提到CSS服务启不来,提示如下的错误:

Giving up: Oracle CSS stack appears NOT to be running.

Oracle CSS service would not start as installed

Automatic Storage Management(ASM) cannot be used until Oracle CSS service is started

在单节点上使用ASM是不需要安装CRS的,但使用ASM就一定要CSS的支持,CSS在安装DATABASE的时候已经默认安装,只需要配置就行了。从技术上来讲,上述的错误只要重新配置CSS服务即可。

下面的操作需要root权限:

# rm -f /usr/tmp/.oracle/*

# rm -f /tmp/.oracle/*

# rm -f /var/tmp/.oracle/*

#cd $ORACLE_HOME/bin

#./localconfig delete

#./localconfig add

#/etc/init.cssd run &

Oracle用户:

$ crsctl check crs

CSS appears healthy

Cannot communicate with CRS

Cannot communicate with EVM

$ crsctl check css

CSS appears healthy

$ ps -ef |grep ocssd |grep -v grep

root 123274 151730   0 17:09:48  pts/0  0:00 /u01/app/oracle/product/10.2.0/db_1/bin/ocssd.bin

可以根据CSS相关的log文件来进行诊断:

–$ORACLE_HOME/log/<$HOST>/client/css*.log

这是我机器上的错误信息

$ more css917.log

Oracle Database 10g CRS Release 10.2.0.4.0 Production Copyright 1996, 2008 Oracle.  All rights reserved.

2009-11-11 15:00:04.472: [ CSSCLNT][1]clsssInitNative: connect failed, rc 9

其它log files:

–$ORACLE_HOME/log/hostname/cssd/cssdOUT.log

–$ORACLE_HOME/log/hostname/cssd/ocssd.log

–$ORACLE_HOME/log/hostname/alert<hostname>.log

–/var/tmp/.oracle

还可参考:

http://frits.homelinux.com/wordpress/?p=34

-The End-

Written by ochef

November 11th, 2009 at 7:27 pm

Posted in Database

Tagged with

无觅相关文章插件,快速提升流量