楼主: 王飞鹏2011

话题讨论:如何找到DB2高效学习捷径

[复制链接]
论坛徽章:
5
ITPUB十周年纪念徽章
日期:2011-11-01 16:26:59鲜花蛋
日期:2011-12-23 16:10:192012新春纪念徽章
日期:2012-01-04 11:57:56咸鸭蛋
日期:2012-05-19 21:24:14ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00
61#
发表于 2012-5-9 18:37 | 只看该作者
学校教的就是DB2,但老师只会照着文档念,而且讲的东西都太基础,于是去啃英语文档,明显感觉DB2比Oracle封闭,很少把底层的东西暴露出来,好处是DB2完全实践了关系数据库理论,照着理论学数据库相比较Oracle来说更加容易。

使用道具 举报

回复
论坛徽章:
10
2012新春纪念徽章
日期:2012-01-04 11:57:56马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14优秀写手
日期:2013-12-18 09:29:08版主1段
日期:2013-06-07 02:21:02现任管理团队成员
日期:2013-06-06 02:21:02ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00马上加薪
日期:2014-02-19 11:55:14
62#
 楼主| 发表于 2012-5-10 09:28 | 只看该作者
llzx373 发表于 2012-5-9 18:37
学校教的就是DB2,但老师只会照着文档念,而且讲的东西都太基础,于是去啃英语文档,明显感觉DB2比Oracle封 ...

那你是在大学里学的DB2. 这倒是不多见啊。30年前,IBM是业界权威,微软和甲骨文规模尚小,因此IBM的产品走的路子,必然是树立了权威,维护着权威。甲骨文做产品倒可另辟蹊径,因此他对理论更多的是借鉴,这在我们学习两种数据库的架构时,痕迹很明显,也挺有意思。

使用道具 举报

回复
招聘 : Linux运维
论坛徽章:
235
紫蜘蛛
日期:2007-09-26 17:05:46玉兔
日期:2007-09-26 17:05:05现任管理团队成员
日期:2011-05-07 01:45:08玉兔
日期:2006-08-29 20:38:48紫蜘蛛
日期:2007-09-26 17:05:34阿斯顿马丁
日期:2013-11-19 10:38:16奔驰
日期:2013-10-16 09:08:58红旗
日期:2014-01-09 11:57:39路虎
日期:2013-08-13 14:52:35林肯
日期:2015-05-19 13:01:16
63#
发表于 2012-5-10 11:01 | 只看该作者
个人觉得哈,不管db2、oracle还是MySql,数据库学起来都不难,攻坚的话1-2个月就熟练了。

主要原因呢,db2的项目还是太少了,项目中不用,根据兴趣学习的话,肯定比较不理想(第一,工作这么忙,谁有那么多兴趣,就算有兴趣,肯定也是停留在熟练使用层次上;第二,技术这些东西,时间长不用,该忘的就忘了),我觉得db2应该有更多的实施项目才是王道。

使用道具 举报

回复
论坛徽章:
10
2012新春纪念徽章
日期:2012-01-04 11:57:56马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14优秀写手
日期:2013-12-18 09:29:08版主1段
日期:2013-06-07 02:21:02现任管理团队成员
日期:2013-06-06 02:21:02ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00马上加薪
日期:2014-02-19 11:55:14
64#
 楼主| 发表于 2012-5-11 09:39 | 只看该作者
myfriend2010 发表于 2012-5-10 11:01
个人觉得哈,不管db2、oracle还是MySql,数据库学起来都不难,攻坚的话1-2个月就熟练了。

主要原因呢,d ...

hi, myfriend2010, 如果三种数据库之间,你有迁移的经验的话,能否更详细的分享给我们一些心得啊?

使用道具 举报

回复
招聘 : Linux运维
论坛徽章:
235
紫蜘蛛
日期:2007-09-26 17:05:46玉兔
日期:2007-09-26 17:05:05现任管理团队成员
日期:2011-05-07 01:45:08玉兔
日期:2006-08-29 20:38:48紫蜘蛛
日期:2007-09-26 17:05:34阿斯顿马丁
日期:2013-11-19 10:38:16奔驰
日期:2013-10-16 09:08:58红旗
日期:2014-01-09 11:57:39路虎
日期:2013-08-13 14:52:35林肯
日期:2015-05-19 13:01:16
65#
发表于 2012-5-11 09:51 | 只看该作者
迁移经验?

使用道具 举报

