首页

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



January 28, 2007

在 Red Hat Enterprise Linux Server 上安装 Oracle 的时候,如果误打误撞顺利的话可能一个错误都碰不到,如果不顺利可能每一步都有槛。以下是几个小建议,可能会让一些朋友少一点麻烦。

1. 安装 OS 时候请选择 "Install Default Software Servers"

很多朋友在安装操作系统的时候会选择 Custom 模式安装软件包, 这样看上去似乎会灵活一些,但是也带来潜在的极多麻烦。数据库软件依赖的包如果缺少的话,再次安装就麻烦了--软件之间的依赖性非常让人闹心的。RHEL 又没有对 YUM/APT 等自动解决依赖性工具的正式支持。

2. 参考 Oracle Validated Configuration

Oracle 这个服务很好。每个配置清单都是经厂商验证过可行的,参考性比较大。尤其是关于当前版本的临时 Patch 参考,更是必需要着重处理。

3. OS 安装文件 .iso 在服务器上放置一份

对数据库来说,一般都是远程操作服务器,如果临时需要安装文件,总不能跑到机房再把光盘扔里面吧? 这时这个 iso image就有用场了。如果上面说的第一条是定制安装 OS 的话,那么几乎就会用到安装光盘. 很多人要找安装包就从网上 rpmfind.net 之类的地方随便找个 RPM 包安装,强烈反对这样做。

另外:Werner Puschitz 的安装参考要超过 Oracle 的官方指导。必读。

几个小小建议,行家眼里不值一哂。

--EOF--

| | Comments (6)


January 22, 2007

Oracle 10g 关于 NLS 的环境变量发生了一点变化:

For RDBMS 7.2.x version the variable is called ORA_NLS.

For version 7.3.x the variable is called ORA_NLS32.

For Oracle 8, 8i and 9 variable is called ORA_NLS33.

For Oracle 10g the variable is called ORA_NLS10.

ORA_NLS33 的设置值:

ORA_NLS33 = $ORACLE_HOME/ocommon/nls/admin/data

而 ORA_NLS10 只需要设置:

ORA_NLS10 = $ORACLE_HOME/nls/data

定义了 ORA_NLS10 则不需要单独定义 ORA_NLS33 等参数了。

目前应该仍然是向后兼容 ORA_NLS33 的。

更多信息参考 Metalink: Note:77442.1

--EOF--

| | Comments (2)


January 20, 2007

最近一期的 Oracle 杂志(电子版地址)中介绍了一家新兴的社会网络交友站点 Bebo.com 采用 Oracle 的一些信息。这是第一次看到 Web 2.0 公司采用 Oracle 数据库而不是 MySQL 。

Bebo 当前大约有 2700 万用户,每月大约有 40 亿 PV,而每月的增长率大约有 25%--非常惊人。所以有消息说 Google 发布的一份报告中,Bebo 被搜索的频度超过 MySpace。

Bebo 最开始使用的是 Oracle 标准版,运行在一个 2 CPU 服务器上, 操作系统是 SuSE 企业版。标准版是有一些局限性的,所以后来升级到了 Oracle 的企业版。Bebo 创始人 Michael Birch 介绍说,每天用户上传的图片量大约是 120 万张,需要保存为 5 种格式,这些(应该是图片的元数据等信息吧)都是通过数据库来处理的。并且已经构建了 Standby 数据库。

Oracle 把 Bebo 的经验作为 Oracle 在中小企业上的成功案例来介绍的。Bebo 最初为什么选用 Oracle ? "不能承受宕机损失, 不能允许丢失数据?" 如果是出于这样的考虑,那么成本高一点也是必需要承受的。

在 .com 的那一波浪潮中,Oracle 是大赢家之一,在 Web 2.0 这一次,MySQL 斩获不小。

--EOF--

补充, Bebo 似乎非常喜欢 Oracle 10g 的 Index Organized Table 特性。最新的消息是 Bebo 被 AOL 收购,收购价格:8.5 亿美元.

| | Comments (4)


December 21, 2006

OTN 上下载文件,有的时候是比较烦人的事情。估计是出于负载均衡的原因,直接使用浏览器看到的地址还要经过几次 http 302 跳转才可以看到。而这个跳转是要带着 Session 走的,如果使用多线程下载工具就有可能到一个很小的错误页面文件。新版本的 FlashGet 就有这毛病。

如果准备安装的服务器在远程,参考这里的方法,用 Wget 直接下载其实也并不费事。

