-
919
模糊查询like ‘%XX%’ 的优化一例
Posted in DBA, SQL, 74 views
-
sql中的like ‘%xx%’模糊查询无法走索引,影响执行速度。经测试itpub版主ifree的index_ffs+rowid方法比较有效,记录一下。
这里是示例:
scott@ORCL> CREATE INDEX SCOTT.i_dept_name
2 ON SCOTT.DEPT(DNAME)
3 ;Index created.
scott@ORCL> Analyze Table SCOTT.DEPT Compute Statistics ;
Table analyzed.
scott@ORCL> select * from scott.dept where
2 rowid in (
3 select /*+ index_ffs(a i_dept_dname) */
4 rowid from scott.dept a where dname like ‘%A%’)
5 ;这个方法要求like查询出的记录不能太多,在我的应用中,这一方法使sql效率提高了近10倍。
Blogged with the Flock Browser -
Comments
-
902
Ubuntu下同步palm
Posted in Linux/Unix, 视野, 41 views
-
Palm只提供了windows平台的客户端,在linux下,在经过一些配置后,同样可以对palm设备进行管理。
本文档在Ubuntu8.04、Palm Centro(Palm OS 5)环境下测试通过。
Ubuntu的源中可以找到Pilot、Kpilot、Jpilot等多种工具,其中Jpilot对新设备的支持比较好,推荐使用。
当palm通过usb接入计算机后,linux的日志会记录下usb接口的信息,
通过这个命令查看:$dmesg在标准的ubuntu下,会看到这样的信息:
Jul 21 08:34:43 laptop kernel: [31222.449600] usb 2-2: new full speed USB device using uhci_hcd and address 3
Jul 21 08:34:43 laptop kernel: [31222.623557] usb 2-2: configuration #1 chosen from 1 choice
Jul 21 08:34:54 laptop kernel: [31232.920043] usb 2-2: USB disconnect, address 3这表示系统可以看到usb设备,但是无法识别是什么设备。
让ubuntu与设备通讯:
$sudo /sbin/modprobe usbserial
$sudo /sbin/modprobe visor再查看一下日志,会看到新的信息
Jul 21 08:37:27 laptop kernel: [31385.682799] usb 2-2: USB disconnect, address 5
Jul 21 08:37:27 laptop kernel: [31385.683606] visor ttyUSB0: Handspring Visor / Palm OS converter now disconnected from ttyUSB0
Jul 21 08:37:27 laptop kernel: [31385.683751] visor ttyUSB1: Handspring Visor / Palm OS converter now disconnected from ttyUSB1也可以通过lsmod检查ubuntu是否识别了新设备:
$ sudo /sbin/lsmod | grep visor
visor 20364 0
usbserial 32488 1 visor
usbcore 134280 9 visor,usbserial,usbhid,ndiswrapper,usb_storage,lib usual,ehci_hcd,uhci_hcd让系统可以再下次引导后加载新设备
$sudo vi /etc/modprobe.d/options
添加新的一行:
options visor vendor=0×830 product=0×61在每次挂载palm设备时创建/dev/pilot的符号链接
$sudo vi /etc/udev/rules.d/10-custom.rules
添加新的一行:
KERNEL=”ttyUSB*”, NAME=”%k”, SYMLINK=”pilot”, GROUP=”uucp”, MODE=”0666″现在如果重新登录系统,让变更生效,在palm sync时就会创建/dev/ttyUSB0或/dev/ttyUSB1等设备链接。但此时它也许是不可写的,因此需要变更相应的权限:
$sudo vi /etc/udev/rules.d/40-permissions.rules
在#Serial devices 这一段,
将
KERNEL==”ttyLTM[0-9]*”, GROUP=”dialout”, MODE=”0660″
修改为
KERNEL==”ttyLTM[0-9]*”, GROUP=”dialout”, MODE=”0666″最后再为系统启动添加设备模块
$sudo vi /etc/modules
添加两行:
usbserial
visor重启系统——运行jpilot——安装palm用户——现在,你的palm可以跟linux交互了
Blogged with the Flock Browser -
Comments linux palm pilot
-
829
Vmware server 1.06 虚拟机自动关机故障一例
Posted in Linux/Unix, SA, 26 views
-
在Vmware server上安装Clusterware时,一个节点总在安装中途无征兆自动断电关闭。
检查vmware server的日志文件/var/log/vmware/vmware-serverd.log,里面记录了这样一段信息
Aug 29 12:48:55: app| VmsdRegister: Config file has changed: /opt/VmwareMachine/rac02/rac02.vmx
Aug 29 12:54:17: app| OvlHostStartIo: errno 104
Aug 29 12:54:17: app| vmdbPipe_Streams: Couldn’t read
Aug 29 12:54:17: app| VM suddenly changed state: poweredOff.
Aug 29 12:54:17: app| Removing from running vm list: /opt/VmwareMachine/rac02/rac02.vmx
Aug 29 12:54:17: app| VMServerd IPC closed the connection with thread /opt/VmwareMachine/rac02/rac02.vmx (0×830224c)
Aug 29 12:54:17: app| Lost connection to /opt/VmwareMachine/rac02/rac02.vmx (/opt/VmwareMachine/rac02/rac02.vmx) unexpectedly.
Aug 29 12:54:17: app| VM suddenly changed state: poweredOff.
Aug 29 12:54:17: app| VM suddenly changed state: poweredOff.
Aug 29 12:54:17: app| VM suddenly changed state: poweredOff.这样的故障通常由2种状况引起:
1、虚拟机不能正确定位及使用swap文件
2、虚拟机没有正确注册到Vmware server中由于故障节点是由另一节点复制出的,所以猜测可能是注册上的问题,对其重新注册
#vmware-cmd -s unregister /path-to-.vmx-file
#vmware-cmd -s register /path-to-.vmx-file故障解决
Blogged with the Flock Browser -
Comments vmware 自动关机
-
829
RHEL上清除Oracle10g clusterware的失败安装
Posted in DBA, 30 views
-
在安装Oracle10g clusterware的过程中,经常会遇到错误导致安装失败,这时候需要清除所有已安装的信息,保证重新安装的顺利进行。
这个工作在不同平台上是略有差别,对于Redhat,需要作这样几步:
1、以root身份运行$ORA_CRS_HOME/install/rootdelete.sh
2、
rm -f /etc/init.d/init.cssd rm -f /etc/init.d/init.crs rm -f /etc/init.d/init.crsd rm -f /etc/init.d/init.evmd rm -f /etc/rc2.d/K96init.crs rm -f /etc/rc2.d/S96init.crs rm -f /etc/rc3.d/K96init.crs rm -f /etc/rc3.d/S96init.crs rm -f /etc/rc5.d/K96init.crs rm -f /etc/rc5.d/S96init.crs rm -Rf /etc/oracle/scls_scr rm -f /etc/inittab.crs cp /etc/inittab.orig /etc/inittab 3、rm -rf /var/tmp/.oracle 或 rm -rf /tmp/.oracle 4、删除ocr.loc,这个文件通常位于/etc/oracle中 5、rm -Rf <CRS 安装目录>/* 6、清空OCR和Votingdisk文件,如果rdsk不存在,则这一步可以略过 dd if=/dev/zero of=/dev/rdsk/V1064_vote_01_20m.dbf bs=8192 count=2560 dd if=/dev/zero of=/dev/rdsk/ocrV1064_100m.ora bs=8192 count=12800Blogged with the Flock BrowserTags: clusterware, uninstall, oracle, rac
-
Comments clusterware delete rhel
-
828
Oracle10g clusterware 安装中遇到的一个问题
Posted in DBA, 22 views
-
在Specify Cluster Configuration这一步配置好节点后,点next可能会遇到:
The specified nodes are not clusterable
INFO: Query Returned:
null这是由于ssh的可信验证没有设置好:尽管已经配置了可信验证,但Clusterware要求hosts文件中各节点的public node name、private node name以及它们对应的别名,全部都通过ssh可信验证。
但由于ssh的特性,在第一次连接的时候,会提示是否添加新的key,如果事先没有将以上所有名称的对应key加上,Clusterware就会报上面的错误
解决方法很简单:对每个所需的name做一次ssh连接,将key加入每个节点中
Blogged with the Flock BrowserTags: oracle, clusterware, ssh, rac
-
Comments clusterware oracle rac
-
827
ntp错误处理2则
Posted in Linux/Unix, SA, 21 views
-
no server suitable for synchronization found
这个错误的原因可能包括:
1、防火墙导致client无法连接到server
2、ntp server在启动后的5-15分钟内无法提供服务,这是server端特性所决定,在此期间内client可能会出现上面的错误the NTP socket is in use, exiting
这个错误是因为client端也启动了ntp server服务,导致资源冲突
/sbin/service ntpd stop 关闭即可Blogged with the Flock BrowserTags: ntp, noserver suitable for synchronization found, the NTP socket is in use
-
Comments ntp
-
820
Ubuntu+nvidia开启双显示器支持
Posted in Linux/Unix, 68 views
-
Ubuntu 8.04中已经整合了比较新的nVidia显卡驱动,因此我们做的工作其实非常简单。
安装nvidia-settings工具包
sudo apt-get install nvidia-settings在菜单的 系统-系统管理-NVIDIA X Server Settings 中启动显卡设置工具
选择 X Server Display Configuration,如果在Layout区域中没有看到外接显示器,点击下方的Detect Displays按钮进行检测。
在Configure中有2个选项:Separate X screen(单独输出到一个显示器)和TwinView(双显示)
显而易见,需要选用TwinView。
在Windows下,双显示器可以是不同的分辨率,而任务栏和应用程序窗口都会出现在显示范围内。而Ubuntu似乎还没有这么聪明,如果2个显示分辨率不同,则分辨率低的会少显示一块区域。当分辨率高度不同的时候,少显示的这个区域正好是任务栏和菜单栏,导致系统没有可操作性。
解决方法只能是降低高分辨,让2个分辨率的高度值一致
Blogged with the Flock Browser -
Comments nvidia TwinView ubuntu
-
814
Cacti无法登陆故障解决一例
Posted in Linux/Unix, SA, 39 views
-
Cacti0.87b,今天发现不能登陆。
具体表现为:
用户名/密码输入正确、数据库的user_log表中正确记录了登录信息,并且result为1(验证成功),但是页面始终停留在index.php,不能进入
查资料得知,这个现象大多时候是因为php的session异常。
经检查发现,在这台机器上,由于另一服务的日志突然暴增,导致/分区的磁盘容量用尽,session无地方可写。删除异常的日志文件后,问题得到了解决。
另:
cacti的密码是MD5加密的,可以在登录mysql后,用这种方式重置密码
UPDATE user_auth SET password=MD5(”yourpassword”) WHERE username=’admin’
-
Comments cacti can't login 无法登陆
-
807
ubuntu8.04安装oracle10遇到的几个小问题
Posted in DBA, 41 views
-
1、运行runInstaller提示 操作系统版本检查失败
加 -ignoreSysPreReqs 参数忽略掉操作系统检查就可以安装了
2、安装窗口乱码
设置当前语言环境为英文即可
export LANG=en_US.UTF-83、安装到中途报错
Error in invoking target ‘utilities ctx_on’ of makefile ‘/opt/oracle10g/u01/app/oracle/product/10.2.0/db_1/rdbms/lib/ins_rdbms.mk’. See ‘/opt/oracle10g/u01/app/oraInventory/logs/installActions2006-08-12_11-54-03PM.log’ for details.这是一个bug,解决方法是:
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
ln s /usr/bin/basename /bin/basename
ln s $ORACLE_HOME/lib/libclient10.a $ORACLE_HOME/lib/libagtsh.a
$ORACLE_HOME/bin/genagtsh $ORACLE_HOME/lib/libagtsh.so 1.0Blogged with the Flock Browser -
Comments 10g install oracle ubuntu
-
730
等待事件相关的SQL
Posted in DBA, SQL, 32 views
-
–求等待事件及其对应的latch
col event format a32
col name format a32
select sid,event,p1 as file_id, p2 as “block_id/latch”, p3 as blocks,l.name
from v$session_wait sw,v$latch l
where event not like ‘%SQL%’ and event not like ‘%rdbms%’
and event not like ‘%mon%’ and sw.p2 = l.latch#(+);
–求等待事件及其热点对象col owner format a18
col segment_name format a32
col segment_type format a32
select owner,segment_name,segment_type
from dba_extents
where file_id = &file_id and &block_id between block_id
and block_id + &blocks - 1;
–综合以上两条sql,同时显示latch及热点对象(速度较慢)select sw.sid,event,l.name,de.segment_name
from v$session_wait sw,v$latch l,dba_extents de
where event not like ‘%SQL%’ and event not like ‘%rdbms%’
and event not like ‘%mon%’ and sw.p2 = l.latch#(+) and sw.p1 = de.file_id(+) and p2 between de.block_id and de.block_id + de.blocks - 1;
–如果是非空闲等待事件,通过等待会话的sid可以求出该会话在执行的sqlselect sql_text
from v$sqltext_with_newlines st,v$session se
where st.address=se.sql_address and st.hashvalue=se.sql_hash_value
and se.sid =&wait_sid order by piece; -
Comments DBA oracle session_wait SQL 等待事件

Comments
chijiao
多谢,怪不得,ubuntu 8.04 安装 eva可以用,到了8.10就 ...
小朋
太冷了。。
zhangxin
这群有意思~ 啥群?
Sunshow
签到
xiaopeng
苏苏,你终于发了一篇我能看懂的。