Oracle Sybase Informix 与DB2的比较

DB2数据库与Oracle数据库的比较 
开放性/可移植性 
IBM DB2 UDB在各层面,从网络协议的支持到应用开发程序的编程接口,数据库存储程序及触发器,服务器之间的分布式运作,都是基于最新的国际标准,以确保其开放性及移植性。ORACLE的许多功能都是使用其私有的,非开放性的技术。例如:ORACLEPL/SQL语言是ORACLE私有的。其存储程序语句也不符合ANSISQL及ISOSQL的标准,客户机/服务器的编程接口,ORACLE的SQL*NET也不是根据标准定义的。 
·处理性能 
IBM发明了关系型数据库以及其优化技术,并不断发展,所以DB2在各种性能测试中均占领先地位。IBM有信心能在各种标准的测试环境下超越ORACLE。DB2在高端应用具有过硬的技术,有众多超过1Tera-bytes数据量的用户实例。由于ORACLE限制用户在未经许可的情况下不能公布他们所作的性能测试,故一般用户不易取得ORACLE的比较资料。Oracle超过1Tera-bytes数据量的客户实例很少。 

·并行能力 
DB2的并行版支持位图索引和对象关系,因此,DB2有更好的扩展性和性能。Oracle触发器无法支持并行:在一些特殊的引用完整性(referentialintegrity)的限制下,并行也无法运用:如果表格中有大对象,由于前述的限制(表不能分割),并行也无法运用。总之,Oracle在并行系统中没有实现位图索引和对象关系, 

·分布式数据库 
DB2分布式数据库的处理(如两阶段提交)及连接功能是建立在DB2的核心中,不需要使用其它的产品附件。性能好,易使用,减少开支。ORACLE的分布式功能需要另外购买DistributedOption以及SQL*NET等产品才能实现分布式数据库的连接。 

·异构平台支持 
在异构的环境中,IBM数据库方案简单、更加无缝而且比Oracle的成本低; Oracle的异构网关性能差,当访问异构数据库时,Oracle缺乏全局的优化,导致了过多的数据及网络传输。 

·复制能力 
DB2提供业界最佳效率的和最开放的复制方案;DB2提供自动冲突检测和解决方法。 Oracle只提供自动冲突检测和解决方法的例子程序,用户须对例子程序做定制后来解决复制冲突 

·对电子商务支持 
IBM的Java技术为业界所公认,DB2公认为电子商务基石。DB2提供的JDBC接口,还可用Java语言写储存过程和用户自定义函数 Oracle的Java技术仅局限于数据库和ERP应用。 

·对商业智能支持 
DB2OLAPServer远比Express更易使用和实现。DB2OLAPServer提供读/写能力-这对一些关键性的多维分析扩展应用如:预测和预算,是非常有用的(Express只支持读)。IBM的商业智能解决方案中,拥有数据挖掘(IntelligentMiner)工具。 OracleExpress只支持读的能力,不利于支持预测和预算。Oracle缺乏数据挖掘方面的工具。 

·软件质量与可靠性 
DB2的软件开发实验室早在1994年便已通过ISO9000国际质量管理标准的验证与认可。故DB2的软件质量是所有数据库厂家中可靠性最高,故障率最低的数据库。 ORACLE版本6及版本7在推出后皆需经过无数次修订版升级才能达到一定程度的可用度,这给用户带来极大的不便,并且严重影响到投产系统的可用性及可靠性。

DB2数据库与Sybase数据库的比较 

·开放性/可移植性 
IBMDB2的编程接口遵照ANSI、X/OPEN标准的CLI(CallLevelInterface)及ANSISQL的嵌入式SQL等开放标准。IBMDB2的存储程序和触发器机制则使用最新的SQL国际标准并支持标准的开放语言如C/C++。在DB2CommonServerV2.1.2(1996)以及DB2UDB(1997)中更加入了用Java语言开发存储程序和触发器的功能。 1.编程接口:SYBASE使用的编程接口不是开放的,因为他使用的是自己的OpenClient/OpenServer接口,而不是基于某一标准的接口。2.存储程序(StoredProcedure):由于SYBASE的CLIENT/SERVER技术是80年代开发的,没有使用SQL92等相关的标准,因此编制存储程序和触发器所用的Transact-SQL也是它们自己专用的。 

阅读更多

DB2全新创建实例(命令)

db2icrt  instanceName     —创建实例名为instanceName的实例

db2idrop instanceName  —删除实例名为instanceName的实例

全新创建实例:

  • DB2
    • Linux®:

图形化安装db2时,会在创建DB2数据库实例时,会创建名为 db2inst1 的实例,以及三个用户:db2inst1、db2fenc1 和 dasusr1。但有时图形化安装时,会因为一些桌面化组件不齐全而致安装不完整,最后需要字符界面安装,但字符界面安装时,会只安装基本的DB2软件,并没有创建实例,所以,就需要手动执行以下命令与设置来创建DB2inst1实例:

