首页

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 (Page 10 of 23)



April 24, 2007

偶然发现 Oracle 宣布了对 9iR2 的扩展服务支持(Extended Support)。原定 9i 的产品周期是到 07 年的七月终止。可能是考虑到 10g 的不稳定或者是 9i 不想迁移的用户实在太多了吧,Oracle 现在提供对 9i 产品继续支持,而且是免费的。具体的内容包括:

Extended Support fee waived for period August 1, 2007 to July 31, 2008.
Access to Fixes and Critical Patch Updates (CPUs) during the first year of Extended Support at no additional cost.
Patch set 9.2.0.8 will be the last patch set available for Oracle9i Database Release 9.2.
Effective August 1, 2007 all CPUs and Fixes will be created against the 9.2.0.8 code line.

其中要注意的是 9.2.0.8 一下的 PatchSet 已经不被支持。想得到 Oracle 的支持服务卡那里必须要升级到 9.2.0.8 才成。

这个扩展服务支持为期一年,不知道一年后将怎样,到时候都奥运了 :)

--EOF--

| | Comments (4) | TrackBacks (2)


April 20, 2007

这几天一直忙着折腾系统,抽空安装了好几台大大小小的服务器上的 Oracle,简单说说在 AMD 64 机器(RHEL 4) 上部署 Oracle 的注意事项。

首先, Werner Puschitz 的 Oracle 安装指导肯定是要看看的,特别注意其中要求的安装包,glibc-devel 包 32 位与 64 位都是需要的。查询语句如下:

rpm  --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" -q make \
       binutils \
       gcc \
       cpp \
       glibc-devel \
       glibc-headers \
       glibc-kernheaders \
       compat-db \
       compat-gcc \
       compat-gcc-c++ \
       compat-libstdc++ \
       compat-libstdc++-devel \
       gnome-libs \
       openmotif21 \
       setarch 

第二个必需要注意的地方是 gcc 工具的处理,与 32 位操作系统略有不同:

mv /usr/bin/gcc /usr/bin/gcc.orig
mv /usr/bin/g++ /usr/bin/g++.orig
ln -s /usr/bin/x86_64-redhat-linux-gcc32 /usr/bin/gcc
ln -s /usr/bin/x86_64-redhat-linux-g++32 /usr/bin/g++

$LD_ASSUME_KERNEL 环境变量要设定:

export LD_ASSUME_KERNEL = 2.4.19
这个变量如果不设定的话,安装的画面会一直 Hang 在那里。

有的兼容软件可以在 Oracle Compatibility 项目主页上下载,compat-libcwait 与 compat-oracle 这 2 个包是必须的。

Oracle 的安装还是一如既往的麻烦,考虑到每台机器还要打 Patchset,然后是一堆过渡性补丁,绝对是体力活。

--EOF--

| | Comments (4)


March 8, 2007

这段时间在邮件列表中讨论最多的一个话题就是 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--

| | Comments (6)


March 6, 2007

闲扯,关于 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--

| | Comments (11)


February 26, 2007

Internet Archive(IA) 这个站点大家应该都不陌生。IA 旨在建立所有互联网站点的"档案库",如果说 Google 是互联网的数据库的话,那么 IA 就是互联网的数据仓库了,定期对每个 Web 页面保存快照,数据量之大可想而知。

先看看 IA 每天需要面对的处理能力:
存储超过 850 亿个 Web 页面;
每天大约 600 万次的下载;
Wayback Machine 收到大约 1000 万次点击,每秒钟要处理 100-200 个点击;
每天10万次左右通过 URL 查找;
每天 400 万次返回请求;
存储的内容包括本文、音频、视频...等各种 Web 可见的格式。

显然 IA 需要的是一种前所未有的存储解决解决方案--廉价、可靠、低功耗...总之用起来要省钱。IA 的志愿者不得不考虑自己动手建立符合他们需要的存储系统,这下子可不简单,2004 年,第一个 100GB 容量的近线存储投入使用 。IA 的志愿者之一 Saikley 干脆抽身而出成立了 Capricorn Technologies 公司,专为类似组织提供存储解决方案。前面提到的 100TB 容量的产品即为该公司 GB 系列的产品。现在 IA 已经采用 PS(PowerStore) 系列的 PetaBox,是量身定做的,装机容量 1.5T,目前容量已经超过 3PB(怕是远远超过 3PB 了)。PS 系列产品每节点原始容量可以达到 3T,使用日立 Deskstar 硬盘,仅仅占 1U 的机柜空间。IA 也在站点上介绍了定制的这台 PetaBox 的一些规格要求以及参数

