Tag Archives: Database

Oracle 10g ASM 的一点经验

Oracle 10g 的 ASM (自动存储管理) 真是一把双刃剑,对于存储的管理给 DBA 带来了不少便利,可也存在无穷多的问题。

ASM_POWER_LIMIT 参数

这个参数 ASM_POWER_LIMIT 参数控制 ASM 后台进程 ARBx 的数量。ARBx 进程用来进行 ASM 磁盘数据重新分布打散。ASM_POWER_LIMIT 取值 从 0 到 11(据说从 10gR2 开始可以设置为 0 ). 当新添加磁盘或者删除磁盘后,ASM 会启动 ARBx 进行 IO 分散操作,这是个非常消耗资源的动作,所以一定要选择系统空闲的时候进行。

关于 ASM 的条带与分配单元

ASM 默认的 Stripe Size 为 128K。 (一般操作系统的一个 IO 最大是 1M,对于 Block Size 为 8K 的系统,一般来说,db_file_multiblock_read_count 设置为 16 即可)。分配单元( Allocation Unit ) 是 1M,这个 AU 对应 extent 。在一些 DW 环境,随着数据量增大,AU 会非常的多,会产生性能影响。Stripe Size 和 AU 是可以通过 ASM 实例上的两个隐含参数调整的:

  • _asm_ausize
  • _asm_stripesize(注意最大1M,否则会有负面影响)

磁盘组不能 mount

错误信息类似如下:

ORA-15063: ASM discovered an insufficient number of disks for diskgroup "FOO"

这个问题是因为 设备 PVID 导致的,一般可以通过如下三个方法解决:

  • 对磁盘组中的设备进行 dd 操作抹去磁盘 0 块的内容
  • 用 FORCE 选项把磁盘添加到其他磁盘组中。
  • 用 FORCE 选项用所有这些磁盘创建新的磁盘组。

哪一种方式都有风险,操作需要谨慎。
EOF

eBay 的数据库分布扩展架构

在过去的 Blog 中, 我(插一嘴:这里的”我” 如果替换成 “Fenng” 似乎有些自恋, 也不是我喜欢的行文语气, 可发现转贴不留名的行为太多了,他大爷的)曾经介绍过 《eBay 的应用服务器规模》 , 也介绍过 《eBay 的数据量》,在这篇文章中提到过 “eBay 购买了 Quest Share Plex 全球 Licence 用于数据复制”,这个地方其实没有说开来。

对于 eBay 这样超大规模的站点来说,瓶颈往往最容易在数据库服务器上产生,必定有一部分数据(比如交易记录这样不容易水平分割的数据)容易带来大量的读操作,而不管用什么存储,能承担的 IO 能力是有限的。所以,如果有效的分散 IO 的承载能力就是一个很有意义的事情。

经过互联网考古学不断挖掘,路路续续又现了一些蛛丝马迹能够多少说明一些问题。客观事实加上主观想象,简单的描述一下。见下图:

ebay_shareplex_F5.jpg

通过 Quest 公司的 Share Plex 近乎实时的复制数据到其他数据库节点,F5 通过特定的模块检查数据库状态,并进行负载均衡,IO 成功的做到了分布,读写分离,而且极大的提高了可用性。F5 真是一家很有创新性的公司,虽然从这个案例来说,技术并无高深之处,但方法巧妙,整个方案浑然一体。

F5公司专门为Oracle 9i 数据库开发了专用的健康检查模块,通过调用F5专有的扩展应用校验(EAV)进程,F5能够随时得到Oracle 9i数据库的应用层服务能力而不是其他的负载均衡设备所采用的 ICMP/TCP 层进行健康检查。

这个图来自一篇《F5助力eBay数据库服务器负载均衡》的软文,真是一篇很好的软文,国外恐怕不会出现这样”含金量”极高的东西。

当然,这个技术架构可不算便宜。Quest 的 Share Plex License 很贵,而且,对于每个结点来说,都需要数据库 License 与硬件费用。但优点也很多:节省了维护成本; 数据库层面的访问也能做到 SOA; 高可用性。

国内的一些厂商比较喜欢给客户推存储级别的解决方案。通过存储底层复制来解决数据分布以及灾备问题。这个思路似乎太传统了,对于互联网企业来说多少有点过时。

BTW: 对 Amazon 的存储架构非常感兴趣,谁/哪里能提供点线索呢?

EOF

Oracle 11g 的两个特性

Oracle 11g 快发布了,相关特性的介绍断断续续可以看到,有些特性与其说是锦上添花,还不如说是”雾件”,实用性不大。不过今天了解到的两个新特性,倒是令我比较感兴趣。

归档日志压缩

其中一个是归档日志压缩的功能。通过设置初始化参数 log_archive_dest_n 中 compression 选项,可以对归档文件进行压缩生成。对于网络传输比较吃紧的环境,这个功能会很有价值。

物理 Standby 可以联机查询

11g 据说也可以对物理的 Standby 进行联机查询,前提条件是激活 Redo Apply 。10g 之前,物理 Standby 都是要么恢复状态,要么 Read Only 状态。如果能够边恢复边查询的话,那么简直是一个比较完美的 IO 分布的技术方案了。SharePlex 之类的产品市场会又小不少。

还没有看到最终的官方文档说明,这些特性具体还有哪些限制不得而知。不管千变万化,11g 如果能够提供 9iR2 的稳定程度就是万幸了。10g 是一个比较失败的版本,如果不算失败,就算是过渡版本好了。

EOF

给 Larry Ellison 的公开信,事关 AWR 与 ASH

Automated Workload Repository (AWR) 与 Active Session History (ASH) 是随着 Oracle 10g 的两个关键功能,可以说是性能优化的一个很大的进步,但是,用户使用这两个特性是要单独收取 License 费用的(Oracle 企业管理器Diagnostic Pack,价格不菲)。Pythian Group 的 Mark Brinsmead 日前发布了一篇 An Open Letter to Larry Ellison on AWR and ASH Licensing,阐述了 “这样收取 License 的方式导致用户接受 Oracle 优秀特性更慢”的观点。后面附有准备发给 Oracle CEO Larry Ellison 的公开信,正在倡议 DBA 签名。

当然,公开信的要求不是很过分的,仅仅是希望 Oracle 能够重新考虑修改 License 方式或者允许用户能够访问 底层视图以及 AWR 与 ASH 的 API 即可。国外 DBA 的这份较真的劲儿值得学习。虽然,技术圈子里的这类公开信总有些自我炒作的嫌疑。

在过几天, 7 月 11 日, Oracle 11g 就要正式发布了,期待这封公开信能起到一定的效果。

EOF