现通过浏览器获知该数据文件的 URL 地址。然后来个投石问路看看具体的跳转情况:

$ wget --limit-rate=150k \ http://download.oracle.com/otn/linux/oracle10g/ \ 10201/10201_database_linux_x86_64.cpio.gz http://download.oracle.com/otn/linux/oracle10g/ \ 10201/10201_database_linux_x86_64.cpio.gz => `10201_database_linux_x86_64.cpio.gz' Resolving download.oracle.com... 213.35.100.1 Connecting to download.oracle.com[213.35.100.1]:80... connected. HTTP request sent, awaiting response... 302 Found
Location: http://download-
west.oracle.com/otn/linux/oracle10g/10201/ 10201_database_linux_x86_64.cpio.gz [following] http://download-west.oracle.com/otn/linux/oracle10g/10201/ 10201_database_linux_x86_64.cpio.gz
=> `10201_database_linux_x86_64.cpio.gz' Resolving download-west.oracle.com... 206.204.21.139 Connecting to download-west.oracle.com[206.204.21.139]:80... connected. HTTP request sent, awaiting response... 302 Found
Location: https://profile.oracle.com/jsp/realms/otnLogin.jsp?
remoteIp=218.108.233.1&globalId=&redirectUrl=http%3a%2f%2fdownload-
west.oracle.com%3a80%2fotn%2flinux%2foracle10g%2f10201%
2f10201_database_linux_x86_64.cpio.gz [following] --16:11:01-- https://profile.oracle.com/jsp/realms/otnLogin.jsp? remoteIp=218.108.233.1&globalId=&redirectUrl=http%3a%2f%2fdownload- west.oracle.com%3a80%2fotn%2flinux%2foracle10g%2f10201% 2f10201_database_linux_x86_64.cpio.gz => `otnLogin.jsp? \ remoteIp=218.108.233.1&globalId=&redirectUrl=http:%2F%2Fdownload-
west.oracle.com:80%2Fotn%2Flinux%2Foracle10g%2F10201%
2F10201_database_linux_x86_64.cpio.gz' Resolving profile.oracle.com... 141.146.8.116 Connecting to profile.oracle.com[141.146.8.116]:443... connected.
HTTP request sent, awaiting response... 200 OK Length: 4,106 [text/html]

输出实在是有点恶心,我在适当的地方做了换行处理。要在第二个 Location 处下手:

https://profile.oracle.com/jsp/realms/otnLogin.jsp?remoteIp=218.108.233.1&globalId=&redirectUrl=http%3a%2f%2fdownload-west.oracle.com%3a80%2fotn%2flinux%2foracle10g%2f10201%2f10201_database_linux_x86_64.cpio.gz

在这个地址后添加 &username=YOURPASSWORD&password=YOURPASSWORD&submit=Continue . YOURUSERNAME/YOURPASSWORD 是在 OTN 上的用户名与口令。然后提交如下的命令即可:

wget --limit-rate=128K --post-data="https://profile.oracle.com/jsp/realms/otnLogin.jsp? \ remoteIp=218.108.233.1&globalId=&redirectUrl=http%3a%2f%2fdownload- \ west.oracle.com%3a80%2fotn%2flinux%2foracle10g%2f10201% \ 2f10201_database_linux_x86_64.cpio.gz \ &username=YOURUSERNAME&password=YOURPASSWORD&submit=Continue" \ https://profile.oracle.com/jsp/reg/loginHandler.jsp

如果嫌输出麻烦,可以在最后 -o downloadOracle.log . 新开一个终端窗口 tail -f downloadOracle.log 就可以观察下载进度了。

要养成随时用 Unix 的习惯思考问题,还真是一个需要时间的事情 :)

--EOF--

| | Comments (9)


December 6, 2006

Oracle 初始化参数 DB_FILE_MULTIBLOCK_READ_COUNT (MBRC) 默认值一般是比较低的,在进行一些比较大的数据操作的时候,恰当的调整当前 Session 的 MBRC 的值可能会在 IO 上节省一点时间。

DB_FILE_MULTIBLOCK_READ 这个参数的值并不是可以无限大, 大多数平台下的 Oracle 都是 128。一般 Oracle 的 Block Size 是 8K 。128*8K=1M 。 这个 1M 是大多数操作系统一次最大 I/O 的限制。前面的限制要从这个 1M 推回去,初始化参数 DB_FILE_MULTIBLOCK_READ_COUNT 的最大值之所以定为 128 ,也是一个比较保守的策略。

