大家交朋友, 多交流! E-mail and msn:fairhua@hotmail.com

db2 的客户端及一些概念,多谢

上一篇 / 下一篇  2008-07-03 23:38:10 / 个人分类:db2 faq

查看( 30 ) / 评论( 15 )
有如下几个问题:

1、连接db2 server,   db2 客户端是不是必装的啊?用哪张盘装啊?还是有专门的驱动可用于安装啊?
或是否有简装版的客户端可供安装啊?(比如:只有十几兆的一个打包的安装文件可供安装)



2、db2 中有oracle 中的tnsname这样的概念吗?
在哪个文件里记录着我的db2 server在哪台机器上,IP地址为多少,端口为多少啊?(哪个文件记录着这些信息啊?)


3、db2 客户端有象oracle 中的tnsping这样的东东吗?


4、ORACLE同义词,DB2中相对应的是什么啊?如何来做啊?







多谢啦!

TAG:

wangzhonnew的个人空间 wangzhonnew 发布于2008-07-03 23:47:59
1) no, if you are using jdbc type 4 driver, you don't need client
you can download from internet for client, they are free
我的家 lovelyman_gold 发布于2008-07-04 00:00:02
Could you answer other three questions for me ?

Thanks very much!


tks
wangzhonnew的个人空间 wangzhonnew 发布于2008-07-04 02:06:43
i don't know about oracle... maybe you can wait for someone know oracle to answer the question, or maybe you can explain what are those stuff used for in detail
myfriend2010的个人空间 myfriend2010 发布于2008-07-04 08:44:10
1>连接db2服务器,需要的java驱动在db2服务器上可以找到!
db2客户端:
DB2运行时间客户端DB2RUNTIMECLIENT  
DB2管理客户端DB2ADMINISTRATIONCLIENT  
DB2应用程序开发客户端DB2APPLICATIONDEVELOPMENTCLIENT  
DB2瘦客户端DB2THINCLIENT
2>有类似感念,不过有点不一样,db2 的 catalog 方式,LZ可以google下
3>这个好象没有,直接ping IP不就行了??
4>和NICKNAME差不多!
askgyliu发布于2008-07-04 09:13:58

QUOTE:

原帖由 lovelyman_gold 于 2008-7-3 23:37 发表


3、db2 客户端有象oracle 中的tnsping这样的东东吗?
借用Oracle tnsping来看看DB2是不是有开。下面例子中50000是正确的,50005是不正确的。

C:>tnsping mydb2

TNS Ping Utility for 32-bit Windows: Version 9.2.0.5.0 - Production on 04-JUL-20
08 09:04:37

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
Cracleora92
etworkadminsqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST=<Host Name> (PORT=50005))) (CONNECT_DATA =(SID = DB2)))
TNS-12541: TNS:no listener

C:>tnsping mydb2

TNS Ping Utility for 32-bit Windows: Version 9.2.0.5.0 - Production on 04-JUL-20
08 09:04:55

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
Cracleora92
etworkadminsqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST=<Host Name> (PORT=50000))) (CONNECT_DATA =(SID = DB2)))
TNS-12537: TNS:connection closed

C:>
myfriend2010的个人空间 myfriend2010 发布于2008-07-04 09:45:08

QUOTE:

原帖由 askgyliu 于 2008-7-4 09:13 发表


借用Oracle tnsping来看看DB2是不是有开。下面例子中50000是正确的,50005是不正确的。

C:>tnsping mydb2

TNS Ping Utility for 32-bit Windows: Version 9.2.0.5.0 - Production on 04-JUL-20
08 09:04:37

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
Cracleora92
etworkadminsqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST=) (PORT=50005))) (CONNECT_DATA =(SID = DB2)))
TNS-12541: TNS:no listener

C:>tnsping mydb2

TNS Ping Utility for 32-bit Windows: Version 9.2.0.5.0 - Production on 04-JUL-20
08 09:04:55

Copyright (c) 1997 Oracle Corporation.  All rights reserved.

Used parameter files:
Cracleora92
etworkadminsqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST=) (PORT=50000))) (CONNECT_DATA =(SID = DB2)))
TNS-12537: TNS:connection closed

