Take the 2-minute tour ×
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

I'm supposed to migrate a MySQL database into IBM DB2, but I thought I'd take baby steps first before I do something like that. So for now, I'd just like to add a database.

I'll admit that I have no experience at all with IBM DB2. Here's what I did so far:

  • I've installed the software, IBM Data Server Client Version 9.7 Fix Pack 7. Went without a hitch, although I must say, it appears simpler than either MySQL or MS SQL.
  • I've ran Control Center under General Administration Tools. I've had to run it as administrator for it to work.
  • I read somewhere that the flow is System -> Instance -> Database, so I created a system with the following details:

    • System Name: RNOLD-PC
    • Host Name: RNOLD-PC
    • Node Name: RNOLDNOD
    • OS: NT
    • Protocol: TCP/IP

    Hitting the OK button with those details produces no error. For reference, the Computer Name of the laptop I'm using is RNOLD-PC.

  • I created an Instance under that with the following details:

    • Instance Name: testInstance
    • Instance Node Name: RNOLDNOD
    • OS: NT
    • Protocol: TCIP/IP
    • Host Name: RNOLD-PC
    • Service Name: RNOLD-PC
    • (Everything else is left blank)

    Clicking the Discover button near Instance Name gets me an SQL4404N error: The DB2 Administration Server does not exist, while clicking the Retrieve Button near Port Number (which I left blank) gets me a "The Service Name RNOLD-PC was not found." If I try to add a database under that Instance, it gives me the same error.

Can I have some help on this? Where do I go from here, and how do I create a database?

EDIT: I added a Port Number (12345), which then allowed me to create a database, albeit with an error:

[IBM][CLI Driver] SQL30081N A communication error has been detected. Communication protocol being used: "TCP/IP". Communication API being used: "SOCKETS".

EDIT: Additional information: - Using Windows 7 32-bit

share|improve this question

migrated from stackoverflow.com Mar 7 '13 at 8:03

This question came from our site for professional and enthusiast programmers.

    
    
Sorry, I thought saying Regards didn't count as a signature. –  zack_falcon Mar 7 '13 at 6:15
    
Saying Zack_Falcon counts –  peterm Mar 7 '13 at 6:16
    
Right. Didn't know that. Thanks. –  zack_falcon Mar 7 '13 at 6:18
    
This is off-topic for SO and belongs on Database Administrators –  Jim Garrison Mar 7 '13 at 6:45

2 Answers 2

up vote 0 down vote accepted

Ok...I think I have a better idea of what you need based on the comments above.

First off, if all you need it DB2, I'd go download DB2 10.1 Express-C (the link will take you to whatever is the latest at the time. At the time of this post it is 10.1 Fix Pack 2) to get you started. It is the same binaries as Enterprise Server Edition. All you need to do is purchase a license from IBM and apply it using db2licm -a <license file name> in order to turn your Express-C into Enterprise Server Edition. Now, that aside, since you are installing this on Windows, make sure you download the appropriate bit version (ie, 32 bit vs 64 bit).

Also, and this from my experience on Windows, make sure you install the 64 bit DB2 into Program Files (no matter which drive you install it to) and if you install the 32 bit DB2, install it into Program Files (x86) (on a 64 bit OS). If you don't do this, Windows won't find the DB2 drivers for any ODBC connections you wish to set up. And even with that, I've had hit and miss luck with 32 bit DB2 on 64 bit Windows.... Best to just use 32 bit DB2 on 32 bit Windows and 64 bit DB2 on 64 bit Windows.

Ok...whew! Now that aside, once you install DB2, it will automatically create an instance named DB2 and most likely create a database called SAMPLE (which you can always remove).

I've found it best (and this is just me) to use a system or local account for the admin ID for DB2. Either way, make sure you let DB2 create the DB2ADMNS and DB2USERS groups. Anyone you want to be able to maintain DB2 will need to be in the DB2ADMNS group and obviously if you just want to access DB2 in the DB2USERS group.

DB2 automatically comes with the DB2 Control Center,which is clunky as all get out. But don't let that turn you off. That is just a GUI, the actual database itself is amazingly fast and powerful. Besides as of version 9.5 or 9.7, IBM has deprecated the Control Center. They still have packaged it with DB2, but they really recommend that you download IBM Data Studio, which is a free, Eclipse-based product that you can use to interact with DB2. I recently downloaded it and tried it. I love it waaaaay better than Control Center. We (the DBAs at our company) are going to work on a project to roll out Data Studio to replace end user and developer access to DB2 to move away from Control Center.

When you download Data Studio, pick the "full product image" under the "Optional Downloads" section. It should be the one about 1.5GB rather than the one above that is only 112MB.

Anyway, hope this gets you started. Let me know if you have other questions.

share|improve this answer
    
Thanks. That did it. I couldn't get the latest IBM Data Studio yet, it takes too long to download, so I had to settle for an earlier version. I was able to create a database albeit without tables. I haven't seen anything pertaining to DB2ADMNS and DB2USERS, but for anything that requires logging in, I use db2admin and my own password which I set during the installation. –  zack_falcon Mar 8 '13 at 7:57
    
@zack_falcon - glad to hear it worked. My guess is DB2 created those two groups for you. But glad to hear you are up and running! –  Chris Aldrich Mar 8 '13 at 13:43

This is a typical error when configuring DB2 the first time. There are many docs about that in the web.

  • Check instance is up
  • Check service name (/etc/serices)
  • Check instance configuration (svcename)
  • Check ports (netstats -nato)
  • Check instance local connectivity (db2 attach to db2inst1)
  • Check database local connectivity (db2 connect to sample)
  • Check remote access (telnet db2server 50000)
  • Check instance remote connectivity (db2 attach to db2inst1)
  • Check database remote connectivity (db2 connect to sample)
share|improve this answer
    
Thanks for the reply. Majority of the docs I saw online are from IBM itself, and doesn't seem to take newbies into account. How do I check if the instance is up? Command Line? –  zack_falcon Mar 7 '13 at 9:21
    
ps -ef | grep db2sysc ; db2pd -edus –  AngocA Mar 7 '13 at 12:50
    
@AngocA - zack is working on Windows so unless he is using cygwin, he won't have Unix commands available. –  Chris Aldrich Mar 7 '13 at 13:56

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.