作者文章: Fenng

FeedBurner 好像解封了?

突然发现我的 FeedBurner 地址 可以访问了,难道阻尼了这么几天就放出来了?

FeedSky 用起来也很好,我的 Feed 还上了 “精彩Feed” 推荐(单独推荐地址)。谢谢吕欣欣同学!

忙了一天,才空下来,刚才检查了一下Blog 访问 Log,发现以前 Dreamhost 漏洞的时候产生的垃圾文件没有删掉,晕死。我说从什么地方跑来的奇怪访问呢。

EOF

从 MySQL 迁移到 Oracle (傻瓜篇)

如果用关键字 “MySQL 迁移 Oracle” 在网上搜索,基本上得到的内容都是关于从 Oracle 如何迁移到 MySQL 的,而从 MySQL 迁移到 Oracle 的信息则少之又少。

抛开那些手工一点点做的方法不谈,网络上也可以找到一些第三方工具来做这个事情,免费的? 我只找到了一个,那就是 Oracle SQL Developer 了。如果采用比较傻瓜化的方法,不妨考虑这个工具。在这个工具之前,Oracle 提供了单独的 Migration Workbench 工具。在 SQL Developer 1.2 版中,Oracle 干脆把这个功能集成进来。

数据流示意图:

Source Database(MySQL/DB2 etc.) --->SQL Developer (ETL)-->Target Database (Oracle)

MySQL JDBC 下载地址:

http://dev.mysql.com/downloads/connector/j/5.0.html

配置 MySQL JDBC:

SQL_developer_JDBC_drivers.png

还需要注意一点就是需要调整一下迁移时候的参数:

SQL_developer_Tuning.png

剩下的事情就简单了,配置到不同数据库以及准备存放 Metadata 数据库的信息。然后就可以迁移了。不赘述。

这个方法只是够傻瓜化,由于运行机制的限制,速度不是非常好。对于迁移过程中产生的变化数据,也无能为力。

EOF

BlogDay 2007

FeedBurner 已死,Feedsky 当立! 现在广大 Blogger 们除了呼吸稍有不畅之外,还能忍耐。

昨天 (8 月31) 日是 BlogDay,晚上匆忙扫了几眼 Google Reader ,很多朋友都响应了这个活动。06 年 Blog Day 我也参加过,今天马后炮一下补充一篇。

我推荐的几个 Blog:

Livid’s Paranoid
url: http://www.livid.cn/
网络上对于 Livid 有很多并不过分的夸奖。他前一段时间关于 “个人数据中心” 的想法很具有战略性。Livid 与 Flypig 两个人是 “80 后靠谱” 的有力证明。

大徐
url: http://daxu.net/
大徐在雅虎工作。我非常喜欢他的 Blog 写作风格。大徐是个热爱生活的程序员

DBA story
url: http://www.ixdba.com/
DBA 为题材的 Blog 有好几个了,Piner 这个虽然出现的比较晚,但也相对有更多的技术信息,不像我的 Blog 兑了那么多水。 最近他开始走怀旧路线和亲情路线了,也耐看,我只是担心他的写作热情是否会持续下去。所以在这里推荐一下.

插一腿的薄壳
url: http://www.bullog.cn/blogs/cyt/
插一腿是个半职业赌士。从这里我了解了关于赌徒的很多有趣生活。他的那部小说妙趣横生。

Taobao UED
url: http://ued.taobao.com/blog/
淘宝用户界面设计团队的 Blog。我喜欢看其中的 UI / UE 内容,其他文章也没有写成散文诗,所以是值得看看的,也是传达淘宝文化的一个窗口。

Tag BlogDay 一下。另外就不一一留言通知了,如果这些 Blogger 能看到,他们就能看到。不能看到,我留言作用也不大。

Blogger 来,Blogger 走,而 Blog 永存。

FeedBurner 已死,FeedBurner 万岁!

EOF

此文作者:, 位于 Web 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

RHEL 的 I/O 调度器(Scheduler)与 Database 的关系

今天参加 AIX 的技术培训,听了一些关于 CPU 调度的算法,倒也都是些基本知识,回想讲课内容的时候倒让我想起 Linux Kernel 的 I/O Scheduler 来。

这篇 Choosing an I/O Scheduler for Red Hat Enterprise Linux 4 and the 2.6 Kernel 是必须的参考资料。相比 Linux 2.4 Kernel 的一种 IO 调度器,2.6 做了很多改进,共有四种 IO 调度器。

Deadline scheduler

Deadline scheduler 用 deadline 算法保证对于既定的 IO 请求以最小的延迟时间,从这一点理解,对于 DSS 应用应该会是很适合的。

Anticipatory scheduler

Anticipatory scheduler(as) 曾经一度是 Linux 2.6 Kernel 的 IO scheduler 。Anticipatory 的中文含义是”预料的, 预想的”, 这个词的确揭示了这个算法的特点,简单的说,有个 IO 发生的时候,如果又有进程请求 IO 操作,则将产生一个默认的 6 毫秒猜测时间,猜测下一个 进程请求 IO 是要干什么的。这对于随即读取会造成比较大的延时,对数据库应用很糟糕,而对于 Web Server 等则会表现的不错。这个算法也可以简单理解为面向低速磁盘的,因为那个”猜测”实际上的目的是为了减少磁头移动时间。

Completely Fair Queuing

虽然这世界上没有完全公平的事情,但是并不妨碍开源爱好者们设计一个完全公平的 IO 调度算法。Completely Fair Queuing (cfq, 完全公平队列) 在 2.6.18 取代了 Anticipatory scheduler 成为 Linux Kernel 默认的 IO scheduler 。cfq 对每个进程维护一个 IO 队列,各个进程发来的 IO 请求会被 cfq 以轮循方式处理。也就是对每一个 IO 请求都是公平的。这使得 cfq 很适合离散读的应用(eg: OLTP DB)。我所知道的企业级 Linux 发行版中,SuSE Linux 好像是最先默认用 cfq 的.

NOOP

Noop 对于 IO 不那么操心,对所有的 IO请求都用 FIFO 队列形式处理,默认认为 IO 不会存在性能问题。这也使得 CPU 也不用那么操心。当然,对于复杂一点的应用类型,使用这个调度器,用户自己就会非常操心。

那么如果跑数据库应用,那个更好一些呢? 我们看Choosing an I/O Scheduler for Red Hat Enterprise Linux 4 and the 2.6 Kernel一文中的测试结果:

scheduler.jpg

对于数据库应用, Anticipatory Scheduler 的表现是最差的。Deadline 在 DSS 环境表现比 cfq 更好一点,而 cfq 综合来看表现更好一些。这也难怪 RHEL 4 默认的 IO 调度器设置为 cfq. 而 RHEL 4 比 RHEL 3,整体 IO 改进还是不小的。

哪一种方式更好? 很难说,每一种方式都有特定的应用对它是最适合的。就像上面的 as 好像表现比较差,如果是 CPU 密集型的应用呢?

Tip:
Q:如何确认当前用什么 IO 调度器?
A: 过滤 /var/log/boot.msg 文件, 查找 “io scheduler”, 看到了么?

在 操作系统上可以查到的相关文档:
/usr/src/linux/Documentation/block/as-iosched.txt
/usr/src/linux/Documentation/block/deadline-iosched.txt

EOF

更新: Ubuntu Server 使用 Deadline 而不是桌面版的 CFQ 算法

从很多实际测试场景来看,Deadline 更适合跑 MySQL 数据库。