C:>
强悍
tanfufa发布于2008-07-04 10:43:21
1.db2 客户端很多.ibm网站下一个就是了.(什么是客户端,客户端就是规定通行协议.如何通话等一些约定信息.这个跟网络有关系.你可以不但需要了解数据库.而且好需要了解网络总的来说就是告诉数据库服务器我用什么跟你通话).

2.db2 虽然没有tnsname 的概念.但是有catalog database 的概念.如果我猜不错的话.你就问如何远程去连接一个数据库.当然你使用catalog database 一个db2客户端是必须安装的.
db2inst1$db2 catalog tcpip node yournodename remote XX server XX --编目远程db2实例节点
db2inst1$db2 catalog db newdb as newdb at node yournodename --编目远程数据库
db2inst1$db2 connect to newdb user newuser using newpass --测试连接
一个node name 就是一个 tnsname .(tcpip协议)
当然如果你没有安装db2客户端.你就只有通过(通过程序连接,用数据库字符串 jdbc:db2://tdurden:50000/SAMPLE.通过jdbc驱动,什么是驱动,请参考网络7层协议,网络之间要会话需要知道对方是什么?规定通话规则,打个比方,我跟一个人对话.我首先要知道对方是哪个国家的.是男还是女.是人还是畜生.是英国人.我应该用英语跟他说.不然那就对牛弹琴,当然如果跟鸟交谈.肯定只能用鸟语了.)..

3.db2 get dbM cfg|grep SVCENAME 可以查看你的实例的服务名,在这里必须要澄清一个概念,端口,服务只是对实例而言的.数据库仅仅是堆死数据,没有实例他是没有任何意义的.实例是活的.数据库是死的.
在/etc/serverices下根据服务名你可以找到服务的协议及端口号.
当然:db2 update dbm cfg using SVCENAME 50000 也可以直接指定端口号.这样是不建议的
这样概念跟informix是一样的.

4.oracle 有同义词.db2 有别名.
>>-CREATE----ALIAS----alias-name--FOR--+-table-name--+---------><
                                       +-view-name---+   
                                       +-nickname----+   
                                       '-alias-name2-'


世界万物只有了解后才能去对比.只有对整理概念清晰才能明白.
我的家 lovelyman_gold 发布于2008-07-04 22:29:12
多谢楼上的各位大大! 明白了一些了!
但还有两上问题:
1、catalog到本地后,这个catalog是存在了注册表里了,还是存在了客户端的某个文件里了呢?
   如果这些配置存在了注册表里了,那是存在注册表的哪个位置啊?
   如果存在了本地的一个或多个文件里,那么,是哪几个文件啊?

我可不可以直接把这部分注册表中配置或这几个文件复制到另外一台客户端上,使另外一台客户端也具有了己经catalog的配置了呢?


2、db2 在有类似于oracle 上的database link 的功能不?有的话,要具体如何建啊?如何查啊?
    如何在server A中查询server B中的表tabletest1中的数据啊?



多谢啦!

[ 本帖最后由 lovelyman_gold 于 2008-7-4 22:31 编辑 ]
Ryan-liumin的个人空间 Ryan-liumin 发布于2008-07-05 13:43:11
studying
我的家 lovelyman_gold 发布于2008-07-05 15:55:55
顶两下先
我的家 lovelyman_gold 发布于2008-07-06 00:19:23
再顶。。。。。。。。
vonkenny发布于2008-07-06 02:10:42
学习中
tanfufa发布于2008-07-07 12:11:02
1.要看目录数据库请用:
db2 list db directory
这些信息应该是放系统表中.(既不是什么注册表.也不是什么文件,具体请查.我也不清楚(类比oracle 猜的)).


2.oracle 有dblink .有透明网关.
db2 有联合数据库:(如果不同数据库记得装驱动都是db2就不用了.)

使用DB2联合数据库,您可以使用一条SQL语句查询多个数据源中的数据。奇妙的是,这些数据源可以多种多样:即可以是多种关系数据库系统,也可以是非关系数据库系统,比如Microsoft Excel
、xml等。本文将首先探讨多个关系数据库之间的联合访问。
我们不如先来动手配置一个简单的联合数据库实例来培养一下您的成就感,这样可以为您理解联合数据库所设计的概念及繁多的参数选项增加一点信心。我一向喜欢这种文章风格,我相信很多人也会喜欢的。
要进行下面的试验,您必须先安装DB2 v8.2 ESE (Enterprise Server Edition) for Windows。DB2的安装不是本文的讨论范围。
假如您的DB2已经安装好了,那就开始吧。
1) 使用windows管理员权限的用户登陆windows,笔者用的是Administrator。
2) 为了完成下面的演示,您还需要另外一个windows用户,笔者使用安装DB2的时候自动创建的db2admin用户。您当然也可以使用其他windows用户。
3) 确保您已经创建了至少一个可用的实例。笔者使用缺省创建的DB2实例。您可以通过在命令窗口运行DB2START命令来启动这个实例
4) 在DB2命令窗口运行DB2 GET DBM CFG 来查看当前实例的配置参数,并确保FEDERATED参数设置为YES,您可以通过运行DB2 UPDATE DBM CFG USING FEDERATED YES来设置这个参数。修改这个参数后,必须重新启动实例才会生效(DB2STOP/DB2START)
5) 却保您已经创建了DB2样本数据库SAMPLE,如果您还没有创建,可以通过在DB2命令行窗口运行db2sampl命令来创建它。此样本数据库包含了一些样本表和数据,使用这个数据库作演示可以使我们节省一点时间。
6) 创建另外一个数据库,笔者使用名字TESTDB:
   DB2 CREATE DB TESTDB
