标签存档: Linux

Oracle查询指定记录数的奇怪问题

首先看一段代码:

dbo.getPreparedStatement("select * from (select * from Entity_HotLink wherehotLinkSortId = ? and hotLinkStatus = ? order by hotLinkOrder ASC, lastModifiedDate DESC) where ROWNUM <= ?");
dbo.pstmt.setInt(1, hotLinkSortId);
dbo.pstmt.setInt(2, hotLinkStatus);
dbo.pstmt.setInt(3, count);

环境1:windows + oracle 10g 正常
环境2: Redhat E5.2 64bit + oracle 10g(RAC集群) 查询执行,但是返回记录数只有10条,不管你的count有多大。

改成

dbo.getPreparedStatement("select * from (select * from Entity_HotLink where hotLinkSortId = ? and hotLinkStatus = ? order by hotLinkOrder ASC, lastModifiedDate DESC) where ROWNUM <= " + count);
dbo.pstmt.setInt(1, hotLinkSortId);
dbo.pstmt.setInt(2, hotLinkStatus);

则都能正常查询记录。

此问题比较奇怪有问题再研究研究。

FastDFS试用

环境:Ubuntu 9.10 64bit
FastDFS 1.21

FastDFS总体来说安装比较方便,配置简单。
安装可参照官方文档
./make.sh
./make.sh install
如果无法执行这些命令请先安装gcc
sudo apt-get install gcc
另外在Ubuntu系统上安装时需要将make.sh最后一段if去掉,否则./make.sh install时会报错。

接着新建一个数据存放的目录
sudo mkdir /data
sudo chown user:group /data

然后配置参数,分为两部分一部分是storage.conf另外是tracker.conf
文件在/etc/fdfs中
启动tracker
sudo /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启tracker
sudo /usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd /etc/fdfs/tracker.conf
启动stroage
sudo /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf
重启stroage
sudo /usr/local/bin/restart.sh /usr/local/bin/fdfs_storaged /etc/fdfs/storage.conf

如果启动时报找不到http.conf则sudo touch /etc/http.conf再启动就好了

monitor
sudo /usr/local/bin/fdfs_monitor /etc/fdfs/storage.conf

更换storage的IP后,需要删除以前的IP信息,使用fdfs_monitor命令:
/usr/local/bin/fdfs_monitor config_file [list|delete [storage_ip]]

测试上传
/etc/fdfs/storage.conf upload /usr/include/stdlib.h

Linux下的链接

Linux下的链接一般使用ln命令创建
以下是ln命令的说明:
指令名称 : ln
使用权限 : 所有使用者
使用方式 : ln [options] source dist,其中 option 的格式为 :
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结 (hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档案系统中,而软连结却可以跨越不同的档案系统。
ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。
不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
参数 :
-f : 链结时先将与 dist 同档名的档案删除-d : 允许系统管理者硬链结自己的目录-i : 在删除与 dist 同档名的档案时先进行询问-n : 在进行软连结时,将 dist 视为一般的档案-s : 进行软链结(symbolic link)-v : 在连结之前显示其档名 -b : 将在链结时会被覆写或删除的档案进行备份-S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾-V METHOD : 指定备份的方式–help : 显示辅助说明–version : 显示版本
范例 :
将档案 yy 产生一个 symbolic link : zz
ln -s yy zz
将档案 yy 产生一个 hard link : zz
ln yy xx

对于一些特殊情况ln会达不到你想要的效果可以使用
mount –bind olddir newdir
他和普通mount的区别是可以将一个目录以像设备一样挂载到另一个目录上而ln只是创建了一个符号链接,本质上还是属于一种文件。

初试Linode VPS

火山互联的VPS用了几个月,感觉除了价格便宜,别的真是不怎么样,特别是服务。

最近严查服务器,火山竟然二话不说封掉了VPS的80端口,而且都不知道什么时候才能重新开放,真是让人失望。

所以所幸将网站都搬到Linode上,也省去以后域名备案等的麻烦。

Linode一直有着很好的口碑,价格中等,用了之后觉得的确物有所值。

我够买的是Linode360的VPS,选择了Fremont机房,系统安装了Unbuntu9.04 64bit。

选择Ubuntu是因为apt-get安装软件真的很方便,节省了很多服务器配置的时间。

登录服务器后第一件事就是尝试更新系统。

apt-get update

apt-get upgrade

由于服务器在国外,那网络速度不是一般的快啊,一下子就好了。

接着配置mysql apache php vsftpd 等。

在安装过程中如果碰到一些软件包获取不到,如php5-mcrypt

你可以把/etc/apt/source.list中的一些注释掉的源打开。

再apt-get update一次

再搜索就有了。

总的来说非常方便,支持Linode