Oracle 的 Metalink Note:291239.1 有一小段说明:

Each version of Oracle on each port, is shipped with a preset maximum of how much data can be transferred in a single read (which of course is equivalent to the db_file_multiblock_read_count
since the block size is fixed). For 8i and above (on most platforms) this is 1Mb and is referred to as SSTIOMAX.
To determine it for your port and Oracle version, simply set db_file_multiblock_read_count to a nonsensical value and Oracle will size it down for you.

SSTIOMAX 中的 SST 代表什么意思不为人知:

SSTIOMAX is an internal parameter/constant used by oracle, which limits the maximum amount of data transfer in a single IO of a read or write operation. This parameter is fixed and cannot be tuned/changed

要查看当前系统上的 SSTIOMAX 限制,可以通过如下做法简单的得到(trace 10046 的方法似乎麻烦了一些):

foo@DEMO> show parameters db_file_multiblock_read_count
NAME TYPE VALUE ------------------------------------ ----------- ------- db_file_multiblock_read_count integer 16
foo@DEMO> ALTER SESSION SET db_file_multiblock_read_count =256;
Session altered.
foo@DEMO> SELECT VALUE FROM v$parameter WHERE NAME = 'db_file_multiblock_read_count';
VALUE -------------------- 128

正常运行的库,MBRC 并非越大越好(除了 IO 效率有降低的可能,也会有可能影响 CBO 的运行)。后者是我的猜测,因为在 10gR2 上,'db_file_multiblock_read_count' 参数引入了两个相关的隐含参数(Refer):

_db_file_exec_read_count            
_db_file_optimizer_read_count

距离上一次写技术备忘似乎有好久了...这几天比较累

--EOF--

| | Comments (2)


November 24, 2006

手边有一份 2005 Winter TopTen Award Winners的报告,包含了一些关于世界上排名前几位的 VLDB 的信息。VLDB,超大数据库,其实叫做"狂大数据库"倒是也很贴切。

如果不区分操作系统环境,Yahoo! 力拔数据仓库一项的头筹,单个数据库数据大小接近 100T 。采用的是 Oracle 数据库,部署在 Unix 上, 存储是 EMC 的设备。这是 2005年的数据,雅虎现在每日接近 40 亿 PV,这个数据仓库现在应该远超 100T 了吧。 电信巨头 AT&T 的数据仓库屈居亚军。Amazon 的两个数据仓库也不小,数据量多达 24773 GB,是用 Oracle RAC 实现的,部署在 Linux 操作系统上。

OLTP Top 10

我比较关心 OLTP 数据库的情况。下面这个图表是包括所有操作系统环境的 OLTP 数据库情况。前 10 名中只有两个采用了集群,而且都是集中式集群(Centralized/Cluster)。其余8个席位都采用了 SMP 架构,而且大多是集中式(Centralized)。分布式超大 OLTP 的成功案例看来并不多(只有 1 例,另外有一例是Federated)。让 Fenng 稍微有些惊讶的是 SQL Server 占了三个席位,数据量最大接近 8T 。整个表看来,数据库类别、所用的软件平台还真的比较平均。并非我想象的完全是 DB2/Oracle+Unix 的格局。

世界上 Top 10 OLTP 数据库

Unix 上 OLTP TOP 10


下表是使用 Unix 操作系统 OLTP TOP 10。好家伙,几乎清一色的 Oracle。DB2 不见踪影,只有 Sybase ASE 还算争气,占了一个席位。 9 个 Unix 平台上的 Oracle OLTP DB,只有两个使用了 RAC ,其他都是 Centralized/SMP。

到现在为止,都还没有看到互联网站点的身影。

Continue reading "关于世界上的超大数据库" »

| | Comments (27)


November 6, 2006

2006 年度 Oracle 杂志编辑选择奖已经出来了。

Steven Feuerstein 是 "年度PL/SQL 开发者"。这位 PL/SQL Guru 还在琢磨如何和布什见个面

Jonathan Lewis 是 "年度 Oracle 作者",他的 Cost-Based Oracle Fundamentals 一书的确很见功力。Thomas Kyte 也有实力竞争这个奖,但 Tom 毕竟是 Oracle 公司的,多少也要避嫌一下--我猜的。

Eddie Awad 获得"年度 Oracle 相关 Blogger" 奖,我觉得这个大胡子写的其实也一般,谁让咱们不会用英文写 Blog 呢? 05 年的获得者是 Mark Rittman ,Blog 质量的确不错。