回复
招聘 : Linux运维
论坛徽章:
235
紫蜘蛛
日期:2007-09-26 17:05:46玉兔
日期:2007-09-26 17:05:05现任管理团队成员
日期:2011-05-07 01:45:08玉兔
日期:2006-08-29 20:38:48紫蜘蛛
日期:2007-09-26 17:05:34阿斯顿马丁
日期:2013-11-19 10:38:16奔驰
日期:2013-10-16 09:08:58红旗
日期:2014-01-09 11:57:39路虎
日期:2013-08-13 14:52:35林肯
日期:2015-05-19 13:01:16
66#
发表于 2012-5-11 10:40 | 只看该作者
怎么说呢,我的起步是oracle,从开发到日常维护都有接触,oracle简单易用,学习资料多、懂的人也多,认真学几个方向(sql开发类\plsql编程类\数据库管理类)就可以了,Oreilly的书多看看很快就可以入门。

db2是后来接触的,因为有oracle的基础,所以学起来比较容易,当时有一本书《IBM DB2高级管理指南》2本的样子(最新版的db2就不用看这本书了),挨着排往后看,很容易就把数据库常用的操作、常见的管理方法都搞懂。

db2在集群方面很强大,配置容易,性能高(多节点share nothing);对服务器的要求也低点,比oracle的rac好用多了!

还有一些功能db2做的很好,比如表的分析、数据库监控、导入导出、嵌套循环(with结构块)方面,个人觉得db2的设计更胜一筹!

db2 9之后,集成了数据仓库的工具(很强大吧)!而oracle到11g之后才集成了数据仓库的工具(但不包括工作流)!

db2的开发工具不好使,quest center比pl/sql用户体验差远了去了!另外db2的书籍少的可怜!

忘记谁说的,db2注重的是高性能,它的定位是高端客户,而不是oracle的中端群体!

mysql就不说了,我用的很少,个人不大中意mysql...

使用道具 举报

回复
论坛徽章:
1
灰彻蛋
日期:2012-05-28 09:52:44
67#
发表于 2012-5-11 17:17 | 只看该作者
本帖最后由 nife 于 2012-5-11 17:19 编辑
王飞鹏2011 发表于 2012-5-9 16:37
好的,我们学习了。“环境变量的对比;关于实例、库、用户、模式的比对;锁管理的对比;UNDO的对比;REDO ...

        环境变量:ORACLE很简单,就是在系统层的用户环境设一些ORACLE_HOME,SID,PATH之类的。DB2的除了系统层DB2INSTANCE,PATH之类,还有一类环境变量是通过db2set设置的。Db2set这类似变量,与其说是环境变量,不如说是属于参数变量,因为其设置是直接影响数据库运行特性的,跟db cf和dbm cf里的参数功能是一样的。        

        实例、库、用户、模式:ORACLE简化理解:在单机上,实例和库可以认为是等同的,一个实例对应该一个库;在RAC上,就是多个实例,管理一个库。在ORACLE里用户和模式也可以理解成一个东西,两都合二为一了。用户在数据库里管理的,跟OS没关的。        而在DB2里四个概念,都是独立的,都不能简单的等同的。一个实例下可以有多个数据库。用户和模式也是区分开的。用户其实是OS层面的用户。        两种数据库对实例、模式的定义是一样的。

        锁的管理:在ORACLE中,对锁很少关心,它是在BLOCK中的一个标置位,不用专门在内在中分配空间维护。号称SELECT永远不会被阻塞。更多可能会关注latch的问题。DB2在内在中分配空间来管理锁,会有所锁升级之类的问题,(一个表的行锁过多,升级为表级锁)。最初非常不习惯。SELECT也会加锁。默认是自动COMMIT,若不自动COMMIT,很容易引起锁超时问题。刚开始接触DB2时,用TAOD工具,还特意将它设为非自动COMMIT,后来发现经常有锁超时,最后检查发现原来是自己的TAOD加了锁未释放,天啊,以前用ORACLE时,都没有这样的事发生。后来还是乖乖的设成自动COMMIT。 关于latch的问题,ORACLE的资料挺多的,讲得很深入详细,对了解ORACLE的内存管理非常有用。DB2这方面的资料很少,没有发现有什么深入的资料。

        REDO:ORACLE一般是几组日志,循环使用。日志文件的文件名不会变的。DB2的有LOGPRIMARY和LOGSECOND日志之分。当主日志不够用了,就会使用辅助日志。当使用归档模式后,日志的文件名序列不断增长的,但并不是新建的,其它也是循环使用,只是将旧日志重命为新名已而。最初看到文件名,还非常迷惑不解,为啥不循环使用呢?        两者的REDO作用都一样,都是为了前滚。DB2的REDO其实也包含了UNDO。

        UNDO:ORACLE有专门的UNDO表空间,且可以保证一个记录可以有多个片本。也因为有多版本所以号称SELECT操作永远不会被阻塞。DB2里没有专门的UNDO表空间,UNDO记录(前镜像值),也是放在REDO记录里。由于没有多版本,因此在以前它的SELECT操作是有可能被阻塞的。直到V9.7的新特性:当前落实读,才实现了SELECT操作不受阻塞。        在DB2里应该是没有UNDO这个说法的。

        表空间的管理:ORACLE的逻辑层次:表空间>段>区>块。物理上就是DATAFILE。10G以前,要么是RAW,要么就是DATAFILE。到了10G有ASM管理方式。        DB2的数据库管理(DMS),系统管理(SMS),自动存储器管理。还有一个容器的概念,可以是DATAFILE,也可以是一个目录。逻辑层次:表空间>区>块        
        
        系统视图:应该说ORACLE有非常多的系统视图,v$开头,DBA开头,USER开头等,对数据库状态的监控都是通过系统视图来完成的。接触DB2,开始日常运维时,第一件事就是想了解它的系统视图,但发现它的视图比较少,也比较有限。同时它还提供DB2PD这样的命令来显示一些系统状态。当然还有SNAPSHOT和一些表函数。但几种方式的功能都是重叠的。感觉都不知用那个好。官方建议用DB2PD,因为它不会占资源,或引起锁问题,但DB2PD命令的过滤功能有限,用得不是很顺手,打命令后,全屏都是信息,都不知看那些。        

        性能报表:ORACLE有AWR或STATPACK或ASH。DB2的SNAPSHOT不知算不算是报表,SNAPSHOT监控的内容还是非常直观有用的,但它没有形成历史记录。        