7) 运行DB2CE命令打开DB2命令编辑器,并在这儿完成下面的步骤。
8) 连接到sample数据库,并创建DRDA包装器(WRAPPER).
   CONNECT TO SAMPLE;
   CREATE WRAPPER DRDA;
   
9) 创建服务器(SERVER)
CREATE SERVER TESTDB TYPE DB2/UDB VERSION '8.2' WRAPPER "DRDA" AUTHID "db2admin" PASSWORD "db2admin" OPTIONS( ADD DBNAME 'TESTDB', PASSWORD 'Y');
10) 创建用户映射
CREATE USER MAPPING FOR "ADMINISTRATOR" SERVER "TESTDB" OPTIONS ( ADD REMOTE_AUTHID 'db2admin', ADD  REMOTE_PASSWORD 'db2admin') ;
11) 使用db2admin用户连接到TESTDB数据库、创建表WORKITEM、并插入样本数据。
CONNECT TO TESTDB USER db2admin USING db2admin;
CREATE TABLE WORKITEM (
ITEMNO CHAR(4) NOT NULL,
ITEMNAME VARCHAR(50) NOT NULL,
EMPNO CHAR(6),
PRIMARY KEY (ITEMNO)
);
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0001','测试程序模块1','000010');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0002','完成模块2的开发','000020');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0003','联系客户A','000030');
12) 连接到SAMPLE数据库,并为TESTDB数据库中的WORKITEM表创建昵称:
CONNECT TO SAMPLE;
CREATE NICKNAME ADMINISTRATOR.WORKITEM FOR TESTDB.DB2ADMIN.WORKITEM;
13) OK,现在我们就可以在SAMPLE数据库中使用TESTDB数据库中的WORKITEM表了,而且还可以和SAMPLE数据库的EMPLOYEE表联合查询:
    SELECT * FROM WORKITEM;
    我们来查询由谁来负责哪个工作项目:
    SELECT A.ITEMNO,A.ITEMNAME,A.EMPNO,B.FIRSTNME,B.LASTNAME FROM WORKITEM A LEFT OUTER JOIN EMPLOYEE B ON A.EMPNO=B.EMPNO;
   
到此为止,SAMPLE数据库就已经变成了联合数据库,您通过在SAMPLE数据库中为TESTDB数据库中的表或视图创建昵称来访问他们,很好玩吧。
myfriend2010的个人空间 myfriend2010 发布于2008-07-07 13:27:56
详细

QUOTE:

原帖由 tanfufa 于 2008-7-7 12:11 发表
1.要看目录数据库请用:
db2 list db directory
这些信息应该是放系统表中.(既不是什么注册表.也不是什么文件,具体请查.我也不清楚(类比oracle 猜的)).


2.oracle 有dblink .有透明网关.
db2 有联合数据库:(如果不同数据库记得装驱动都是db2就不用了.)