Tim Hall 获得 "年度 Oracle ACE"奖。Tim Hall 是 Oracle-Base 站长。他发表在 Oracle-Base 上的文章有一定的参考价值。到现在 我也不知道 Oracle 的 ACE 这三个字母都代表什么,A 是 advocates ? 总之, ACE 就是那些在 Oracle 技术圈子比较活跃的人,有些 Guru 级的人入选,也有些技术功底并非那么深厚但是在社区非常活跃的人入选。中国大陆似乎还没有 ACE。

Regent Roberge 获得 "年度DBA 奖"。对他的事迹不了解。

另外 还有个 "年度开源开发者" 被 Internet Archive 公司的 Gordon Mohr 得到,Oracle 杂志编辑选择奖本来和开源八杆子打不着,看来是收购 Sleepycat 之后专门为拉拢 Berkeley DB 开发社群而建的。

其它的得奖名目还有什么"年度 CIO" 之类的,没准是 Oracle 的关系客户。

--EOF--

| | Comments (11)


November 5, 2006

(插播一则新闻:竞拍这本《Don’t Make Me Think》,我出价 RMB 85,留言的不算--不会有恶意竞拍的吧? 要 Ping 过去才可以,失败一次,再来)

Craigslist 绝对是互联网的一个传奇公司。根据以前的一则报道:

每月超过 1000 万人使用该站服务,月浏览量超过 30 亿次,(Craigslist每月新增的帖子近 10 亿条??)网站的网页数量在以每年近百倍的速度增长。Craigslist 至今却只有 18 名员工(现在可能会多一些了)。

Tim O'reilly 采访了 Craigslist 的 Eric Scheide ,于是通过这篇 Database War Stories #5: craigslist 我们能了解一下 Craigslist 的数据库架构以及数据量信息。

数据库软件使用 MySQL 。为充分发挥 MySQL 的能力,数据库都使用 64 位 Linux 服务器, 14 块 本地磁盘(72*14=1T ?), 16G 内存。

不同的服务使用不同方式的数据库集群。

论坛

1 主(master) 1 从(slave)。Slave 大多用于备份. myIsam 表. 索引达到 17G。最大的表接近 4200 万行。

分类信息

1 主 12 从。 Slave 各有个的用途. 当前数据包括索引有 114 G , 最大表有 5600 万行(该表数据会定期归档)。 使用 myIsam。分类信息量有多大? "Craigslist每月新增的帖子近 10 亿条",这句话似乎似乎有些夸张,Eric Scheide 说昨日就超过 330000 条数据,如果这样估计的话,每个月的新帖子信息大约在 1 亿多一些。

归档数据库

1 主 1 从. 放置所有超过 3 个月的帖子。与分类信息库结构相似但是更大, 数据有 238G, 最大表有 9600 万行。大量使用 Merge 表,便于管理。

搜索数据库

4 个 集群用了 16 台服务器。活动的帖子根据 地区/种类划分,并使用 myIsam 全文索引,每个只包含一个子集数据。该索引方案目前还能撑住,未来几年恐怕就不成了。

Authdb

1 主 1 从,很小。

目前 Craigslist 在 Alexa 上的排名是 30,上面的数据只是反映采访当时(April 28, 2006)的情况,毕竟,Craigslist 数据量还在每年 200% 的速度增长。

Craigslist 采用的数据解决方案从软硬件上来看还是低成本的。优秀的 MySQL 数据库管理员对于 Web 2.0 项目是一个关键因素。

--EOF--

| | Comments (10)


November 3, 2006

这两天我在尝试选择一个 CMS 系统,看过了网上的不少文章,在 CMS Matrix 站点上做了 N 次的对比表之后,决定采用 Joomla!。安装的时候,着实费了一点时间。

Joomla! 的官方安装文档倒是图文并茂的,但是还有些简略。第二步的时候,需要输入数据库的信息,主机名字,用户名,密码,还有数据库名字,可是总无情的弹出一个窗口告诉我 "Password and username incorrect..."。在终端命令行下,通过这些信息是可以登陆的。

RHEL 3 自带的 MySQL 版本比较低(3.23.58),启动比较麻烦,干脆跑到 MySQL 官方站点下载了一个 5.0 的稳定版本来用。

难道是版本太高带来的问题么 ?

尝试搜索了一下,原来是老问题