Capricorn Technologies PS 系列旗舰产品

PetaBox 也是 Linux 在企业级应用取得成功的一个范例。

PetaBox 存储产品给存储界带来了不小的震撼。每 GB 的成本仅仅是 2 美元。这还是 2005 年的价格,现在应该更便宜了。搜索了一下,这家公司目前还没有进入中国。

PetaBox 系统通过一个集中式的 PXE 启动服务器运行在 Debian 或是 Fedora Linux ,通过 Nagios 进行整个环境的监控。 管理成本也并不高--每 PB 一个人。

--EOF--

| | Comments (4)


早晨收到 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 期待与美国现任总统小布什会面的事情还没有结果。

| | Comments (0)


February 7, 2007

其实是一个很老的"新"变化。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--

| | Comments (2)


February 6, 2007

一个是 VLDB Endowment 的站点,一年一度的 VLDB 大会的相关信息,过往会议的很多文档都可以看到。比如 2006 年在韩国汉城(去他妈的首尔)的年会,有几篇文档值得看看,

第二个是 ACM Digital Library,包括过去 50 年来的 ACM 的所有文档。搜索到的文档也是可以下载的(FAQ)。应该感谢 Google 的数字图书馆计划。这里不局限于数据库的论文,如果你对 Google 感兴趣,输入 "Google" 搜索一下看看。

logo_acm_portal2.jpg

--EOF--

| | Comments (8)


February 4, 2007

Oracle 10g 的 Data Pump 是个不错的新特性,因为新(其实 10g 也发布好几年了),所以也存在不少问题。

比如 EXPDP 的 EXCLUDE 参数,expdp help=y 输出的内容是这样说明的:

EXCLUDE Exclude specific object types, e.g. EXCLUDE=TABLE:EMP.

可是实际上用这样的格式却是不正确的,会得到一个错误提示信息:

ORA-39071: Value for EXCLUDE is badly formed.

正确的格式是啥? 如果第一次遇到或许还有些不知就里,莫明其妙。在 ITpub 上有个讨论,有朋友贴的文档给出了正确的语法:

EXCLUDE=TABLE:"IN ('TABLENAME1', 'TABLENAME2')"

对于 EXCLUDE/INCLUDE 参数还要注意的是二者不能共用。此外,Linux 和 Windows 下的命令行可能要对转义符号注意一点。

这个语法问题存在好久了,应该算是文档的 Bug ? Oracle 还没有进行修正。

EXPDP 我还遇到另外一个问题,生成的文件超过 99 个就会报错。有谁遇到过没?

--EOF--

BTW: 最近看到有朋友批评我写的东西没意思,其实首先要明确一点,我写的东西基本上是比较简单的所谓"技术", 另外我也不知道写什么有意思,众口难调,而且,写多了我也腻。

| | Comments (8)


January 31, 2007

最近手气特好,手边的这一套 Oracle 10gR2 几乎一天遇到一个 Bug。

昨天遇到的问题是查询结果不正确(这可是最为严重的问题了)。大致情况和 Bug 4604970 - Wrong results with 'hash group by' aggregation enabled 相符。通过修改初始化参数 optimizer_features_enable 可以避免这个问题。

今天遇到的问题是:

ORA-27054: NFS file system where the file is created
or resides is not mounted with correct options

这个 Bug 到现在还没有彻底的解决办法,只能通过 hard 方式 mount nfs 目录来避免。

还好这个库的要求也不太高,否则可真的要吃不了兜着走。

Oracle 10g 从发布到现在可不短了。但是从产品的可靠性来看与 9iR2 可差远了。除了 Data Pump 这样的 DW 杀手特性之外,真的很难找到使用 10g 的合适理由。虽然 Oracle 一再暗示已经有绝大多数用户迁移到了 10g 版本,很难让人相信这是真的。

--EOF--

| | Comments (15)


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 (Page 10 of 23)