Redhat上安装Perl DBD::mysql驱动
打算熟悉下perl,自然主要用于数据库管理和监控方面的,所以需要连接数据库。Perl连接数据库可以通过DBI模块和相应数据库的DBD驱动,上一篇记录了DBI模块的安装,这里记录下DBD::mysql驱动的安装。可以从CPAN下载相应DBD驱动。
安装过程很简单,下载解压:
tar xvf DBD-mysql-4.006.tar
然后进入DBD-mysql-4.006目录,执行:
make
make test
make install
检查已经安装的Perl模块:
DBD::mysql
DBI
Perl
安装DBD::mysql需要mysql_config,包含在Headers and libraries安装包中(MySQL-devel-community-5.1.23-0.rhel4.i386.rpm),并且PATH环境变量中必须包含mysql_config所在的路径。否则在执行perl Makefile.PL生成makefile的时候会报错:
Can’t exec “mysql_config”: No such file or directory at Makefile.PL line 76.
Cannot find the file ‘mysql_config’! Your execution PATH doesn’t seem
not contain the path to mysql_config. Resorting to guessed values!
Can’t exec “mysql_config”: No such file or directory at Makefile.PL line 466.
通过调用DBI->available_drivers()函数可以查看当前系统中已经安装好的所有驱动。安装好DBI和DBD::mysql后,就可以访问MySQL数据库啦,首先在test库中创建一个table:
然后执行下面的Perl脚本插入一条数据并且查询得到结果:
use DBI;
my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost","NinGoo","password", {'RaiseError' => 1});
my $rows = $dbh->do("INSERT INTO test (id, name) VALUES (1, 'NinGoo')");
my $query = $dbh->prepare("SELECT name FROM test");
$query->execute();
while(my $rs = $query->fetchrow_hashref()) {
print "$rs->{'name'}\n";
}
Redhat Linux上Oracle如何启用AIO
从Oracle9iR2开始支持Linux上的异步IO,但是Oracle9iR2和Oracle10gR1中的AIO模块默认是disable的,如果要启用必须relink一下
make -f ins_rdbms.mk async_on
make -f ins_rdbms.mk ioracle
当然,如果要关闭AIO支持,只需要使用async_off选项进行relink即可。在Oracle10gR2中AIO默认已经是开启的了。可以通过ldd或者nm来检查oracle是否已经启用了AIO支持,有输出代表已经启用
libaio.so.1 => /usr/lib64/libaio.so.1 (0x0000003ca9800000)
/usr/bin/nm $ORACLE_HOME/bin/oracle | grep io_getevent
w io_getevents@@LIBAIO_0.4
当然,Linux也必须已经安装了AIO相关的package
libaio-0.3.105-2
libaio-devel-0.3.105-2
可以通过查看slabinfo统计信息查看操作系统中AIO是否运行,slab是Linux的内存分配器,AIO相关的内存结构已经分配的话(第二列和第三列非0)说明AIO已经启用
kioctx 102 170 384 10 1 :tunables 54 27 8 : slabdata 17 17 0
kiocb 488 495 256 15 1 :tunables 120 60 8 : slabdata 33 33 120
最后,还需要在Oracle中设置相关的初始化参数来使用AIO
filesystemio_options = asynch #文件系统才需要
Redhat上安装Perl DBI模块
打算熟悉下perl,自然主要用于数据库管理和监控方面的,所以需要连接数据库。Perl连接数据库需要安装DBI模块和相应数据库的DBD驱动,Linux上默认安装的Perl是没有该模块的。可以从CPAN下载DBI模块进行安装。
安装过程很简单,下载解压:
tar xvf DBI-1.604.tar
然后进入DBI-1.604目录,执行:
make
make test
make install
以下脚本可以用来检测系统中已经安装的Perl模块:
use ExtUtils::Installed;
my $inst = ExtUtils::Installed->new();
print join "\n",$inst->modules();
安装完DBI后执行该脚本的结果如下:
DBI
Perl
DBI的文档可以通过perldoc查看:
解决xmanager无法启动AIX的CDE桌面一例
昨天在AIX上中安装oracle9i的时候,xmanager能连上服务器,也能登陆,但之后就一直停在starting CDE environment,桌面死活出不来。检查服务器,CDE是安装了的,执行/etc/rc.dt也能顺利启动,检查dtlogin也运行正常。
最后发现,问题出在/etc/hosts上,假设主机名为test,IP地址为192.168.168.1,/etc/hosts文件中存在如下记录
192.168.168.1 test1 test
也就是这个位于test之前的test1造成了问题,去掉后桌面正常出来了。还有一个小问题,在AIX上安装9i会要求指定JDK1.3.1的位置,大多数情况下,安装程序会在$ORACLE_BASE/jre上安装一个1.1.8和1.3.1的版本,但有时也可能碰到没有安装的情况,这时可以指定系统中其他版本的JDK,比如/usr/java14,系统中是否已经安装其他版本的jdk可以通过which java来查看。
记录一下备忘。