Self-introduction
@Alipay,计算机专业。
喜欢互联网,崇尚网络自由和开放,旗帜鲜明的反对妄图扼杀自由的行为。
喜欢看电影,国产大片、科幻片和鬼片例外,以前比较偏好喜剧和港产警匪片,比如周星驰系列喜剧和银河映像出品的电影;看过无数好莱坞电影后,现在比较喜欢美国的独立小电影和法国风味的电影,诸如《杯酒人生》和《天使爱美丽》等。
喜欢听的一些歌:魔岩三杰、汪峰、王菲的大部分,郑钧、许巍的一些,左小祖咒以及其它歌手的小部分。
现在看书的时间比较少,其中大部分又花费在技术书籍上,以后坚持少上豆瓣,多看书。
经常使用的网站或服务:Google以及它的很多服务、Twitter、虾米、豆瓣。
Category Archives: 技术经验帖
使用虚拟机配置路由器
整理实验室用的机器,发现有一些原来的经验文档,所以贴在博客上。 实验室的路由器被某某原因拿走了,我不想配置windows做路由器,所以弄了一个虚拟机来做一个强大的路由器。 1、安装虚拟机,比如smoothwall-express-3.0-i386可以专门用来做路由器的os,非常强大。 2、在虚拟机中安装操作系统,同时设置双网卡; 3、在虚拟机中的配置双网卡: 外网:ip地址202.114.119.36,mac地址为:00:09:6B:C1:47 配置ip地址命令为: $ ifconfig eth1 202.114.119.36 配置mac地址的命令为: $ ifconfig eth1 down $ ifconfig eth1 hw ether 00096BC147 $ ifconfig eth1 up 内网:ip地址为192.168.1.1,同时可以开启dhcp。ok,大告功成!
Posted in 技术经验帖 Leave a comment
完全卸载Oracle 9i记事
1.停止Oracle服务 进入服务管理器,“开始-》运行-》services.msc”,停止那些Oracle服务, 他们都具有一个oracle或ora 的前缀。一旦停止了所有的Oracle服务, 我们建议将它们设置为手工启动模式(manual start mode)。 2.删除注册表中相关项 1)进入注册表编辑器; 2)、备份Windows 注册表。 启动Registry Editor 并从菜单中选择 File | Export。 3)、用命令 regedt32启动Registry Editor。找到HKEY_CLASSES_ROOT节点并删除所有以字符串 Oracle、ORA、ORCL开始的键。 4)、找到HKEY_LOCAL_MACHINE/SOFTWARE键并删除 Oracle 和 Apache Group 键。 5)、删除HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\odbcinst.ini 下 面的Oracle ODBC Driver键。
有关SELinux设置错误不能够启动的一个解决方法
造成此次问题的原因: 我用的linux版本是CentOS5.2,在安装Oracle10g的时候,需要关闭SELinux,在修改配置文件/etc/selinux/config过程中,本来应该设置: # SELINUX=enforcing SELINUX=disabled 但是我粗心大意,设置了SELINUXTYPE参数: #SELINUXTYPE=targeted SELINUXTYPE=disabled 问题现象: 重启Centos的时候,提示: unable to load selinux policy. machine is in enforcing mode. halting now. kernel panic-not syncing:attempted to kill init! 解决方法: 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet” 一栏, 按‘e’键进入编辑,在末尾增加enforcing=0,即: kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet enforcing=0 按‘b’键继续引导,OK顺利前进。
Delphi7 中使用ODAC存取图片
最近很少写技术贴,前几天协助王锋师兄解决了在delphi7中,使用ODAC组件存取图片的问题。事后,他整理了一个经验文档,争得他同意,我贴出来,以备以后查询之用。 说明:ODAC组件我不熟悉,在使用它存取图片的时候,特别注意sql的写法。 ODAC 组件支持 Oracle8 的 BLOB 和 CLOB 数据类型。你可以使用 TOraQuery 组件来获取 LOB 字段的值,BLOB 和 CLOB 数据类型通过 LOB 定位器(指定数据地址) 存储在表列中;实际的 BLOB 和 CLOB 数据存储在独立的表空间中。当存取 LOB 列时,返回的是定位器。要初始化 LOB 定位器,你必须使用 EMPTY_BLOB 或 EMPTY_CLOB Oracle 函数。要返回初始化后的定位器,应在同样的语句中使用 RETURNING 子句。ODAC 写 LOB 数据到 Oracle 且返回初始值字段,需使用:值参数. 对 ODAC 来说,在 LOB 操作中使用 ParamType 属性是非常重要的。如果 ParamType 是 ptInput , ODAC 写数据到服务器,如果 ParamType 是 [...]
Chrome的内存管理
在Windows下,Chrome使用单独进程来运行每一个Tab页和每一个扩展,如果打开网页多了,或者安装插件多了,对于内存吃紧的机器,可以明显感觉到机器速度变慢,甚至到达卡的地步。Chrome有一个任务管理器(Task Manager),使用shift + ESC调出来,如下图: 使用任务管理器,可以查看Tab页和扩展占用内存的情况,对于一些不常用的但是占用内存大的扩展,可以结束掉其进程,或者在扩展管理器中停用此扩展。 此外,在Chrome的新版本中,加入了一个新的参数”–purge-memory-button” ,当在Chrome的启动命令行加入这个参数后,如下图,Chrome的任务管理器就会出现一个新的Purge memory清理内存按钮,点击这个按钮你会发现某些tab或者是扩展使用的内存数会出现下降。
使用绑定变量和不使用绑定变量操作数据库
以下例子是在delphi中编程实现,数据库为oracle,具体的代码省略了,只说明情况。 1、不使用绑定变量 例子:删除同一张表的两条记录。 sql语句如下: (1)delete from t_englishscore_score where STUDENTNUM=’200431500123′ and LESSONNAME=’test’ and YEAR=’2005′ and TERM=’上’; (2)delete from t_englishscore_score where STUDENTNUM=’200431500123′ and LESSONNAME=’毕业设计’ and YEAR=’2007′ and TERM=’下’ 此时查询v$sqltext视图(它能够反映oracle 中share pool中的sql解析共享情况): ADDRESS HASH_VALUE SQL_ID COMMAND_TYPE PIECE SQL_TEXT 0000000173D47990 2193311325 1mhba361bqjkx 7 0 delete from t_englishscore_score where STUDENTNUM=’200431500123′ 0000000173D47990 2193311325 1mhba361bqjkx 7 1 and LESSONNAME=’test’ and YEAR=’2005′ and [...]
关闭Centos的自动更新
昨天跟老板汇报,提到我们的linux服务器每天自动更新,老板大发雷霆,说生产系统不能够这样,非常不安全,一个师兄也提到他原来在移动的时候,服务器更新也是很谨慎的事情。看来我的思维太技术了,不够全面,所以回来就把自动更新关了。 操作记录如下: [root@jwbdb alpha]# chkconfig –list yum-updatesd yum-updatesd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 [root@jwbdb alpha]# service yum-updatesd stop 停止 yum-updatesd: [确定] [root@jwbdb alpha]# service yum-updatesd status yum-updatesd 已停 [root@jwbdb alpha]# chkconfig –level 35 yum-updatesd off [root@jwbdb alpha]# chkconfig –list yum-updatesd yum-updatesd 0:关闭 1:关闭 2:启用 3:关闭 4:启用 5:关闭 6:关闭
禁用SELinux时配置错误导致Centos不能够启动的一种解决方法
造成此次问题的原因: 我用的linux版本是CentOS5.2,在安装Oracle10g的时候,需要关闭SELinux,在修改配置文件/etc/selinux/config过程中,本来应该设置: # SELINUX=enforcing SELINUX=disabled 但是我粗心大意,设置了SELINUXTYPE参数: #SELINUXTYPE=targeted SELINUXTYPE=disabled 问题现象: 重启Centos的时候,提示: unable to load selinux policy. machine is in enforcing mode. halting now. kernel panic-not syncing:attempted to kill init! 解决方法: 系统启动的时候,按下‘e’键进入grub编辑界面,编辑grub菜单,选择“kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet” 一栏,按‘e’键进入编辑,在末尾增加enforcing=0,即: kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/vogroup00/logvol00 rhgb quiet enforcing=0 按‘b’键继续引导,OK顺利前进。
Posted in 技术经验帖 Leave a comment
使用Merge语句同时执行插入和更新操作
考虑下列情况,对于一张表T,有(A,B)两列,进行下列操作:如果表T中存在A=‘a1’的记录,就更新对应的B列值为‘b1’;如果不存在,就插入这一条记录。 经典的处理方式是先查询,看记录是否存在,再确定是进行插入还是删除操作。 从oracle9i开始,就已经支持Merge语句,可以使用一条sql语句,同时执行插入和更新操作。 下面举一个例子,表t_englishscore_stuengname表,有studentnum和engname两列,现在需要处理一条记录:(’20011111111′,’Li Bo’),不确定是否插入还是更新,使用Merge语句如下: merge into t_englishscore_stuengname t using (select ’20011111111′ as studentnum,’Li Bo’ as engname from dual) s on (t.studentnum=s.studentnum) when matched then update set t.engname=s.engname where t.studentnum=s.studentnum when not matched then insert (studentnum,engname) values(s.studentnum,s.engname); 有关Merge语句的详细说明参见下列网址,本文不予赘述。 [1] eygle. 使用Merge Into 语句实现 Insert/Update. http://www.eygle.com/digest/2009/01/merge_into_insertupdate.html. [2] eygle. Merge用法:Oracle 10g中对Merge语句的增强. http://www.eygle.com/digest/2009/02/mergeoracle_10gmerge.html [3] google. www.google.com
dbresp.pl导致Oracle高负载问题