使用DB2联合数据库,您可以使用一条SQL语句查询多个数据源中的数据。奇妙的是,这些数据源可以多种多样:即可以是多种关系数据库系统,也可以是非关系数据库系统,比如Microsoft Excel
、xml等。本文将首先探讨多个关系数据库之间的联合访问。
我们不如先来动手配置一个简单的联合数据库实例来培养一下您的成就感,这样可以为您理解联合数据库所设计的概念及繁多的参数选项增加一点信心。我一向喜欢这种文章风格,我相信很多人也会喜欢的。
要进行下面的试验,您必须先安装DB2 v8.2 ESE (Enterprise Server Edition) for Windows。DB2的安装不是本文的讨论范围。
假如您的DB2已经安装好了,那就开始吧。
1) 使用windows管理员权限的用户登陆windows,笔者用的是Administrator。
2) 为了完成下面的演示,您还需要另外一个windows用户,笔者使用安装DB2的时候自动创建的db2admin用户。您当然也可以使用其他windows用户。
3) 确保您已经创建了至少一个可用的实例。笔者使用缺省创建的DB2实例。您可以通过在命令窗口运行DB2START命令来启动这个实例
4) 在DB2命令窗口运行DB2 GET DBM CFG 来查看当前实例的配置参数,并确保FEDERATED参数设置为YES,您可以通过运行DB2 UPDATE DBM CFG USING FEDERATED YES来设置这个参数。修改这个参数后,必须重新启动实例才会生效(DB2STOP/DB2START)
5) 却保您已经创建了DB2样本数据库SAMPLE,如果您还没有创建,可以通过在DB2命令行窗口运行db2sampl命令来创建它。此样本数据库包含了一些样本表和数据,使用这个数据库作演示可以使我们节省一点时间。
6) 创建另外一个数据库,笔者使用名字TESTDB:
   DB2 CREATE DB TESTDB
7) 运行DB2CE命令打开DB2命令编辑器,并在这儿完成下面的步骤。
8) 连接到sample数据库,并创建DRDA包装器(WRAPPER).
   CONNECT TO SAMPLE;
   CREATE WRAPPER DRDA;
   
9) 创建服务器(SERVER)
CREATE SERVER TESTDB TYPE DB2/UDB VERSION '8.2' WRAPPER "DRDA" AUTHID "db2admin" PASSWORD "db2admin" OPTIONS( ADD DBNAME 'TESTDB', PASSWORD 'Y');
10) 创建用户映射
CREATE USER MAPPING FOR "ADMINISTRATOR" SERVER "TESTDB" OPTIONS ( ADD REMOTE_AUTHID 'db2admin', ADD  REMOTE_PASSWORD 'db2admin') ;
11) 使用db2admin用户连接到TESTDB数据库、创建表WORKITEM、并插入样本数据。
CONNECT TO TESTDB USER db2admin USING db2admin;
CREATE TABLE WORKITEM (
ITEMNO CHAR(4) NOT NULL,
ITEMNAME VARCHAR(50) NOT NULL,
EMPNO CHAR(6),
PRIMARY KEY (ITEMNO)
);
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0001','测试程序模块1','000010');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0002','完成模块2的开发','000020');
INSERT INTO WORKITEM(ITEMNO,ITEMNAME,EMPNO) VALUES ('0003','联系客户A','000030');
12) 连接到SAMPLE数据库,并为TESTDB数据库中的WORKITEM表创建昵称:
CONNECT TO SAMPLE;
CREATE NICKNAME ADMINISTRATOR.WORKITEM FOR TESTDB.DB2ADMIN.WORKITEM;
13) OK,现在我们就可以在SAMPLE数据库中使用TESTDB数据库中的WORKITEM表了,而且还可以和SAMPLE数据库的EMPLOYEE表联合查询:
    SELECT * FROM WORKITEM;
    我们来查询由谁来负责哪个工作项目:
    SELECT A.ITEMNO,A.ITEMNAME,A.EMPNO,B.FIRSTNME,B.LASTNAME FROM WORKITEM A LEFT OUTER JOIN EMPLOYEE B ON A.EMPNO=B.EMPNO;
   
到此为止,SAMPLE数据库就已经变成了联合数据库,您通过在SAMPLE数据库中为TESTDB数据库中的表或视图创建昵称来访问他们,很好玩吧。

我的家 lovelyman_gold 发布于2008-07-08 00:23:06
确实好玩


我谢啊
我来说两句

(可选)

日历

« 2008-08-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 78
  • 日志数: 4
  • 建立时间: 2008-02-28
  • 更新时间: 2008-07-03

RSS订阅

Open Toolbar