A.2.3. Client does not support authentication protocol MySQL 4.1 and up uses an authentication protocol based on a password hashing algorithm that is incompatible with that used by older clients. If you upgrade the server to 4.1, attempts to connect to it with an older client may fail with the following message:

按照该帖子提示的用 OLD_PASSWORD() 重新设置了一下指定用户的密码,安装可以继续下去了。

登录到后台,测试了几篇帖子,发现 Joomla! 对中文的支持超出我的期待。

--EOF--

| | Comments (9)


November 1, 2006

作为电子商务领头羊的 eBay 公司,数据量究竟有多大? 很多朋友可能都会对这个很感兴趣。在这一篇
Web 2.0: How High-Volume eBay Manages Its Storage(从+1 GB/1 min得到的线索) 报道中,eBay 的存储主管 Paul Strong 对数据量做了一些介绍,管中窥豹,这些数据也给我们一个参考。

站点处理能力

  • 平均每天的 PV 超过 10 亿 ;
  • 每秒钟交易大约 1700 美元的商品 ;
  • 每分钟卖出一辆车A ;
  • 每秒钟卖出一件汽车饰品或者配件 ;
  • 每两分钟卖出一件钻石首饰 ;
  • 6 亿商品,2 亿多注册用户; 超过 130 万人把在 eBay 上做生意看作是生活的一部分。

在这样高的压力下,可靠性达到了 99.94%,也就是说每年 5 个小时多一点的服务不可用。从业界消息来看,核心业务的可用性要比这个高。

数据存储工程组控制着 eBay 的 2PB (1Petabyte=1000Terabytes) 可用空间。这是一个什么概念,对比一下 Google 的存储就知道了。每周就要分配 10T 数据出去,稍微算一下,一分钟大约使用 1G 的数据空间。

计算能力

eBay 使用一套传统的网格计算系统。该系统的一些特征数据:
  • 170 台 Win2000/Win2003 服务器;
  • 170 台 Linux (RHES3) 服务器;
  • 三个 Solaris 服务器: 为 QA 构建与部署 eBay.com; 编译优化 Java / C++ 以及其他 Web 元素 ;
  • Build 整个站点的时间:过去是 10 个小时,现在是 30 分钟;
  • 在过去的2年半, 有 200 万次 Build,很可怕的数字。

存储硬件

每个供货商都必须通过严格的测试才有被选中的可能,这些厂家或产品如下:
  • 交换机: Brocade
  • 网管软件:IBM Tivoli
  • NAS: Netapp (占总数据量的 5%,2P*0.05, 大约 100 T)
  • 阵列存储:HDS (95%,这一份投资可不小,HDS 不便宜, EMC 在 eBay 是出局者) 负载均衡与 Failover: Resonate ;


搜索功能: Thunderstone indexing system ;
数据库软件:Oracle 。大多数 DB 都有 4 份拷贝。数据库使用的服务器 Sun E10000。另外据我所知, eBay 购买了 Quest SharePlex 全球 Licence 用于数据复制.

应用服务器


应用服务器有哪些特点呢?
  • 使用单一的两层架构(这一点有点疑问,看来是自己写的应用服务器)

  • 330 万行的 C++ ISAPI DLL (二进制文件有 150M)

  • 数百名工程师进行开发

  • 每个类的方法已经接近编译器的限制

非常有意思,根据eWeek 的该篇文档,昨天还有上面这段划掉的内容,今天上去发现已经修改了:

架构

  • 高分布式
  • 拍卖站点是基于 Java 的,搜索的架构是用 C++ 写的
  • 数百名工程师进行开发,所有的工作都在同样的代码环境下进行

可能是被采访者看到 eWeek 这篇报道,联系了采访者进行了更正。我还有点奇怪原来"两层"架构的说法。

其他信息

  • 集中化存储应用程序日志;
  • 全局计费:实时的与第三方应用集成(就是eBay 自己的 PayPal 吧?)
  • 业务事件流:使用统一的高效可靠消息队列. 并且使用 Cookie-cutter 模式用于优化用户体验(这似乎是大型电子商务站点普遍使用的用于提高用户体验的手法)。

后记

零散作了一点流水帐。作为一个 DBA, 或许有一天也有机会面对这样的数据量。到那一天,再回头看这一篇电子垃圾。

更新:更详细信息请参考:Web 2.0: How High-Volume eBay Manages Its Storage。可能处于 Cache 的问题,好几个人看到的原文内容有差异

--EOF--

| | Comments (11)


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