Tag Archives: Oracle

闲扯 DST (Daylight Saving Time) 与 Oracle

这段时间在邮件列表中讨论最多的一个话题就是 DST(Daylight Saving Time)。这个 DST 我们以前称之为”夏令时”,不过英文的叫法似乎更直接(日光节省时、节能时),更能引起人们重视–节约能源。

啥是 DST?

美国加拿大实行 DST 的时间是 3 月的第二个星期天早晨两点开始到 11 月的第一个星期日的早晨两点。三月第二个个星期日早晨两点所有时钟向前回拨一个小时,到 11 月 DST 截止再拨回来。我查了一下,以前似乎不是强制的,这和现任总统小布什签署的 Energy Policy Act of 2005 法案有关。而 2007 年是改方案实行的第一年。
Daylight Saving Time , DST.gif
很明显,对于计算机操作系统与数据库来说,这样折腾来折腾去的不可能靠人手工去调整时间,所以很多欧美软件产商纷纷推出软件补丁来解决这个问题。规模之大足以让人想起千年虫的事件。

DST 与 Oracle

Oracle 数据库的调整可以从 Oracle 站点上的这个指导开始: Oracle Database Daylight Saving Time Update Guide。因为需要打新的软件补丁,数据库必需要进行重新启动。所以很多在线应用必需要忍受这次调整带来的影响。

DST 影响中国么?

我国因为取消了夏令时制度,这可能是因为能源问题虽然更加紧迫,但因为时间变来变去给人们带来的麻烦更多而取消的吧。具体的原因我不清楚,谁知道麻烦告诉我一下。如前所述,国内的 DST 问题实际上是不存在的。当然,如果你的服务器是放在美国或者加拿大,或者是面向这两个地区的用户,就需要评估一下影响了。

关于夏令时

我国曾于1986年到1991年每年从四月的第二个星期天早上2点钟,到九月的第二个星期天早上2点钟,在这段时期内,全国都将时间拨快1小时,实行夏令时。从九月的第二个星期天早上2点钟起,又将拨快的时间重新拨回来,直到第二年四月的第二个星期天早上2点钟。

Linux 怎么应对 DST?

Linux 厂商会有一个官方指导(比如 Redhat 的 DST 指导 )。如果是个人 PC,不妨参考这个:Switching your Linux systems to the new DST
-EOF

Oracle 内存数据库 – TimesTen

闲扯,关于 Cache

在 Google 上用 define:cache 搜索关于 Cache 的定义,简体中文内容中的定义是这样的:

在本地放置、隐藏或存储常用信息以供快速检索。

英文内容挑一条,内容如下:

A memory area where frequently accessed data can be stored for rapid access.

说白了,其实也就是减小开销最大或比较大的那步不必要的交互。

TimesTen

Oracle 的内存数据库 TimesTen 从某种角度上来看,也是一种 Cache 机制,是磁盘数据库的 ‘Cache’,通过物理内存中的数据存储区的直接操作,减少了到磁盘间的 I/O 交互。TimesTen 中的这个 Ten 据说就是指速度能达到基于磁盘的 RDBMS 10倍,从去年开始在国内市场也有很多活动,逐渐吸引了很多技术人员的注意。实际上,这个产品也是有一定潜在市场的。

TimesTen 与基于磁盘的 RDBMS 架构的比较

如图:
disk-based_rdbms_vs_timesten.png
这个示意图引用自 Oracle TimesTen In-Memory Database Introduction,下载该文档请到官方网站
这个数据库 的 License 报价并不贵,List 价格是 $12K/CPU,对于响应速度要求比较高,可靠性要求不是非常非常高(安装 TimesTen 的系统内存可靠性会比你的 SAN 存储系统可靠性高么?)的系统,TimesTen 作为大事务数据库的前端数据库会是一个不错的选择:
timesten_role.png
引用自:oracle-timesten-accelerate.pdf
EOF

从 Qnxo 到 Quest CodeGen Utility

早晨收到 Steven Feuerstein (Oracle PL/SQL Guru)署名的一封邮件。介绍了他的得意之作 Qnxo 工具的一些变化。
Steven 开发了 Qnxo 工具 ,这个工具名字的四个字母取自 Quality in, Excellence Out,是一款旨在提高 PL/SQL 代码质量与开发速度的工具。去年 Quest 公司收购他的 Qnxo ,重新命名为 Quest CodeGen Utility (QCGU) ,并将其免费,对,Freeware! 预计将在今年的上半年推出 1.5 版,届时将通过 ToadWorld.com 发布。目前是 1.4 版,可以在 QCGU.net 下载,并可以获得正式 License (原来的 Qnxo 并不是免费的,只是提供了 30 天试用期)
我曾经试用过 Qnxo, 对于 Oracle 开发人员来说,通过该软件的确能够学到很多良好 PL/SQL 编程习惯。这样好产品,现在还变成免费的,值得尝试用用。
EOF
题外话:Steven Feuerstein 期待与美国现任总统小布什会面的事情还没有结果。

Oracle 10g 中 CONNECT 角色的变化

其实是一个很老的”新”变化。Oracle 10g 对 CONNECT 角色作了一点调整。原来的 CONNECT 角色(9i) 包括

CREATE SESSION
CREATE TABLE
CREATE VIEW
CREATE SYNONYM
CREATE CLUSTER
CREATE DATABASE LINK
CREATE SEQUENCE
ALTER SESSION

其中象 ALTER SESSION 这样的权限还是很危险的,一个用户可以搞垮整个数据库。所以估计是出于安全的原因吧,Oracle 10g 现在只保留了 CREATE SESSION 这个权限。
在 Metalink Note:317258.1 描述了 CONNECT 的变迁,不看不知道,一看吓一跳,在 Oracle 7 上该角色还包括预定义角色 DBA , 即使是 Oracle 8i 上,该角色也包括了很多权限过大的预定义角色。
细微的东西往往隐藏着危险。
如果是从低版本升级到 10g 导致权限问题,可以用 $ORACLE_HOME/rdbms/admin/rstrconn.sql 这个脚本进行恢复.
EOF