1)为 DB2 创建组:

groupadd -g 999 db2iadm1

groupadd -g 998 db2fadm1

groupadd -g 997 dasadm1

2)为 DB2 创建用户:

useradd -u 1100 -g db2iadm1 -m -d /home/db2inst1 db2inst1 -p password

useradd -u 1101 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1 -p password

useradd -u 1102 -g dasadm1  -m -d /home/dasadm1  dasusr1  -p password

3)新建 DB2 实例:

以 root 用户的身份登录并转至 /opt/ibm/db2/V9.7/instance。

./db2icrt -u db2fenc1 db2inst1

  • 4)设置实例的端口号:

编辑 /etc/services 文件,并添加以下代码行:

db2c_<instance_name> <instance_port>/tcp

其中 <instance_name> 是实例的名称,<instance_port> 是用于实例的端口号。

阅读更多

How can I manually drop an instance, and/or uninstall DB2 for Linux/Unix

How can I manually drop an instance, and/or uninstall DB2 for Linux/Unix?

Technote (troubleshooting)

Problem(Abstract)
I have an installation of DB2 Universal Database for Linux, Unix and Windows product installed on Unix/Linux, and I cannot drop the instance and/or uninstall the product due to an error. I still need to perform the action, so how can I manually drop the instance, and/or uninstall DB2?
Resolving the problem
If you need to drop an instance, and or uninstall DB2 LUW on either Unix or Linux, but are receiving an error that is preventing you from doing this, then you will need to manually drop the instance, and uninstall the DB2 product.
If you are going to manually uninstall, you will need to also drop all the instance(s) associated with that installation. If you are only manually dropping an instance, then you can just do that. Here are the steps you need to take (NOTE that the following examples are for v9.7, but are applicable to all versions from v9.5 to v10.5):

1. First you will need to get the registry entries for the instance(s) that you are going to manually drop (Section “A” below). If also manually uninstalling, then you will ALSO need to get the registry entries for the installation, as well as any registry variables that are tied to the installation (Section “B” below”). As the instance owner, run “db2greg -dump”. You should save this output as a text file so you can refer to it later if needed. The instance records will start with “I”, the installation records (called “Service” records) will start with an “S”, and the variable records will start with a “V”. You need to locate the appropriate records. As an example, you might see something like this when you run “db2greg -dump”:

[db2v97@my-system ~]$ db2greg -dump
V,DB2GPRF,DB2SYSTEM,my-system,/opt/ibm/db2/V9.7,
V,DB2GPRF,DB2FCMCOMM,TCPIP4,/opt/ibm/db2/V9.7,
S,DB2,9.7.0.8,/opt/ibm/db2/V9.7,,,8,0,,1373391932,0
S,DB2,9.7.0.8,/v97fp8_install,,,8,0,,1380144089,0
V,DB2GPRF,DB2SYSTEM,my-system,/v97fp8_install,
S,DB2,9.7.0.8,/db297fp8/db2,,,8,0,,1380573119,0
V,DB2GPRF,DB2SYSTEM,my-system,/db297fp8/db2,
V,DB2GPRF,DB2FCMCOMM,TCPIP4,/db297fp8/db2,
I,DB2,9.7.0.8,db2v97,/home/db2v97/sqllib,,1,0,/opt/ibm/db2/V9.7,,
V,DB2GPRF,DB2INSTDEF,db2v97,/opt/ibm/db2/V9.7,
V,DB2GPRF,DB2SYSTEM,my-system,/opt/ibm/db2/V10.1,
I,DB2,10.1.0.3,db2v101,/home/db2v101/sqllib,,1,0,/opt/ibm/db2/V10.1,,
V,DB2GPRF,DB2INSTDEF,db2v101,/opt/ibm/db2/V10.1,
S,DB2,10.1.0.3,/opt/ibm/db2/V10.1,,,3,0,,1398537384,0
[db2v97@my-system ~]$

阅读更多

The db2prereqcheck utility was unable to validate the configuration of the log_mtts_per_seg parameter on the following host machine

在搭建DB2 PURESCALE环境,在作环境检查时,意外地遇到如下错误:

Validating “modprobe.conf” …
DBT3588W The db2prereqcheck utility was unable to validate the configuration of the log_mtts_per_seg parameter on the following host machine: “node02”. Reason code: “1”.
WARNING : Requirement not matched.

[root@node02 server]# more /etc/modprobe.conf
/etc/modprobe.conf: No such file or directory
[root@node02 server]# echo “options mlx4_core log_mtts_per_seg=7” >> /etc/modprobe.conf
[root@node02 server]# more /etc/modprobe.conf
options mlx4_core log_mtts_per_seg=7
[root@node02 server]# ./db2prereqcheck

 

Validating “modprobe.conf” …
Requirement matched.

至此,全部安装条件符合,可以顺利安装DB2 PURESCALE功能组件啦。。