我的经验都是在运维管理方面,也不知道能分离些啥感悟和经验。对比学习是为了更好更快的掌握DB2,感觉认知与理解都还比较肤浅,远还未达到深入对比分析它们设计优劣的境地。呵呵。

使用道具 举报

回复
论坛徽章:
1
鲜花蛋
日期:2012-06-27 14:29:12
68#
发表于 2012-5-12 13:26 | 只看该作者
本帖最后由 fangjinhuoche 于 2012-5-12 13:27 编辑
myfriend2010 发表于 2012-5-11 10:40
怎么说呢,我的起步是oracle,从开发到日常维护都有接触,oracle简单易用,学习资料多、懂的人也多,认真学 ...


很精彩。

使用道具 举报

回复
论坛徽章:
10
2012新春纪念徽章
日期:2012-01-04 11:57:56马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14优秀写手
日期:2013-12-18 09:29:08版主1段
日期:2013-06-07 02:21:02现任管理团队成员
日期:2013-06-06 02:21:02ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00马上加薪
日期:2014-02-19 11:55:14
69#
 楼主| 发表于 2012-5-15 08:45 | 只看该作者
myfriend2010 发表于 2012-5-11 10:40
怎么说呢,我的起步是oracle,从开发到日常维护都有接触,oracle简单易用,学习资料多、懂的人也多,认真学 ...

谢谢你的分享。回顾的很精彩!

你说的DB2开发工具不好使,我认为更多的是习惯性,IBM在这方面用户体验上,下的功夫颇大,我好几位朋友也是在为此辛劳多年,他们听到你的评价,肯定很沮丧,哈哈哈。  当然,用户为王,真正使用者、应用者是最有发言权的。谢谢。

使用道具 举报

回复
论坛徽章:
10
2012新春纪念徽章
日期:2012-01-04 11:57:56马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14优秀写手
日期:2013-12-18 09:29:08版主1段
日期:2013-06-07 02:21:02现任管理团队成员
日期:2013-06-06 02:21:02ITPUB 11周年纪念徽章
日期:2012-10-09 18:16:00马上加薪
日期:2014-02-19 11:55:14
70#
 楼主| 发表于 2012-5-15 08:49 | 只看该作者
nife 发表于 2012-5-11 17:17
环境变量:ORACLE很简单,就是在系统层的用户环境设一些ORACLE_HOME,SID,PATH之类的。DB2的除了 ...

好文。写得言简意赅。 大家来读一读,绝对是真实笔记。

谢谢。我们学习了。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表